PPPoe 上的 IPv6?

PPPoe 上的 IPv6?

透過 PPPoe 取得 IPv6 位址的最佳方式是什麼?

我目前使用 NM-Applet 從 ISP 取得網路服務,但它在 PPPOE 連接上沒有 IPv6 選項卡。我不介意使用一些命令列工具,但如果我必須這樣做的話,將我的設定從 NM-applet 轉移到任何工具會很好。

答案1

您可以嘗試新增

+ipv6 ipv6cp-use-ipaddr

到 /etc/ppp/options。根據您的 ISP 如何提供 IPv6,這可能足以為電腦本身提供 IPv6。

許多 ISP 假設路由器透過 PPPoE 連接而不是 PC,因此這可能不適合您。在這種情況下獲得 IPv6 的唯一方法是將您的電腦設定為路由器。然後,它應該使用 IPv6 的 DHCP 來請求前綴委派。然後,它獲得的前綴可用於將 /64 子網路指派給您的網路或本機。如果您想向本機網路提供 IPv6 服務,您應該執行 radvd(路由器通告守護程式)來通告您的電腦是路由器。

最簡單的方法是使用 Wide-dhcpdv6。基本思想是從一個接口請求前綴委託,然後使用該前綴將子網分配給其他接口,例如:

interface ppp0 {
    # Request Prefix Delegation on ppp0, and give the received prefix id 0
    send ia-pd 0;
};

# Use subnets from the prefix with id 0
id-assoc pd 0 {
    prefix-interface eth0 {
        # Assign subnet 1 to eth0
        sla-id 1;
    };
};

假設您從 ISP 收到前綴 2001:db8:1234::/48。然後,此範例會將 2001:db8:1234:1::/64 指派給 eth0。

基本的 radvd.conf 如下所示:

interface eth0
{
    AdvSendAdvert on;
    prefix ::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

哦,別忘了放

net.ipv6.conf.all.forwarding=1

在 /etc/sysctl.conf 中。

答案2

Sander Steffann 的回答很好,但如果您發現獲得了 IPv6 位址(可以通過ip addr或檢查ifconfig),但mtr -6 www.google.com仍然無法正常工作,則可能是由本地路由器中的某種預設路由分配造成的(可以通過ip -6 route或檢查) netstat -6rn) 。

解決此問題的一種方法是在乙太網路連接埠上停用 RA,如下所示(更改 中的現有檔案/etc/netplan/):

network:
    version: 2
    renderer: networkd
    ethernets:
        enp3s0:
            accept-ra: false

相關內容