在 Debian 6 上使用 tayga 进行 NAT64 配置

Geo*_*der 5 networking linux debian nat ipv6

我正在尝试在我的服务器上使用 tayga 实现 NAT64,但我不确定如何继续。

我的服务器通过一个 IPv4 地址和一个 /64 IPv6 地址块连接到互联网。它提供各种服务。出于某些原因,我还运行了一些 LinuX Containers (LXC)。这些是 IPv6 专有的。我在我的主机系统上实现了一个网桥 (br0),并将地址从 eth0 切换到 br0。我的容器在 IPv6 上成功地相互通信。通过主机上的 mod_proxy,我也可以将仅 ipv6 的网络服务器 (LXC) 连接到 IPv4 互联网。但只是在一个方向,你可以说。

对于某些自动更新功能,我需要 NAT64+DNS6,因为某些更新服务器不支持 IPv6。

让我们假设以下情况,并注意 IP 地址并未真正使用。

主机 br0:

inet address: 10.0.0.1 # external IP
inet6 address: 2a01::1/64 # external IP
Run Code Online (Sandbox Code Playgroud)

LXC eth0:

# external IP, some ip6tables forward rules implemented on the host 
inet6 address: 2a01::2/64
Run Code Online (Sandbox Code Playgroud)

我在我的主机上安装了 tayga 并像这样配置它:

tun-device nat64
ipv4-addr 192.168.255.1
prefix 2a01:0:0:0:64::/96
map 192.168.255.2 2a01::2
Run Code Online (Sandbox Code Playgroud)

Tayga 自动从该 /96 子网中选择一个 IPv6 地址。然后我创建了界面。

$>tayga --mktun
Run Code Online (Sandbox Code Playgroud)

现在,您应该将 IPv4 和 IPv6 地址分别添加到 nat64 接口。根据常见问题解答,将相同的 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
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做。我应该使用哪些地址?只使用一些私有 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
Run Code Online (Sandbox Code Playgroud)

事情是,我尝试过,一旦我可以

ping6 2a01:0:0:0:64::192.168.255.1
Run Code Online (Sandbox Code Playgroud)

在我的主机上。但是我无法让我的 LXC 与任何系统对话。不是 2a01:0:0:0:64::192.168.255.1 或者 2a01:0:0:0:64::8.8.8.8(谷歌)。

现在我不关心尚未完全实施的 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
Run Code Online (Sandbox Code Playgroud)

这是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
Run Code Online (Sandbox Code Playgroud)

不过,我可以 ping 2a01:0:0:0:64::192.168.255.1,但只能从我的主机。我的 LXC 甚至无法到达那个地址。

是的,我排除了错误的 ip6tables 规则。