一个小小的评论:以下地址被混淆,这不是我在我的配置中使用的;)
我正在运行Debian压缩(Debian 2.6.32-46),我从我的提供者那里获得了一个/ 64 IPv6块:2a01:4f8:a0:aaaa :: / 64
所以我按如下方式更改了/ etc / network / interfaces文件(这也是我的提供者推荐的方式):
# Loopback device: auto lo iface lo inet loopback # device: eth0 auto eth0 iface eth0 inet static address 85.10.xxx.zz broadcast 85.10.xxx.yy netmask 255.255.255.224 gateway 85.10.xxx.1 iface eth0 inet6 static # Main IPv6 Address of the server address 2a01:4f8:a0:aaaa::2 netmask 64 gateway fe80::1 auto eth0:1 iface eth0:1 inet static address 85.10.xxxx.uu netmask 255.255.255.224 # default route to access subnet up route add -net 85.10.xxx.0 netmask 255.255.255.224 gw 85.10.xxx.1 eth0
重启后(我很懒,不想用路由或ip添加任何东西)我的eth0界面如下所示:
eth0 < first line removed > inet addr:85.10.xxx.zz Bcast:85.10.xxx.yy Mask:255.255.255.224 inet6 addr: 2a01:4f8:a0:aaaa::2/64 Scope:Global inet6 addr: fe80::bbbb:cccc:dddd:eeee/64 Scope:Link <--- from MAC address UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24133 errors:0 dropped:0 overruns:0 frame:0 TX packets:21712 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3464246 (3.3 MiB) TX bytes:5776451 (5.5 MiB) Interrupt:25 Base address:0x2000
和路由ip -6 route看起来像这样:
2a01:4f8:a0:aaaa::/64 dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295 fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295 fe80::/64 dev vBoxnet0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295 default via fe80::1 dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
现在,我的问题是我的IPv6无法正常工作.如果我尝试ping IPv6地址,例如ping6 ipv6.google.com.我得到:“目标无法访问:地址无法访问”
在tcpdump -i eth0 ip6中看起来像这样:
00:29:05.386500 IP6 2a01:4f8:a0:aaaa::2 > ff02::1:ff00:1: ICMP6,neighbor solicitation,who has fe80::1,length 32 00:29:05.390869 IP6 2a01:4f8:a0:bbbb::1 > 2a01:4f8:a0:aaaa::2: ICMP6,neighbor advertisement,tgt is fe80::1,length 32
2a01:4f8:a0:bbbb :: 1是btw.列为我的网关(在我的提供商的在线管理控制台).
我认为,所有这一切的原因是缺少NDP条目/缺少fe80 :: 1的MAC地址.因为ip -6 neigh给了我:
fe80::1 dev eth0 router Failed
我想是的,因为如果我这样做:ping6 -I eth0 fe80 :: 1我得到一个正确的回复回复和我的fe80 :: 1地址所需的mac地址以及一个完美工作的IPv6堆栈:
$ip -6 neigh fe80::1 dev eth0 lladdr ll:mm:nn:oo:pp:qq router REACHABLE
这也是来自tcpdump -i eth0 ip6的转储:
00:30:37.555702 IP6 fe80::bbbb:cccc:dddd:eeee > fe80::1: ICMP6,echo request,seq 1,length 64 00:30:37.560219 IP6 fe80::1 > fe80::bbbb:cccc:dddd:eeee: ICMP6,echo reply,length 64
(再次:fe80 :: bbbb:cccc:dddd:eeee是我的链接本地地址,源自MAC地址)
从这一点开始,我可以使用IPv6:我可以ping6网站,我可以使用IPv6连接到服务,甚至可以通过ssh使用IPv6连接到我的服务器.
那么,我在这里做错了什么?我花了很多时间试图找出如何“修复”这个问题.我打赌它可以用两个命令解决.这是我第一次在服务器上处理IPv6时的方式.所以请原谅我缺乏经验.顺便说一句.我还试图改变一些sysctl net.ipv6.*标志,但没有成功.如果解决方案有必要,我也可以在此处发布我的配置.
每个提示都非常受欢迎!
非常感谢你提前!