本文将介绍如何在 MikroTik RouterOS 路由器开启 IPv6 支持,光猫工作在桥接模式下,由RouterOS 进行 PPPoE 拨号。部分人会遇到通过 DHCP 获取 IPv6 地址时,一直处于 searching 状态的问题,也提供相应的说明和解决方法。 ### 设备信息 ``` routerboard: yes board-name: hAP ac^2 model: RBD52G-5HacD2HnD serial-number: E5790EC79E33 firmware-type: ipq4000L factory-firmware: 6.45.9 current-firmware: 6.47.9 upgrade-firmware: 7.15.3 ``` ### 开启 IPv6 功能 首先确保 IPv6 禁用开关处于关闭状态。 ``` /ipv6/settings/set disable-ipv6=no ``` ### 配置 DHCP 获取前缀 ``` /ipv6/dhcp-client add interface=pppoe-out-telecom request=prefix add-default-route=yes use-peer-dns=yes pool-name=ipv6-pool pool-prefix-length=64 ``` - interface:这里的接口选择 PPPoE 拨号接口。 - request:请求地址前缀。 - add-default-route:添加一条默认路由到此接口。 - use-peer-dns:使用 DHCP 下发的 DNS 地址,你也可以在**/ip/dns/**中自己设置 IPv6 DNS 服务器。 - pool-name:地址池名称,自定义,后续会用到。 - pool-prefix-length:地址池前缀长度,默认64。 ### 配置 ND(邻居发现) 邻居发现协议替代了 IPv4 的 ARP(Address Resolution Protocol)和 ICMP 路由器发现(Router Discovery),它定义了使用 ICMPv6 报文实现地址解析,跟踪邻居状态,重复地址检测,路由器发现以及重定向等功能。 ``` add interface=bridge mtu=1492 ``` 这里的接口设置为局域网所在位置。 这里的 MTU 需要设置成 PPPoE 拨号接口的实际值。如果设置错误,就有可能出现无法正常访问 IPv6 网络的问题。 实际值可以通过`/interface/print`查看 ACTUAL-MTU 字段获得。以太网的 MTU 最大为1500,由于PPPOE头是6字节,PPP协议ID号两个字节,一共要占用8个字节,所以上层PPP负载数据不能超过1492字节,通常PPP协商时协商的最大接收单元值会小于等于1492字节。 ### 启用无状态地址配置 ``` add from-pool=ipv6-pool interface=bridge ``` 这里的接口设置成局域网所在位置,地址池使用第一步中 DHCPv6 获取到的。 ### 更新设备地址 局域网中的设备可能由于 DHCP 续租时间未到,不会自动获取地址,需要手动刷新一下。 Windows 通过命令提示符(Cmd)执行: ``` ipconfig /renew ``` macOS 在终端中执行: ``` sudo ipconfig set en0 DHCP ``` ### 测试 IPv6 可访问性 通过一些IPv6测试网站,测试设备是否具备 IPv6 网络访问能力。 例如:[test-ipv6.com](https://test-ipv6.com/index.html.zh_CN) 测试通过也不一定代表真的能够访问,可以找一些纯 IPv6 站点深入测试一下。 ### FAQ ##### 1. 配置都没有问题,并且也正确分配了地址,但还是无法正常访问 检查 IPv6 ND 中的 MTU 是否与拨号的实际 MTU 一致。 ##### 2. 配置 DHCPv6 获取地址池的时候,一直处于 searching 状态,无法获取到前缀。 ROS 暂时不支持 vBRAS 类型接入点,可以通过 PPPoE 的扫描功能,扫描当前服务提供商接入点中是否存在非 vBRAS 接入点,如果有,那么选择一个在拨号时指定这个接入点,如果没有,那么可以放弃了,等待 ROS 后续更新支持。 首先扫描接入点,这里的接口选择 PPPoE 接口绑定的物理接口。扫描一定时间没有条目更新依据提示按 Q 退出扫描。 ``` /interface/pppoe-client/scan interface=ether1 ``` ![扫描 AC 接入点][1] 选择一个非 vBRAS 接入点,重新拨号。 ``` /interface/pppoe-client/set pppoe-out-telecom ac-name=JS-NJ-JN-MY-BAS-1.MAN.NE40 E-X16 ``` 这时查看 IPv6 DHCP 应该可以正常获取到前缀了。 [1]: https://www.simaek.com/usr/uploads/2024/11/1532859493.png Loading... 本文将介绍如何在 MikroTik RouterOS 路由器开启 IPv6 支持,光猫工作在桥接模式下,由RouterOS 进行 PPPoE 拨号。部分人会遇到通过 DHCP 获取 IPv6 地址时,一直处于 searching 状态的问题,也提供相应的说明和解决方法。 ### 设备信息 ``` routerboard: yes board-name: hAP ac^2 model: RBD52G-5HacD2HnD serial-number: E5790EC79E33 firmware-type: ipq4000L factory-firmware: 6.45.9 current-firmware: 6.47.9 upgrade-firmware: 7.15.3 ``` ### 开启 IPv6 功能 首先确保 IPv6 禁用开关处于关闭状态。 ``` /ipv6/settings/set disable-ipv6=no ``` ### 配置 DHCP 获取前缀 ``` /ipv6/dhcp-client add interface=pppoe-out-telecom request=prefix add-default-route=yes use-peer-dns=yes pool-name=ipv6-pool pool-prefix-length=64 ``` - interface:这里的接口选择 PPPoE 拨号接口。 - request:请求地址前缀。 - add-default-route:添加一条默认路由到此接口。 - use-peer-dns:使用 DHCP 下发的 DNS 地址,你也可以在**/ip/dns/**中自己设置 IPv6 DNS 服务器。 - pool-name:地址池名称,自定义,后续会用到。 - pool-prefix-length:地址池前缀长度,默认64。 ### 配置 ND(邻居发现) 邻居发现协议替代了 IPv4 的 ARP(Address Resolution Protocol)和 ICMP 路由器发现(Router Discovery),它定义了使用 ICMPv6 报文实现地址解析,跟踪邻居状态,重复地址检测,路由器发现以及重定向等功能。 ``` add interface=bridge mtu=1492 ``` 这里的接口设置为局域网所在位置。 这里的 MTU 需要设置成 PPPoE 拨号接口的实际值。如果设置错误,就有可能出现无法正常访问 IPv6 网络的问题。 实际值可以通过`/interface/print`查看 ACTUAL-MTU 字段获得。以太网的 MTU 最大为1500,由于PPPOE头是6字节,PPP协议ID号两个字节,一共要占用8个字节,所以上层PPP负载数据不能超过1492字节,通常PPP协商时协商的最大接收单元值会小于等于1492字节。 ### 启用无状态地址配置 ``` add from-pool=ipv6-pool interface=bridge ``` 这里的接口设置成局域网所在位置,地址池使用第一步中 DHCPv6 获取到的。 ### 更新设备地址 局域网中的设备可能由于 DHCP 续租时间未到,不会自动获取地址,需要手动刷新一下。 Windows 通过命令提示符(Cmd)执行: ``` ipconfig /renew ``` macOS 在终端中执行: ``` sudo ipconfig set en0 DHCP ``` ### 测试 IPv6 可访问性 通过一些IPv6测试网站,测试设备是否具备 IPv6 网络访问能力。 例如:[test-ipv6.com](https://test-ipv6.com/index.html.zh_CN) 测试通过也不一定代表真的能够访问,可以找一些纯 IPv6 站点深入测试一下。 ### FAQ ##### 1. 配置都没有问题,并且也正确分配了地址,但还是无法正常访问 检查 IPv6 ND 中的 MTU 是否与拨号的实际 MTU 一致。 ##### 2. 配置 DHCPv6 获取地址池的时候,一直处于 searching 状态,无法获取到前缀。 ROS 暂时不支持 vBRAS 类型接入点,可以通过 PPPoE 的扫描功能,扫描当前服务提供商接入点中是否存在非 vBRAS 接入点,如果有,那么选择一个在拨号时指定这个接入点,如果没有,那么可以放弃了,等待 ROS 后续更新支持。 首先扫描接入点,这里的接口选择 PPPoE 接口绑定的物理接口。扫描一定时间没有条目更新依据提示按 Q 退出扫描。 ``` /interface/pppoe-client/scan interface=ether1 ``` ![扫描 AC 接入点][1] 选择一个非 vBRAS 接入点,重新拨号。 ``` /interface/pppoe-client/set pppoe-out-telecom ac-name=JS-NJ-JN-MY-BAS-1.MAN.NE40 E-X16 ``` 这时查看 IPv6 DHCP 应该可以正常获取到前缀了。 [1]: https://www.simaek.com/usr/uploads/2024/11/1532859493.png 最后修改:2024 年 11 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏