RouterOS IPv6 NPTv6 脚本 (NAT版,非Mangle版)

使用前注意:

  1. 这是一个非常早期的脚本,可能存在一些bug或者不适用的场景。
  2. 如果你不知道这个脚本的作用是什么,请不要使用。
  3. 使用该脚本需要中级或高级 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

现在已经完成了 公网内网地址池创建接口地址分配

prefix 分配层级关系

接下来创建防火墙规则,这里使用 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

脚本下载:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注