linux – IPv6仅在ping默认网关后才能工作.

我们现在有2013年,我认为在我的服务器上激活IPv6已经很久了.但不幸的是,我遇到了一些问题.说实话,我只有IPv6的经验,所以我希望你能解决我的“小”问题.

一个小小的评论:以下地址被混淆,这不是我在我的配置中使用的;)

我正在运行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.*标志,但没有成功.如果解决方案有必要,我也可以在此处发布我的配置.

每个提示都非常受欢迎!

非常感谢你提前!

解决方法

几个星期后,我今天再次尝试了整个问题.我能说什么,我修好了.有人可以解释一下为什么添加ipv6环回修复我的问题?这是我添加到/ etc / network / interfaces文件中的内容
iface lo inet6 loopback

我不知道为什么我忘了首先添加它!^^谢谢大家的回复

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...