路由器IPv6 配置
前缀代理 DHCPv6-PD (Prefix Delegation)
在 IPv4 中,运营商通常只给你一个公网 IP,你的路由器通过 NAT(网络地址转换)让家里所有设备上网。 而在 IPv6 中,运营商会分给你一整块地址前缀(通常是 /56 或 /60)。你的路由器不需要做 NAT,而是把这块大前缀切成更小的块(通常是 /64),分发给下级设备。这个过程叫前缀代理。
前缀授权链(Prefix Delegation Chain)
上级设备将一块地址前缀分配给下级设备,而下级设备也可以将这段地址继续划分,再分配给下下级设备,这个过程叫做前缀授权链。
IPv6 的连接方式
路由器获得 IPv6 连接
- 获取 WAN 口地址:路由器的 WAN 口接入上级设备的 LAN 口,通过 RS/RA(Router Solicitation/Advertisement)协议获得一个链路本地地址,并通过 DHCPv6 获得一个用于 WAN 口上网的公网全局地址(GUA)。
- 前缀代理(IA_PD):路由器向上级设备发起一个 DHCPv6-PD 请求,索要一个“地址段”。上级设备就会分配一个没被使用的地址段给到本设备(比如 240e:xxx:xxxx:ff00::/56)。
- 路由器拿到这个地址段后,会从里面再分配一个 /64 的段给到自己的 LAN 口。
终端获得 IPv6 连接
终端连接上路由器之后,路由器会根据 DHCPv6 协议或 SLAAC 协议给终端分配一个地址。
子路由获取 IPv6 连接
子路由获取连接的方式和主路由类似,其中主路由会将自己分配的地址前缀里再分配一块给子路由。
注意的是 IPv6 里规定 /64 段是最小的段,如果主路由拿到的是 /64 段,后面就无法再接子路由了。
DHCPV6 和 SLAAC
这是路由器给终端分配 IPv6 地址的两种方式。
DHCPv6:路由器像管家一样,指定一个地址给设备。
SLAAC:路由器像广播员一样,告诉连接上的所有设备“前缀是 2408……,你们自己编后半段吧”。
一般电脑都支持 DHCPv6 协议,手机(特别是安卓)依赖 SLAAC 协议才能拿到 IPv6。路由器里一般可以配置成同时支持这两个协议。
多个 IPv6 地址
IPv6 地址获取和 IPv4 有点不 一样,很多时候会一次行获取多个地址,比如:
inet6 fe80::cf4:879a:93c9:7dc0%en0 prefixlen 64 secured scopeid 0x6
inet 192.168.110.178 netmask 0xffffff00 broadcast 192.168.110.255
inet6 2408:8255:3384:c78:8f:329c:bdce:1968 prefixlen 64 autoconf secured
inet6 2408:8255:3384:c78:db1:1f49:dcc9:c3a8 prefixlen 64 autoconf temporary
inet6 2408:8255:3384:c78::5627 prefixlen 64 dynamic
- 链路本地地址
fe80 开头的地址就是这个,不能上公网,只是在局域网内互相连接使用。 - 无状态地址(SLAAC)
这类地址有两个,固定地址(secured)和临时地址(temporary)。
固定地址主要用与内网里被动访问,它的后半段是根据算法生成的,只要在前缀不变的情况下,这个地址通常是固定的。如果你要在局域网里给这台机器做端口映射或解析,就应该用这个地址。
临时地址主要用与出站访问,比如看网页,刷视频。这个地址是系统随机生成的,而且会定期更换,主要是为浪费防止网站通过固定 IP 追踪你的长期行为。 - 有状态地址(DHCPv6)
这个地址是由路由器统一分配并登记的。
Read other posts