使用前注意:
- 这是一个非常早期的脚本,可能存在一些bug或者不适用的场景。
- 如果你不知道这个脚本的作用是什么,请不要使用。
- 使用该脚本需要中级或高级 RouterOS 知识,新手用户建议绕过。
使用说明:
以下内容需要在运行脚本之前手动配置一次:
# 创建 公网地址池
# 使用 IPv6 DHCP-Client 获取 IPv6 Prefix,并将地址放到地址池内
# 设置地址池再分配的 prefix 大小是 /60 (可根据实际情况修改)
/ipv6 dhcp-client
add add-default-route=yes interface=pppoe-telecom pool-name=pool6-telecom pool-prefix-length=60 request=prefix
# 创建 内网地址池
# 内网地址池的 prefix 大小应和公网地址池分配的 prefix 大小匹配 (这里是 /60)
# 设置地址池再分配的 prefix 大小是 /64 (SLAAC 分配时只能使用 /64)
/ipv6 pool
add name=pool6-bridge prefix=fd00:1111:2222:3300::/60 prefix-length=64
# 将 公网地址 分配到 vlan/bridge 接口上,并且不要广播地址
# 注意 地址的掩码是 /60 (和 公网地址池 的 pool-prefix-length 匹配)
/ipv6 address
add address=::/60 advertise=no eui-64=yes from-pool=pool6-telecom interface=bridge
# 将 内网地址 分配到 vlan/bridge 接口上
# 注意 地址的掩码是 /64 (和 内网地址池 的 prefix-length 匹配)
/ipv6 address
add address=::/64 eui-64=yes from-pool=pool6-bridge interface=bridge
# 可选: 创建内网 dhcp-server,并从 内网地址池 中分配 prefix
/ipv6 dhcp-server
add address-pool=pool6-bridge interface=bridge name=server1
现在已经完成了 公网 和 内网 的 地址池创建 及 接口地址分配。
接下来创建防火墙规则,这里使用 IPv6 的 NAT / NETMAP。
/ipv6 firewall nat
add action=netmap chain=srcnat comment="netmap for bridge" out-interface=pppoe-telecom src-address=fd00:1111:2222:3300::/60 to-address=240e:1111:2222:3300::/60
add action=netmap chain=dstnat dst-address=240e:1111:2222:3300::/60 in-interface=pppoe-telecom to-address=fd00:1111:2222:3300::/60
现在已经完成了必要的设置,只需将下面的脚本添加到 /system script
,修改脚本内的 内网/外网接口 名称,并在 /ipv6 dhcp-client
里添加以下触发脚本即可:
:delay 5000ms;
/system script run ipv6-npt6