我正在尝试在我的服务器上使用 tayga 实现 NAT64,但到了我不知道如何继续的地步。
我的服务器通过一个 IPv4 地址和一个 /64 IPv6 地址块连接到互联网。它可以处理各种东西。出于某些原因,我还运行了一些 LinuX 容器 (LXC)。这些容器是 IPv6 独有的。我在主机系统上实现了一个桥接器 (br0),并将地址从 eth0 切换到 br0。我的容器在 IPv6 上成功相互通信。通过主机上的 mod_proxy,我也可以将仅支持 ipv6 的 Web 服务器 (LXC) 连接到 IPv4 互联网。但可以说,只能在一个方向上。
对于某些自动更新功能,我需要 NAT64+DNS6,因为某些更新服务器不支持 IPv6。
让我们假设以下情况,并注意 IP 地址实际上并未被使用。
主机 br0:
inet address: 10.0.0.1 # external IP
inet6 address: 2a01::1/64 # external IP
LXC eth0:
# external IP, some ip6tables forward rules implemented on the host
inet6 address: 2a01::2/64
我在我的主机上安装了 tayga 并进行了如下配置:
tun-device nat64
ipv4-addr 192.168.255.1
prefix 2a01:0:0:0:64::/96
map 192.168.255.2 2a01::2
Tayga 自动从该 /96 子网中选择一个 IPv6 地址。然后我创建了界面。
$>tayga --mktun
现在,您应该向 nat64 接口添加 IPv4 和 IPv6 地址。根据常见问题解答,最好不要将相同的 IP 地址用于主机用途。另一方面,它规定使用路由器(内部)地址。但我也可以采用完全不同的地址,然后会要求添加所需的路由。让我引用一些内容:
# ip link set nat64 up
# ip addr add 192.168.0.1 dev nat64 (replace with your router's IPv4 address)
# ip addr add 2001:db8:1::1 dev nat64 (replace with your router's IPv6 address)
# ip route add 192.168.255.0/24 dev nat64
# ip route add 2001:db8:1:ffff::/96 dev nat64
我不知道该怎么做。我应该使用什么地址?只使用一些私有 IPv4/IPv6 地址?还需要什么?一个来源谈到添加一些转发规则(我已经将 eth0 更改为 br0,因为我使用 br0):
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables -A FORWARD -i br0 -o nat64 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i nat64 -o br0 -j ACCEPT
事情是这样的,我尝试过一些东西,一旦我能
ping6 2a01:0:0:0:64::192.168.255.1
在我的主机上。但我无法让 LXC 与任何系统通信。不是 2a01:0:0:0:64::192.168.255.1 或者可能是 2a01:0:0:0:64::8.8.8.8 (Google)。
目前我并不关心尚未完全实现的 DNS64。我安装了一些 debian 软件包,并且(认为)知道如何配置它,只是还没有尝试过。
我参考的资料来源: http://www.litech.org/tayga/ http://www.litech.org/tayga/faq.html http://www.litech.org/tayga/README-0.9.2 http://ipvsix.me/?p=106 http://stuartl.longlandclan.yi.org/blog/2011/06/23/nat64dns64-in-gentoo/ http://blog.raorn.name/2012/02/ipv6-only-lan-with-dual-stack-openwrt.html
更新 1:
From 2a01::64:0:c0a8:ff01 icmp_seq=1 Destination unreachable: Unknown code 5
这是 tayga 自己选择的地址。我尝试从 2a01:0:0:0:64::8.8.8.8 执行 ping。我添加了上述 iptables 规则并执行了以下操作:
ip link set nat64 up
ip addr add 192.168.255.1 dev nat64
ip addr add 2a01::1 dev nat64
ip route add 192.168.255.0/24 dev nat64
ip route add 2a01:0.0.0.64::/96 dev nat64
不过,我还是可以 ping 2a01:0:0:0:64::192.168.255.1,但只能从我的主机。我的 LXC 甚至无法到达该地址。
是的,我排除了错误的 ip6tables 规则。