在 Linux 上實現虛擬 WAN 多撥 PPPoe

我將 Linux 做為路由器已經有好一陣子了。 前幾天,剛好想起來家中網路的 ISP(中華電信),可以透過撥號取得 7 個浮動的 Public IPv4 Address,於是就來實現他了! 環境 以下資訊是透過 bench.sh 的 Script 所產生的 ---------------------------------------------------------------------- CPU Model : Intel(R) Celeron(R) CPU 3865U @ 1.80GHz CPU Cores : 2 CPU Frequency : 1278.526 MHz CPU Cache : 2048 KB Total Disk : 14.9 GB (6.6 GB Used) Total Mem : 1910 MB (256 MB Used) Total Swap : 2047 MB (0 MB Used) System uptime : 3 days, 18 hour 30 min Load average : 0....

在 Linux 中開啟 VRF 模組

這幾天在裝新的路由器,由於是使用服務商提供的 Image,所以發現 VRF 模組沒有成功加載。 [email protected]:/opt/tunnel# modprobe vrf modprobe: FATAL: Module vrf not found in directory /lib/modules/5.4.0-72-generic 我的 Linux Kernel 為 5.4.0-72-generic,這邊安裝一下擴充包。 apt install linux-modules-extra-`uname -r` 接著,在加載一下 VRF,沒有任何回應就代表成功囉! modprobe vrf Virtual Routing and Forwarding (VRF)...

利用 AS-SET 建立過濾器

最近,為了跟一些新入坑的朋友們建立 BGP Peer,所以也順便來教他們怎麼使用 AS-SET 過濾。 什麼是 AS-SET AS-SET 是一個可以新增 ASN 及 AS-SET 的 Object。 通常用於過濾透過 BGP 協議所交換的路由。(如 BGP Peer Neighbor、Internet Exchange Route Server 等) 我們通常透過 Whois 及遞迴的方式,來查詢這個 AS-SET 中的所有 Route Object。 舉例來說,我們今天要透過 AS-STEVEYI 對某一個 BGP Peer 進行過濾。 首先,先透過 whois 查詢這個 AS-SET 中有哪些 ASN,然後我們在繼續查詢這個 AS-SET 中的其他 AS-SET(這邊的為 AS-STEVEYI-C ) $ [email protected] ~ % whois -r AS-STEVEYI as-set: AS-STEVEYI descr: SteveYi Network Service members: AS17413 members: AS60614 members: AS141173 members: AS209557 remarks: --- DownStream --- members: AS-STEVEYI-C remarks: ---------- tech-c: YT1698-RIPE admin-c: YT1698-RIPE mnt-by: STEVEYI-MNT created: 2020-09-10T18:57:46Z last-modified: 2021-03-26T15:31:21Z source: RIPE 接著,我們可以透過 RADB 查詢對應的 Route Object 紀錄...

利用 FRRouting 設定策略路由

前幾天,我為了調整我實驗室內的網路架構,讓其可以全部走 VPN 出去,並且可以進入到我的大內網,所以在研究策略路由 (PBR) 我本來是使用 VRF(三層交換)來隔離我的網路(其實這樣應該算另類的策略路由了吧X),但這樣會導致我沒辦法把我的 Service 監聽在 VRF Interface 內。 導致… 我就不能架設 DoH 在路由器上了 後來,我發現我可以利用其他方式做到 PBR,而不需要透過 VRF 來隔離 PBR 是什麼? PBR 全名 Policy Based Routing,是一種可以透過修改下一跳 IP Address 來達到控制路由或封包方向的一種技術 在 Linux 下怎麼做到? Linux 下其實有許多種方式可以做到,比如說透過 Routing Daemon 或是 ip link 及 ip rule 的指令去做到 # 比如說我想要讓 10.121.210.0/24 這條路由放在一張表裡面 ip rule add from 10.121.210.0/24 lookup TW # 並讓其網路走 VPN Interface 出去 ip route add 0.0.0.0/0 via 10.121.210.0/24 dev VPN-JP table TW 但這樣的話,我每次都開機時都要執行一次 Script。...

解決 Ubuntu 上 53 Port 占用問題

最近為了在路由器上安裝 DoH Client 並架設 DNS Server 給內網機器使用,發現 Ubuntu 常常會使用 53 Port。 經過檢查一輪後,發現是 systemd-resolve 所導致的,於是找到這些方法去關閉他! 在此之前,如果大家發現 53 Port 被使用,可以先下以下指令來查看是哪個進程去用的。 sudo netstat -pna | grep 53 那接著,我們來關閉一下 systemd-resolve 使用 53 Port 的問題吧 首先,我們編輯 /etc/systemd/resolved.conf 文件 sudo vi /etc/systemd/resolved.conf 我們將 DNSStubListener 取消註解,並修改為 No [Resolve] #DNS= #FallbackDNS= #Domains= #LLMNR=no #MulticastDNS=no #DNSSEC=no #DNSOverTLS=no #Cache=yes DNSStubListener=no #ReadEtcHosts=yes 接著,在輸入這行指令 sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf 最後,我們先將 systemd-resolved 服務重啟 sudo systemctl restart systemd-resolved 接著,我們就可以使用 53 Port 囉!...

在 VSCode 中將 .tmpl 檔案設為 HTML 語法

前陣子開始學習 Golang 時,使用了 .tmpl 作為網頁模板 但發現,這樣不會像 HTML 檔案一樣,無法自動處理格式。 P.S. 裝了相關外掛也只會處理 .html 文件 在查詢了一下相關文件後,發現可以修改使用者的設置來處理 那這邊有兩種做法,我們來介紹一下 第一種是直接修改 settings.json 文件,在最下面新增以下程式碼 "files.associations": { "*.tmpl": "html" } 第二種則是進入設定,點擊文字編輯器,文件。 並新增 *.tmpl 為 html 最終結果就會像這樣啦!...

在 Linux 系統上自架 Minecraft 伺服器

最近剛好有朋友也想在 Linux 上架設 Minecraft Server,那這邊就稍微寫一下架設過程好了! 環境 在這次的環境中,我使用了以下作業系統及套件 Ubuntu 20.04 Server byobu openjdk-8-jdk spigot 1.16.5 更新系統 及 安裝套件 更新系統,我們輸入以下指令 apt update -y apt upgrade -y 接著,安裝 Java 及 Byobu apt install openjdk-8-jdk byobu -y 部署 Minecraft 伺服器 首先,我們建立資料夾,來放置伺服器檔案 mkdir /data mkdir /data/minecraft cd /data/minecraft 接著,我們下載 Minecraft Server 核心 這邊使用的是 Spigot 1.16.5,我們直接使用 wget 來下載到伺服器裡面 wget https://cdn.getbukkit.org/spigot/spigot-1.16.5.jar mv spigot-1.16.5.jar server.jar 完成之後,我們寫一個啟動腳本 java -Xmx2048M -Xms1024M -jar server.jar nogui 就開啟你的 Minecraft 伺服器囉!...