
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 route
netstat -6rn
この問題を解決する 1 つの方法は、次のようにイーサネット ポートで RA を無効にすることです ( 内の既存のファイルを変更します/etc/netplan/
)。
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
accept-ra: false