Aze*_*ale 5 ipv6 network-manager pppoe
能够通过 PPPoE 获取 IPv6 地址的最佳方法是什么?
我目前使用 NM-Applet 从我的 ISP 获取互联网服务,但它在 PPPOE 连接上没有 IPv6 选项卡。我不介意使用一些命令行工具,但如果我必须这样做,最好将我的设置从 NM-applet 转移到任何工具。
San*_*ann 11
您可以尝试添加
+ipv6 ipv6cp-use-ipaddr
Run Code Online (Sandbox Code Playgroud)
到 /etc/ppp/options.conf 文件 根据您的 ISP 如何提供 IPv6,这可能足以为机器本身提供 IPv6。
许多 ISP 假定路由器连接 PPPoE 而不是 PC,因此这可能对您不起作用。在这种情况下获得 IPv6 的唯一方法是将您的机器配置为路由器。然后它应该使用 DHCP for IPv6 来请求前缀委派。然后,它获得的前缀可用于将 /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;
};
};
Run Code Online (Sandbox Code Playgroud)
假设您从 ISP 收到前缀 2001:db8:1234::/48。然后,此示例会将 2001:db8:1234:1::/64 分配给 eth0。
一个基本的 radvd.conf 看起来像:
interface eth0
{
AdvSendAdvert on;
prefix ::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
Run Code Online (Sandbox Code Playgroud)
哦,别忘了放
net.ipv6.conf.all.forwarding=1
Run Code Online (Sandbox Code Playgroud)
在您的 /etc/sysctl.conf 中。