听说有些地方电信PPPoE能拿到一大段IPv6了,写个配置教程。
首先确认PPPoE拨号用的Profile启用了IPv6功能:
1 2 |
/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扔进一个地址池:
1 |
/ipv6 dhcp-client add interface=Dialer0 request=prefix pool-name=pppoe |
最后给每个bridge分配一段地址用作SLAAC:
1 2 3 |
/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:
1 2 3 4 5 6 7 8 9 10 |
/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]" |