通过 NAT 路由 6to4 数据包

通过 NAT 路由 6to4 数据包

我有一台 Linux 路由器(dd-wrt,不带 ipv6 模块,没有空间)和一台 Linux PC(Arch Linux)。我正在尝试设置我的路由器以将 6to4 数据包(协议 41)转发到我的 PC 并在其上设置隧道。

到目前为止我在路由器上所做的是:

iptables -t nat -A POSTROUTING -p 41 -d ! 192.168.1.0/24 -j SNAT --to _WANIP_
iptables -t nat -A PREROUTING -p 41 --dst _WANIP_ -j DNAT --to-destination _LANDEST_

_WANIP_我的“外部” ipv4 地址在哪里_LANDEST_,我的计算机是否已设置 6to4。6to4 设置如下:

export IPV4_ADDRESS=_WANIP_
export OUR_IPV6_GW=`printf "2002:%02x%02x:%02x%02x::1" \`echo $IPV4_ADDRESS | tr '.' ' '\``
ip tunnel add tun6to4 mode sit ttl 32 remote any local $IPV4_ADDRESS
ip link set dev tun6to4 up
ip -6 addr add $OUR_IPV6_GW/16 dev tun6to4
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

OUR_IPV6_GW包含 6to4 地址之一。完成所有这些测试步骤后,我ping6 ipv6.google.com查看设置是否有效,并收到错误消息Destination unreachable: Address unreachable

我可以 ping (IPv4) 到 192.88.99.1,ip -6 route看起来不错。我还尝试运行iptables -I [...]NAT 设置,以确保没有规则阴影插入。

我使用了一些资源http://www.wtfm.org/ip6to4

答案1

您无法通过 NAT 使用 6to4。IPv6 地址依赖于公共 IPv4 地址,而您的 6to4 盒没有该地址。

此外,6to4 是一种过时/弃用的协议。如果您想要 IPv6 连接,而您的 ISP 不提供,那么您最好使用托管的 6in4 隧道,例如 Hurricane Electric 的 SixXS。

相关内容