ros ipv6配置

本文最后更新于:2025年11月19日 下午

ros ipv6配置

官方文档:https://wiki.mikrotik.com/wiki/Manual:TOC

拓扑图

flowchart TB
	gm("光猫(桥模式)")
	ROS(("ROS"))
	R1("Router1")
	R2("Router2")
	R3("Router3...")
	R4("Router4")
	gm ---|pppoe拨号| ROS
	ROS ---|"pppoe或者dhcp"|R1
	ROS ---|"pppoe或者dhcp"| R2
	ROS ---|"pppoe或者dhcp"| R3
	R1---PC("电脑")
	R1 -.- phone("手机")
	R2 x--x |不能再连路由器,R2无法提供前缀|R4

安装ipv6包

默认没有安装,需要手动点击安装

image-20220322162110532

操作原理

IPV6不同于IPV4最大的一点在于IPV6的地址是全局的。这就需要上级路由器在路由时能够准确把各个地址路由到不同的设备。

ROS拨号运营商时,可以通过dhcp获取到一个60位长度的代理前缀。ipv6前缀长度至多64位。所以给ROS的操作空间还有4位(共16个前缀可用)。

ROS bridge自身使用一个前缀,一个pppoe客户端会使用两个前缀。一个dhcp客户端使用一个前缀。

所以理论上可以供15个dhcp客户端(或者7个pppoe客户端)获取代理前缀。

配置

先把光猫拨号这边配置好,拿到运营商给的代理前缀。

pppoe client拨号配置

主要是选好拨号接口(ether1),profile创建一个新的(配置默认即可)避免和后面的pppoe 服务器冲突

image-20220323184217839

dhcp v6 client配置

配置dhcp v6 client去获取代理前缀。

image-20220323184433626

勾选前缀代理之后,获取到前缀后会自动生成一条pool配置,如下:

image-20220323184458077

prefix是上级通过dhcpv6下发下来,prefix length是上面自己配置的,即这个pd_auto_pool地址池下发前缀的活动空间有4bit位。如果配置的Pool Prefix Length小于下发的长度,那么prefix length默认会在代理前缀长度的基础上加8。

dhcp v6 server配置

这个配置比较简单,只需要选中前面自动生成的pool即可。

image-20220322163801321

注意:我实测有状态从ros拿地址拿不到,不清楚原因。看了mikrotik的wiki,没找到有状态配置的相关信息,直接不支持有状态获取地址了?

桥接口地址配置

给桥接口配置ipv6地址,地址为pool前缀::1/64,advertise勾上,会自动在ND配置prefix(radvd的前缀)

image-20220322164033783

配置完这一步,会在ND配置哪儿自动生成prefix,如下:

这下面有三个prefix,都是自动生成的。

image-20220323184650839

RADVD配置

就是上面的ND interfaces里面,基本不用配置,默认配置即可。

配置前缀和有效期

配置有效期,避免ROS上的前缀已经过期了,设备还一直使用

ND –> prefixes –> default

image-20220330190111202

pppoe服务器配置

重点配置为如下勾选的三个。

image-20220323185233891

当勾选Remote Ipv6 prefix pool后,会自动给ROS的ppp接口添加ipv6前缀广播RA,这样下级路由器的ppp接口就能拿到全局地址

image-20220323185438395

当勾选DHCPv6 PD Pool时,会自动生成dhcpv6的配置

image-20220323185607047

Interface List配置为LAN,确保路由器pppoe客户端拨号后,能够拿到代理前缀。以及拨号的情况下,确保PC可以进ROS管理页面。

(不是LAN上来的数据包会在filter里面被过滤掉)

image-20220323185817403

配置为LAN后,会自动添加如下配置

image-20220323185942930

dhcpv6有状态地址配置

最早的ros不支持有状态地址配置,现在新版的(我的7.19.3)已经支持了。

(1)配置ND这儿为有状态
image.png
(2)dhcpv6地址池配置,prefix length需要配置为128
image.png
(3)dhcpv6地址池勾选
image.png

其他

  • ROS貌似不支持有状态获取地址。它的文档里面也没有提及有状态获取地址的部分。
  • 如上的配置不支持路由器下面再接路由器,因为没有可供使用的前缀了。

问题

路由器DHCP切换PPPOE接入,无法拿到代理前缀问题

抓包看,ROS下发的dhcpv6里面的代理前缀的合法时间为0,导致路由器反复请求。

解决办法:

在ROS的DHCP Server里面删掉这个设备之前DHCP的Bindings条目即可。

可能原因分析:

dhcp和pppoe接入时,路由器使用的DUID是一样的,可能导致ROS出现问题。而且路由器在断开DHCP前是发了RELEASE的。

如果设置路由器的DUID为mac+时间类型,则没有问题。

ROS v7.7版本解决了这个问题

高版本的ros好像无法配置静态的ipv6地址池
地址池配置为fd00,dhcp服务器那边才可以使用。


ros ipv6配置
https://leon0625.github.io/2022/03/22/0621cfc53e84/
作者
leon.liu
发布于
2022年3月22日
许可协议