家中網路是使用中華電信的光世代,選擇一 固定ip+7浮動ip,固定ip由route使用,由於虛擬機有真實ip的需求,所以讓虛擬機直接進行PPPoE撥接,在這記錄一下設定方式。
首先確認一下網路架構,PVE主機是接在router之後,如果要讓PVE虛擬機直接進行撥接,需要router支援PPPoE passthrough或是PPPoE relay功能,而我手邊的Google wifi並不支援,所以先改一下網路接法,將PVE主機直接接到小烏龜上,Google wifi的lan回接到小烏龜,也就是說把小烏龜剩下的port作為一般switch來使用。這種接法,主要是希望讓PVE仍然可以與router在同一區網內,但實際上這部份仍有些問題,推測是router的關係,在此就不討論。
虛擬機是以LXC安裝Ubuntu 22.04 LTS server,首先先安裝ppp pppoe pppoeconf (以上均以root權限執行)
apt install ppp pppoe pppoeconf
在虛擬機設定檔加入下方兩行設定,LXC設定檔在 /etc/pve/lxc ,檔名xxx.conf,xxx是虛擬機id
lxc.cgroup.devices2.allow = c 108:0 rwm
lxc.mount.entry = /dev/ppp dev/ppp none bind,create=file
在PVE host下以下列指令,讓LXC有ppp的權限
chown 100000:100000 /dev/ppp
查詢(確認)虛擬機網卡名稱,可用”ip a”指令,假設查出來名稱是eth0,下以下列指令進行PPPoE的設定,
pppoeconf eth0
正常連接到小烏龜的話,會要求輸入撥接的帳號以及密碼
完成設定後,可以以下列指令手動執行撥接
pon dsl-provider
以下列指令將連線中斷
poff dsl-provider
由於我的PVE主機仍可透過router對外進行網路連線,預設為此路由對外,需手動將預設route改為PPPoE
ip route add default dev ppp0 scope link
同時刪除預設的route (下列ipi為我的dns ip,請自行修改為您的)
ip route delete default via 192.168.86.1 dev eth0
PVE主機重開機後,需再host設定虛擬機權限;虛擬機重開機後,route需重新修改route