6to4在NAT后面

我在Ubuntu上遇到了6to4隧道的问题。
我的电脑公开地址是178.42.231.125 ,我的地址是192.168.100.10隧道的configuration:

 ip tunnel add 6to4 mode sit ttl remote any local 178.42.231.125 ip link set dev 6to4 up ip -6 addr add 2002:b22a:e77d::1/16 dev 6to4 # I used public address to calculate b22a:e77d ip -6 route add 2000::/3 via ::192.88.99.1 dev 6to4 metric 1 

现在我尝试ping6 ipv6.google.com和目标无法访问

哪里不对?

对于6to4在NAT后面工作,你需要让你的NAT:ing路由器将所有“协议41”(6to4)stream量转发到你的Ubuntu计算机上。 具体如何设置,取决于路由器。

因为这个原因,你也不会有多台计算机在路由器后面说6to4。 但是如果有必要的话,那台计算机可以在本地networking上宣布它是6to4前缀,并将其路由到那里的其他计算机。

您可能还想要注意到,大部分操作员社区认为6to4被破坏,并希望被弃用和“closures”。 如果你不能本地化 ,你可能会更好地使用HE的“真正的”IPv6隧道。 当设置这样的隧道时,您仍然需要在路由器中设置proto 41转发。

正如其他答案说,你必须做一个协议41的NAT规则到你的Ubuntu。 我只想补充一点,也许这不是最好的主意。 有一些IPv6转换协议专门用于在NAT设备后面工作,并自动为您提供可路由的IPv6地址。

查看关于Teredo和您的linux的Miredo软件。

好的,不要介意在这里看看http://imageshack.us/photo/my-images/19/10335694.jpg/ 。 我用Ubuntu创build了4个VM。 两个是航线,两个航线。 主机尝试连接。

Config R1:

ip -4 addr add 1.1.1.1/24 dev eth0

ip tunnel add tun6to4 mode sit ttl 64 remote any local 1.1.1.1 ip link set dev tun6to4 up ip -f inet6 addr add 2002:101:101::1/16 dev tun6to4 ip -f inet6 route add 2002::/16 dev tun6to4 metric 1

echo 1 >/pros/sys/net/ipv4/ip_forward

echo 1 >/pros/sys/net/ipv6/conf/all/forwarding

Config R2:

ip -4 addr add 1.1.1.2/24 dev eth0

ip tunnel add tun6to4 mode sit ttl 64 remote any local 1.1.1.2 ip link set dev tun6to4 up ip -f inet6 addr add 2002:101:102::1/16 dev tun6to4 ip -f inet6 route add 2002::/16 dev tun6to4 metric 1

echo 1 >/pros/sys/net/ipv4/ip_forward

echo 1 >/pros/sys/net/ipv6/conf/all/forwarding

Config A:

ip -6 addr add 2002:101:101::3/48 dev eth0

Config B:

ip -6 addr add 2002:101:102::3/48 dev eth0

我尝试在主机A上虚拟主机B的虚拟机,我不能。 什么可能是错的?