[筆記] 快樂網路改造計畫
租屋處網路雖然是 500/250 M 但我的 DIR-820L 只有 100 mbps 的 WAN port 根本吃不滿
接在後面的 server (其實是筆電) 也就只能困在 100 M
所以這次來改造一下我的網路環境 至少讓 server 可以吃滿
## 架構 (很噁我知道)
小烏龜 <---(USB to RJ45)---> Server <---(RJ45 Port)---> DIR-820L --)) 其他 Wi-Fi 裝置
## Stage 1
一開始懶的研究 所以直接砸了一個 pppoe-relay 上去用 這樣我 router 那邊就完全不用動
`enx7cxxxxxxxxxx` 是 USB 網卡; `enp3s0` 是實體 RJ45 port
`pppoe-relay.service`
```ini
[Unit]
Description=PPPoE Relay
After=network-online.target
Requires=sys-subsystem-net-devices-enx7cxxxxxxxxxx.device sys-subsystem-net-devices-enp3s0.device
[Service]
Restart=on-failure
ExecStart=/usr/sbin/pppoe-relay -S enx7cxxxxxxxxxx -C enp3s0 -F
[Install]
WantedBy=multi-user.target
```
但是做 pppoe-relay CPU 會有夠喘 測個速就快樂滿載了
## Stage 2
後來隔了一陣子有空之後 把 dlink 設成 AP mode 只負責打 Wi-Fi
讓 server 自己播 pppoe 也負責發 DHCP
AP mode 可以參考[這篇][1]來設定
我的環境是把 dlink ip 設成 192.168.0.2
DHCP 的部份可以直接交給 NetworkManager 來做 它會幫你處理 NAT 跟 DHCP
只需要新增一個 `shared mode` 的 connection 就好
```bash
nmcli connection add type ethernet ifname enp3s0 ipv4.method shared con-name dlink
nmcli connection modify dlink ipv4.addresses 192.168.0.1/24
```
如果有固定 DHCP 位置的需求 可以在 `/etc/NetworkManager/dnsmasq-shared.d/` 裡面加上設定 每個 host 一行
模板如下:
```
dhcp-host=<mac>,<ip>
```
另外 NetworkManager 預設是用 `nftables` 來加 NAT rule 但是重開機之後不知道為啥就不見了
所以我把它改成用 `iptables` 做後端 然後靠我的 `iptables-save` 幫我做 persistent 方便集中管理
在 `/etc/NetworkManager/NetworkManager.conf` 加入以下設定
```
[main]
firewall-backend=iptables
```
## 結語
雖然 Wi-Fi 還是只能吃 100 M 但至少 server 可以吃上去 載東西也快多了
原本要直接手刻 dnsmasq 跟 iptables rules 的 幸好 NetworkManager 就有這個功能 省我不少功夫
Reference:
- http://forums.dlink.com/index.php?topic=40856.0
- https://fedoramagazine.org/internet-connection-sharing-networkmanager/
[1]: http://forums.dlink.com/index.php?topic=40856.0
[2]: https://fedoramagazine.org/internet-connection-sharing-networkmanager/
2022-12-09 00:25:27
留言
Last fetch: --:--
現在還沒有留言!