PPPoe 経由の IPv6?

PPPoe 経由の IPv6?

PPPoe 経由で IPv6 アドレスを取得できる最良の方法は何ですか?

現在、ISP からインターネット サービスを受けるために NM-Applet を使用していますが、PPPOE 接続に IPv6 タブがありません。コマンド ライン ツールを使用することは構いませんが、必要な場合は、NM-Applet から任意のツールに設定を転送できれば便利です。

答え1

追加してみるといいでしょう

+ipv6 ipv6cp-use-ipaddr

/etc/ppp/options に追加します。ISP が IPv6 を提供する方法によっては、マシン自体に IPv6 を与えるにはこれで十分かもしれません。

多くの ISP は、ルーターが PC ではなく PPPoE で接続することを前提としているため、この方法は機能しない可能性があります。この状況で IPv6 を取得する唯一の方法は、マシンをルーターとして構成することです。その後、マシンは IPv6 用の DHCP を使用してプレフィックス委任を要求します。取得したプレフィックスは、ネットワークまたはローカル マシンに /64 サブネットを割り当てるために使用できます。また、ローカル ネットワークに IPv6 サービスを提供する場合は、radvd (ルーター通知デーモン) を実行して、マシンがルーターであることを通知する必要があります。

最も簡単な方法は、wide-dhcpdv6 を使用することです。基本的な考え方は、1 つのインターフェースからプレフィックス委任を要求し、そのプレフィックスを使用してサブネットを他のインターフェースに割り当てることです。

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 を受け取ったとします。この例では、eth0 に 2001:db8:1234:1::/64 が割り当てられます。

基本的な 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 routenetstat -6rn

この問題を解決する 1 つの方法は、次のようにイーサネット ポートで RA を無効にすることです ( 内の既存のファイルを変更します/etc/netplan/)。

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

関連情報