概述
Sub-menu: /interface 6to4
6to4是一种特殊的机制,允许IPv6数据包在IPv4网络上传输,而不需要显式配置隧道接口。它对于通过不支持IPv6的网络连接两个或多个IPv6网络特别有用。6to4机制有两种不同的方式。如果未配置remote-address,则如果前16位是2002,路由器将封装并直接通过IPv4发送IPv6报文,并使用后32位作为目的地址(IPv4地址转换为十六进制)。否则,IPv6报文将直接发送到IPv4地址remote-address。
属性说明
| 属性 | 说明 |
|---|---|
| clamp-tcp-mss (yes | no; Default: yes) | 控制是否修改接收到的TCP SYN报文的MSS大小。启用后,如果当前MSS大小超过tunnel接口MTU(考虑TCP/IP开销),路由器将改变接收到的TCP SYN报文的MSS大小。接收到的封装报文仍然包含原始的MSS,只有在解封装之后,MSS才会改变。 |
| comment (string;Default:) | 接口的简短描述 |
| disabled (yes| no;Default:no) | 是否禁用 |
| not -fragment (inherit| no;Default:no) | 是否在相关报文中包含DF位 |
| dscp (integer: 0-63;Default:inherited) | 报文的DSCP值。“Inherited”选项表示从将要封装的报文继承DSCP值 |
| ipsec-secret (string;Default:) | 指定secret时,路由器使用预共享密钥和策略为remote-address添加动态IPsec peer (phase2默认使用sha1/aes128cbc) |
| keepalive (integer[/time],integer 0..4294967295;Default:0,0) | 隧道保持存活参数设置隧道对端宕机时,隧道运行标志保持的时间间隔。如果配置时间,重试失败,则取消接口运行标志。参数以以下格式写入:' KeepaliveInterval,KeepaliveRetries '其中' KeepaliveInterval '是时间间隔,' KeepaliveRetries '是重试尝试的次数。缺省情况下,keepalive为10秒,重试10次。 |
| local-address (IP;Default:) | 路由器本地报文的源地址 |
| mtu (integer;Default:auto) | Layer3最大传输单元。 |
| name (string;Default:) | 接口名称 |
| remote-address (IP;Default:) | 6to4隧道对端IP地址。如果不指定,将派生2002::/16网关地址中的IPv4地址。 |
配置举例
简单的6to4隧道封装(目前不工作)
通过利用2002::/16分配的地址空间,可以简单地在IPv4网络上路由IPv6数据包。所有6to4节点都必须具有可访问的IPv4地址——如果您在Internet上运行此设置,则所有IPv4地址都必须是公共地址。
R1配置:
创建6to4 tunnel接口。
/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 tunnel接口。
/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通IPv6地址。
从R1:
/ping 2002:a00:201::
Hurricane Electric隧道代理例子
下面以RouterOS设备为例,介绍如何通过IPv4网络通过6to4隧道实现IPv6连通性。
为了能够创建隧道,必须有一个公共IPv4地址,并启用隧道代理IPv4服务器的ping功能。
当使用 Hurricane Electric隧道代理 创建隧道时,将获得路由/64 IPv6前缀和设置隧道所需的其他信息。
这个例子假设公共IPv4地址是194.105.56.170
Hurricane Electric在“配置示例”一节中提供了用于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地址给客户端,必须添加路由IPv6前缀到内部接口(默认情况下桥本地)。
/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,应该有IPv6连接。http://ipv6-test.com 可以用来测试IPv6的连通性。