我们现在有了2013年,我认为在我的服务器上激活IPv6已经很久了。 但不幸的是,我遇到了一些问题。 说实话,我只有IPv6的经验,所以我希望你能帮助我“小”的问题。
小小的评论:下面的地址是混淆的,这不是我在我的configuration中使用;)
我正在运行一个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
重新启动后(我懒惰,不想使用route或ip添加everyhthing)我的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看起来像这样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是顺便说一句。 列为我的网关(在我的提供商的在线pipe理控制台)。
我认为,所有这些的原因是fe80 :: 1丢失的NDP条目/丢失的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, seq 1, length 64
(再次: fe80 :: bbbb:cccc:dddd:eeee是我的链接本地地址,从MAC地址派生)
从这一点上,我可以使用IPv6:我可以ping6网站,我可以使用IPv6连接到服务,甚至可以通过使用IPv6的ssh连接到我的服务器。
那么,我在这里做错了什么? 我花了很多时间试图找出如何“修复”这一点。 我敢打赌,它可以使用两个命令来解决。 这是我第一次在服务器上处理IPv6。 所以请原谅我缺乏经验。 顺便说一句。 我也试图改变一些sysctl net.ipv6。*标志,但没有成功。 如果解决scheme有必要,我也可以在这里发布我的configuration。
每一个提示都比欢迎!
提前非常感谢!
几个星期后,我今天再次尝试了所有的问题。 我可以说什么,我修好了。 有人可以请解释我为什么添加一个ipv6回送固定我的问题? 以下是我添加到我的/ etc / network / interfaces文件中的内容:
iface lo inet6 loopback
我不知道为什么我忘了把它添加到第一位!^^谢谢大家的回应!
我正在看你的问题,你说:
现在,我的问题是,我的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
这很奇怪。 你的系统发送一个正确的(就我所见,从你的tcpdump)邻居请求,路由器发回一个正确的(再次AFAICT)邻居通告。 这将表明您的本地计算机上存在问题。
你在那台机器上做防火墙吗? ICMPv6过滤与ICMP过滤非常不同。 IPv6通信的更多部分需要正确的工作ICMPv6。 如果你过滤得太多或以错误的方式过滤,你会得到和现在一样的问题。
如果你想知道更多的细节,请看RFC 4890 。
尝试使用路由器的一个实际地址作为默认网关,而不是fe80::1 。
你的IPv6网关应该在同一个子网中
iface eth0 inet6 static # Main IPv6 Address of the server address 2a01:4f8:a0:aaaa::2 netmask 64 gateway fe80::1
像2a01:4f8:a0:aaaa :: 1这是在路由器或VLANconfiguration中设置,请检查你的路由器。 一个样品:
interface GigabitEthernet0/0/1.201 encapsulation dot1Q 201 ipv6 address 2A00:7XXX:100::1/48 !
关键是IPv6使用ICMPv6来检查链路状态,而不是使用ARP来达到这个目的。 这就是为什么ping后一切开始工作。 调整您的防火墙规则:
ip6tables -A INPUT -p icmpv6 -j ACCEPT