你好呀。
我管理一些启用了 IPv6 的 Wheezy 服务器。它们都有一个全局 IPv6 /64 块,使用块中的第一个地址作为主要地址,即:
root@Host /h/david# ifconfig
eth0 Link encap:Ethernet HWaddr 4c:72:b9:56:03:6e
[…]
adr inet6: fe80::4e72:b9ff:fe56:36e/64 Scope:Lien
adr inet6: 2001:1234:1234:1234::1/64 Scope:Global
[…]
我最近看到,即使在接口上配置了整个块,也只有块定义中的一个,这里2001:1234:1234:1234::1
,响应 IPv6 请求。例如,如果我 ping2001:1234:1234:1234::2
或2001:1234:1234:1234::42
,我没有得到任何答复。我已经检查了防火墙,它允许所有 ICMPv6 请求通过,包括 NDP 请求,但 NDP 对我来说仍然是一个问题:Wheezy 不响应邻居请求。以下是tcpdump
我边听边听的内容ping
:
root@Host /h/david# tcpdump icmp6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
10:55:23.224447 IP6 fe80::264:40ff:fe3a:fac0 > ff02::1:ff00:55: ICMP6, neighbor solicitation, who has 2001:1234:1234:1234::55, length 32
10:55:24.311669 IP6 fe80::264:40ff:fe3a:fac0 > ff02::1:ff00:55: ICMP6, neighbor solicitation, who has 2001:1234:1234:1234::55, length 32
10:55:25.392511 IP6 fe80::264:40ff:fe3a:fac0 > ff02::1:ff00:55: ICMP6, neighbor solicitation, who has 2001:1234:1234:1234::55, length 32
^C
如您所见,Wheezy 不回应邻居的请求。我考虑过内核参数,但我没有更改任何一个,而且我不明白为什么默认配置会忽略 NDP 数据包,根据我的阅读,这些数据包很关键。此外,我尝试更改以下参数:
root@Host /h/david# sysctl -w net.ipv6.conf.all.accept_ra=1
net.ipv6.conf.all.accept_ra = 1
root@Host /h/david# sysctl -w net.ipv6.conf.default.accept_ra=1
net.ipv6.conf.default.accept_ra = 1
root@Host /h/david# sysctl -w net.ipv6.conf.eth0.accept_ra=1
net.ipv6.conf.eth0.accept_ra = 1
这也不起作用。有人知道为什么 Wheezy 不回应邻居的请求吗?
希望了解问题出在哪里
问候。
您无需在界面上配置整个地址块。在您的示例中,您仅从 /64 子网配置了一个地址。
例如,当您配置时
192.168.1.1/24
(192.168.1.1/255.255.255.0
采用 pre-CIDR 表示法),您192.168.1.1
在子网 ( ) 中配置一个地址 (192.168.1.0/24
)。IPv6 的工作方式完全相同。Wheezy 在这里做的是正确的事情。