ipv6地名词:有状态(dhcpv6),无状态(slaac),前缀代理(pd)等解释

IPv6地址分发的两种方式

ipv6地址获取有两种方式:

  • 无状态(stateless):路由器通告的前缀 + 自己编的后缀
  • 有状态(stateful):DHCP给一个/128的地址

需要明确:无状态和有状态,仅仅指的是ipv6地址的获取方式。
对于无状态,目前实现的方案是slaac
对于有状态,目前实现的方案是DHCPv6

注意:slaac指的是路由器像下级终端(host)分配地址的方式,同理DHCPv6也是如此。
但是DHCPv6的数据包不仅可以分发ipv6地址,也可以包含dns等信息,所以,地址获取方式 + DNS获取方式 合并起来就有了两种组合:

  1. 无状态 + DHCPv6:地址由slaac获取,但是dns由DHCPv6通告
  2. 有状态 + DHCPv6:地址和dns都由DHCPv6通告

路由器获取以及分发IPv6的方式

下面所讲的本质都是分发前缀,如果你的上级是DHCPv6分发ipv6地址,那就别挣扎了,只能终端用,不能接路由器(可以接交换机应该,猜的)

IPv6-PD

参考 IPV6 DHCPv6-PD 前缀子网简单拆解 - 知乎
一个路由器要给下游的设备分发IPv6地址,那么他需要有一个至少/64的前缀(前缀A),这个前缀用来给LAN分发地址用。同时,他的WAN也会有一个/128的IPv6地址(WAN-1)。
这个前缀A以及WAN-1都是上级路由给你的,上级路由会从自己可分配的大子网中找到两个小子网,一个子网是/64的,用来给上级路由的LAN分配地址,WAN-1就是这些地址中的一个;另外一个小子网就是前缀A,此时,上级路由就是开启了“PD server”服务,下级路由通过“PD client”请求了一个前缀A。

关于前缀A,可以是/64,也可以是/60或者更大。

  1. 下级路由可以请求一个/64的前缀A给自己的LAN用;
  2. 如果下级路由还想再接下级路由,并且有PD server功能,那么他可以请求一个更大的,比如/60,从中挑一个/64的给自己的LAN用,剩下的子网用来给下下级PD的时候用。

当然,路由器能通过PD申请到多大的子网也要看上级路由有多大的子网,如果上级路由只有/64的子网,那你就不可能申请到子网,如果上级路由有/56的,那你可以申请到/60的,/62的等等。

光猫获取IPv6

光猫的路由器本身要获取前缀,这个前缀获取的方法在联通光猫里有3种(参考:知乎文章),static、PD、RA。

static就是手动指定一个,这玩意儿感觉一般也不用。

PD全称前缀代理(prefix delegation),指路由器作为pd客户端,向上级路由/设备请求一个前缀,这个前缀一般会比/64大,才能给下级路由器派发前缀,否则只能直连光猫的设备有IPv6。
这就要求光猫的上级必须通过IPv6-PD的方式给一个前缀(当然,也不是完全不行,比如:这位哥就hack了一下)。

RA是路由通告(route announcement),具体怎么获取前缀咱还不太清楚,可能是只能获取一个/64的前缀,给wan口配置一个ipv6地址?

需要说明的是,一般,运营商下发/56或者/60的前缀,路由器再自行从里面挑选一个/64的子网用来给lan中的设备分发ip地址。如果,你的lan中要接入另外一个路由器,那么,就需要:1. 上级路由开pd服务器,给下级分发/61, /62, /63的前缀 2. 或者,下级路由设置成交换机模式(有的叫穿透,passthrough)

posted @ 2023-02-11 12:35  王冰冰  阅读(12561)  评论(8编辑  收藏  举报