6to4

本页介绍 MikroTik RouterOS 6to4 接口配置,说明如何在不显式建立隧道的情况下通过 IPv4 网络传输 IPv6 数据包。文中详细介绍了 MTU、keepalive 设置以及 IPsec 集成等属性,并提供了建立 6to4 隧道的配置示例。

6to4

6to4 是一种特殊机制,允许 IPv6 数据包在不显式配置隧道接口的情况下通过 IPv4 网络传输。它特别适用于通过不支持 IPv6 的网络连接两个或多个 IPv6 网络。6to4 机制有两种运行模式。如果未配置 remote-address,当 IPv6 数据包的前 16 位为 2002 时,路由器会直接将 IPv6 数据包封装并通过 IPv4 发送,接下来的 32 位被解释为目的地址(转换为十六进制的 IPv4 地址)。在另一种情况下,IPv6 数据包会被直接发送到 IPv4 remote-address。

配置示例

简单的 6to4 隧道封装(不工作)

可以使用 2002::/16 地址空间,简单地将 IPv6 数据包通过 IPv4 网络路由。所有 6to4 节点都必须具有可达的 IPv4 地址——如果你在互联网上运行此配置,所有 IPv4 地址都必须是公网地址。

R1 配置

创建 6to4 隧道接口:

/interface/6to4
add name=6to4-tunnel1

分配一个 IPv6 地址,其前 16 位为 '2002',接下来的 32 位为十六进制格式的 IPv4 地址。例如,如果路由器的 IP 地址是 10.0.1.1,则 IPv6 地址为 2002:A00:101::

/ipv6/address
add address=2002:a00:101::/128 advertise=no interface=6to4-tunnel1

添加一条经由 6to4-tunnel 接口到达专门分配的 6to4 隧道范围的路由。

/ipv6/route
add dst-address=2002::/16 gateway=6to4-tunnel1

R2 配置

创建 6to4 隧道接口:

/interface/6to4
add name=6to4-tunnel1

分配一个按照与 R1 相同原则生成的 IPv6 地址。在此例中,10.0.2.1 转换为 2002:A00:201::

/ipv6/address
add address=2002:a00:201::/128 advertise=no interface=6to4-tunnel1

这一侧同样需要 6to4 路由。

/ipv6/route
add dst-address=2002::/16 gateway=6to4-tunnel1

测试

配置完两台设备后,如果 IPv6 地址生成正确,应该可以 ping 通这些地址。

从 R1:

/ping 2002:a00:201::

Hurricane Electric Tunnel Broker 示例

此示例展示如何通过 IPv4 网络使用 6to4 隧道在 RouterOS 设备上获得 IPv6 连接。

要创建隧道,你需要一个公网 IPv4 地址,并允许从 Tunnel Broker 的 IPv4 服务器进行 ping。

当你使用 Hurricane Electric Tunnel Broker 创建隧道时,你会收到一个路由的 /64 IPv6 前缀以及设置隧道所需的附加信息。

此示例假设你的公网 IPv4 地址为 194.105.56.170

Hurricane Electric 在 'Example Configurations' 部分提供了可直接用于 RouterOS 的命令:

/interface/6to4
add comment="Hurricane Electric IPv6 Tunnel Broker" disabled=no local-address=194.105.56.170 mtu=1280 name=sit1 remote-address=216.66.80.90
/ipv6/route
add comment="" disabled=no distance=1 dst-address=2000::/3 gateway=2001:470:27:37e::1 scope=30 target-scope=10
/ipv6/address
add address=2001:470:27:37e::2/64 advertise=no disabled=no eui-64=no interface=sit1

这些命令会建立隧道。之后路由器可以连接到 IPv6 主机,但终端用户设备(计算机、平板电脑、手机)尚无 IPv6 连接。

要为客户端分配 IPv6 地址,请将 Routed IPv6 Prefix 添加到你的内部接口(默认为 bridge-local)。

/ipv6/address/add address=2001:470:28:37e:: interface=bridge-local advertise=yes

通过网络发现启用 DNS 服务器通告。

/ipv6/nd/set [ find default=yes ] advertise-dns=yes

最后添加 IPv6 DNS 服务器(这些是 Google 公共 DNS 服务器,你也可以使用 Hurricane Electric 提供的 2001:470:20::2)。

/ip/dns/set allow-remote-requests=yes servers=2001:4860:4860::8888,2001:4860:4860::8844

在设备上启用 IPv6 后,使用 https://test-ipv6.com 测试 IPv6 连接。