在 Ubuntu 的環境裡透過 PPPoE 上拿 IPv6 address 不是什麼大問題,搜一下大概都可以找到,在 /etc/ppp/options
的最後面加上這串就可以了 (或是在 /etc/ppp/peers/
裡面的檔案對特定的設定加):
+ipv6 ipv6cp-use-ipaddr
不過我遇到的問題是,ppp0
雖然拿到了 IPv6 address (從 ip addr
或是 ifconfig
可以看到),但 mtr -6 www.google.com
確不通。
找問題時發現 netstat -6rn 有兩筆 IPv6 default gateway,刪掉 enp3s0
的那筆馬上就通了,所以是跟 routing 有關的問題,在本地端收到了 default routing,優先權還比 ppp0
拿到的還高。
因為這台主機是跑 Netplan,所以就用 Netplan 的方式強制關掉本地端的 Router Advertisement (RA):
network: version: 2 renderer: networkd ethernets: enp3s0: accept-ra: false
最後重開機確認後就通了...