我有一个与本地IPv6连接数据中心的服务器。 (我有一个/ 48块在我的处置。)
我想通过openvpn将此服务器用作ipv6隧道服务器,但是我无法完全使用它。
我的服务器:Linux,Centos 5.2 eth0双堆栈ipv4 / ipv6
ip addr list: eth0 inet aa.bb.cc.dd/24 (my global IP address) inet6 2001:aaaa:bbb::2/48 (2001:aaaa:bbb::1 is the default GW of my ISP) sit2 link/sit 10.8.0.1 peer 10.8.0.2 inet6 2001:aaaa:bbb:2::1/64 tun0 inet 10.8.0.1 peer 10.8.0.2/32
我的客户:Mac OS 10.6
tun0: 10.8.0.2 --> 10.8.0.1 gif0 2001:aaaa:bbb:2::2 --> 2001:aaaa:bbb:2::1 prefixlen 128
路由到默认gw 2001:aaaa:bbb:2 :: 1(坐在我的服务器的IP接口上)
我认为mac侧是好的,作为traceroute6到ipv6.google.com给出2001年:aaaa:bbb:2 :: 1作为下一跳,但它停在那里。 从服务器ping ipv6.google.com工作。 Ip6tables已closures,并向/ proc / sys / net / ipv6 / conf / all / forwarding回显“1”。
ip6tables -L输出:
ip6tables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
来自sysctl的输出-a | grep forward | grep ipv6:
net.ipv6.conf.sit2.forwarding = 1 net.ipv6.conf.eth1.forwarding = 1 net.ipv6.conf.eth0.forwarding = 1 net.ipv6.conf.default.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.lo.forwarding = 1
什么让我的路由器在两个接口之间转发软件包?
从另一个路由器(您的diy隧道)后面的这个/ 48空间内放置一个/ 64将不会工作,因为您的ISP的路由器不会将这个/ 64的stream量路由回您的隧道,但是期望这些主机直接在本地子网。
您的ISP不应该在链接上放置/ 48,而应该使用/ 64。
要么你需要做一些代理arp的魔法(没有在那里,不会这样做),或者你会告诉你的ISP把一个/ 64的链接,例如/ 48中的第一个/ 64。 然后,您的ISP也必须通过您的隧道服务器添加到/ 48的其他部分的路由。 (在那里,运行在我的ISP在主机托pipe)。 一个可能性是要求将/ 48内的一个/ 56路由到你的隧道,所以你可以在另一边创build一个或多个/ 64的隧道。 对于隧道本身,你也可以使用/ 56中的/ 64,或者使用一个/ 64,比如/ 80作为隧道本身。
(注意:2001:A000 :: / 20是APNIC使用的地址空间,如果你想隐藏你的实际地址,最好使用2001:db8 :: / 32这个地址范围,目的)
我和他所描述的完全一样的问题。 我确实必须用ip来设置arp代理。 同时检查你的路由,看它是否使用你的服务器作为网关,而不仅仅是接口。