我有一个 PPPoE 链接和一些地址。 IPv4 地址工作正常。 IPv6 根本就没有。我发现我必须添加+ipv6
ppp/options。如果我ping ff02::1%ppp0
只收到两个回复fe80::
地址的回复,一个被自动分配给该接口,另一个被报告为同行经过ip address
。我分配的可路由地址无法播放。
我发现了一个路由跟踪测试在互联网上。它无法到达我的 ISP 分配给我的地址2a02:29e1:300:e900::1
。它显示了一些环路,如果是 IPv4,我肯定会将其归类为路由器配置错误。我的ISP说他们的IPv6没有异常,和我的在同一个BRAS上。我再次询问,他们向我保证他们这边一切都很好,他们无法帮助我进行自定义配置。 (自定义,因为我避免安装路由器)。我尝试并安装了radvd
,但它似乎没有做任何有趣的事情 - 事实上,radvdump
显示了另一个接口上的连续工作,该接口没有可路由的 IPv6 地址,尽管我尝试通过设置来禁用它AdvSendAdvert off
。
当我尝试跟踪路由时,我没有得到任何响应。例如,我发出sudo traceroute -6 -n -i ppp0 -I 2a02:29e0:404::172:162
. tcpdump -i ppp0 ip6
仅显示发出的回显请求。我使用 -I 因为我允许 ICMP 访问。然而,在尝试跟踪路由后,ip6tables-save -c
报告丢弃的输入数据包数量增加:
:INPUT DROP [259:20898]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [374:39007]
[0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
[371:25320] -A INPUT -p ipv6-icmp -j ACCEPT
我之前唯一的 IPv6 经验是使用隧道。分配地址就足够了,而且工作没有问题。由于路由一定有问题,这是 radvd 的配置:
interface ppp0
{
IgnoreIfMissing off;
AdvSendAdvert on;
prefix 2a02:29e1:300:e900::/64
{
};
};
interface eth1r
{
AdvSendAdvert off;
};
这是正确的工具吗?
编辑:IPv6 路由:
north:~$ ip -6 r l
2a02:29e1:300:e900::/64 dev ppp0 proto kernel metric 256 pref medium
fe80::f3:6aec dev ppp0 proto kernel metric 256 pref medium
fe80::51c9:88dc:1c75:9a51 dev ppp0 proto kernel metric 256 pref medium
fe80::/64 dev eth0r.100 proto kernel metric 256 pref medium
fe80::/64 dev eth0r proto kernel metric 256 pref medium
fe80::/64 dev eth1r proto kernel metric 256 pref medium
fe80::/64 dev eth2r proto kernel metric 256 pref medium
default dev ppp0 metric 1024 pref medium
这里eth0r.100
是启动的802.1Q接口ppp0
。 eth1r
是一个备份 natted wan,应仅支持 IPv4。 eth2r
是一个 LAN,最终可以使用 IPv6(也许 radvd 在这种情况下会很有用?)。
至于路由循环,上面提到的traceroute测试从全球十个城市运行,没有一个到达我的接口;他们都陷入了报告的同一个循环围兜,围绕以下五个节点:
2a00:6d42::1:0:1:36 Aruba S.p.A. (sometimes ???)
2a00:6d42:0:2:5::12 " "
2a02:29e1::a Seflow s.r.l. (my ISP)
2a02:29e0:109:ff00::5 "
2a02:29e0:255::2 "
2001:7f8:c5::a503:1034:1 Samer Abdel-Hafez (sometimes ???)
底部的一个来自阿姆斯特丹,指向阿鲁巴岛,循环重新开始。
这可能是因为我这边缺少广告造成的吗?
但是,如果我没有从 ppp0 收到任何 IPv6 回复,我怎么能够发布任何内容呢?
答案1
我从 radvd 切换到鸟,因为我认为我需要一个路由协议。我在邮件列表上询问过,Arnaud Houdelette-Langlois回复了如下:
ISP 端路由器需要知道它必须将 /64 路由到您的路由器。
大多数情况下,这是通过 DHCPv6/PD(PD 代表前缀委派)完成的。
事实上,我通过 PPP 接口发送了 DHCP 请求,路由开始工作。我的 ISP 的第一个节点2a02:29e1::a
发送到我的服务器。代表团持续了24小时,然后又重新开始循环。它需要更新。
我推出了自己的程序来发送所需的数据包。虽然我设法将其保存在一个文件中,但它有 1500 多行,发布在这里有点太长了。你可以找到它这里。请注意,DHCPv6 禁止客户端指示其请求委派的前缀。服务器必须通过数据包来源识别客户端,并使用带外商定的前缀进行回复。我仍然看不出使用 DHCP 相对于配置静态路由的优势。