RouterOS上游PPPoE下游SLAAC的IPv6配置

听说有些地方电信PPPoE能拿到一大段IPv6了,写个配置教程。

首先确认PPPoE拨号用的Profile启用了IPv6功能:

/ppp profile add change-tcp-mss=yes use-ipv6=yes name=pppoe
/interface pppoe-client add interface=GigabitEthernet0/1 profile=pppoe user=xxx password=yyy name=Dialer0

然后在PPPoE端口上开一个DHCPv6 PD客户端,把收到的prefix扔进一个地址池:

/ipv6 dhcp-client add interface=Dialer0 request=prefix pool-name=pppoe

最后给每个bridge分配一段地址用作SLAAC:

/ipv6 address
add address=::1/64 from-pool=pppoe interface=Vlan1 advertise=yes
add address=::1/64 from-pool=pppoe interface=Vlan2 advertise=yes

这里要注意的是如果from-pool 配了池子,那么地址段会按顺序从pool(也就是从DHCPv6客户端拿到的段)里面分配。所以address 不需要填完整地址,而只需要填你希望该路由器在该段里用的地址后缀。举个例子:如果DHCP拿到了2001:db8:1234:5670::/60 ,你第一个address 填::5 ,那么你的路由器会自动从pool里面取出第一段即2001:db8:1234:5670::/64 做SLAAC,然后路由器自己配置2001:db8:1234:5670::5 这个IP。

确认配置有效后,我们需要workaround一个RouterOS的bug

/system script
add dont-require-permissions=no name=pppoe-v6-workaround owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":lo\
    cal interfaceName [/interface get \$interface name];\r\
    \n:delay 10\r\
    \n:log info \"profile-pppoe-isp client up: ipv6 dhcp-client release\";\r\
    \n/ipv6 dhcp-client release [find interface=\$interfaceName];"

/ppp profile
set [find name=pppoe]  on-up="/system script run [find name=pppoe-v6-workaround]"

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据