自從換了 ROG Zephyrus G14 後,arch-desktop(參見 我的計算機折騰史)便光榮退休了。但我希望能繼續
壓榨剩餘價值讓其發光發熱,便萌生了做軟路由的想法。
好久沒更新了,其實很久之前就想寫一寫 幻 14 的使用感受的(
繼續咕咕咕
作業系統選擇
Why?
許多軟路由都會選擇 Windows / ESXi 虛擬 OpenWrt 作爲系統,而我作爲高貴的 Arch 使用者,當然要選擇 Arch 啦。畢竟我使用的是桌面級 CPU,效能較好,用完整的 Linux 也可以跑些其它服務。而且 ArchWiki 甚至有一篇 Router 教你如何搭軟路由,不愧是…
How?
Just follow the Installation guide.
如果打算使用軟路由撥號,建議在安裝時先使用 DHCP,待網路基本配置完成,確認內網設備可以聯網後配置 PPP,防止失聯。
Start Networking!
我選擇使用 systemd-networkd
進行介面配置,resolved
作爲 DNS Server,dhcpd
作爲 DHCPv4 Server。
# pacman -S dhcp
(本想只使用 systemd 組件完成所有工作的,但是 networkd 的 DHCPServer 太難用了…不過還是可以少裝幾個包)
更改網路介面名稱
爲了便於之後的配置,建議使用 udev 規則將網路介面改爲固定、便於記憶的名稱:
1 | # /etc/udev/rules.d/10-network.rules |
此處 extern*
爲 WAN 連接埠,intern*
爲 LAN。可使用 ip link
獲取 (MAC) address。
重新加載 udev 配置:
1 | udevadm control --reload |
WAN (DHCP)
1 | # /etc/systemd/network/20-wired-external-dhcp.network |
1 | ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf |
(這一步大概在安裝 Arch 時就已經通過 networkd / dhcpcd 等工具配好了,記得將網路介面名稱改爲上面修改後的,並禁用 networkd 以外的網路管理器)
LAN
systemd-networkd
如果你的 LAN 對應着多個網路介面,需要先建立 bridge 介面:
1 | # /etc/systemd/network/br_lan.netdev |
1 | # /etc/systemd/network/10-bind-br_lan.network |
然後爲其分配地址:
1 | # /etc/systemd/network/21-wired-internal.network |
重新加載 networkd 配置:# networkctl reload
Address=
爲 LAN 所處 IP 網段,可使用 CIDR 計算器計算(參見 ArchWiki)。
Multicast(DNS)=
爲 mDNS 解析,具體參見 ArchWiki: systemd-resolved#mDNS。
DHCPv6 Prefix Delegation 僅在本機撥號時有效,可在配置 PPP 後啓用。
systemd-resolved
resolved 自帶 cache 和 DNS Server 功能,可以作爲 DHCP Server 分發的 DNS 使用。
1 | # /etc/systemd/resolved.conf.d/listen-on-internal.conf |
10.0.0.1
爲上文分配給 LAN 的 IP。
重新加載 resolved 配置:systemctl restart systemd-resolved
dhcpd
配置
1 | # /etc/dhcpd.conf |
8.8.8.8
爲備用 DNS Server,可留空。
255.255.255.0
, 10.0.0.1
與分配給 LAN 的 IP 網段一致。
range
爲可下發的 IP 範圍。
更多配置項參考 ArchWiki: dhcpd#Configuration。
啓用
dhcpd 預設會運行在所有網路介面上,需要修改 systemd service:
# cp /usr/lib/systemd/system/dhcpd4.service /etc/systemd/system/[email protected]
編輯 /etc/systemd/system/[email protected]
,將 ExecStart=
項改爲:
ExecStart=/usr/bin/dhcpd -4 -q -cf /etc/dhcpd.conf -pf /run/dhcpd4/dhcpd.pid %I
啓用修改後的 dhcpd:
1 | systemctl daemon-reload |
未完待續
此時,將電腦接入軟路由的 LAN 口,DHCP 成功獲取 IP,便可以愉快地使用 Arch Router 上網了。
然而,由於 WAN 使用 DHCP,事實上還未擺脫對上級路由的依賴(如果是光貓撥號的話…嘗試改成橋接吧(反正當初電信來安裝的時候我就順便改好了(
所以,下一章會使用 Arch Router 撥號,啓用 IPv6 和 DNS over TLS,優化效能以及搭一些其它服務,讓其成爲 Arch Server(
To Be Continued