IPv6 地址获取方式及工具

配置

make config ----------> kernel config ------------>networking support ----------------->networking options--------------->IPv6 protocol
在这里插入图片描述
-------->busybox setting ---------> network utilities----------------------> enable ipv6 support
ping6
在这里插入图片描述

IPv6地址获取方式

主机接收路由器广播的RA包来决定如何获取和配置地址。

 	  0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Type      |     Code      |          Checksum             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Cur Hop Limit |M|O|  Reserved |       Router Lifetime         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         Reachable Time                        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                          Retrans Timer                        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   Options ...
     +-+-+-+-+-+-+-+-+-+-+-+-

路由通告包是type = 134的ICMPv6包。

M bit : 置为1 表示主机的IPv6地址需要通过网路中的DHCPv6 server获取,不进行地址自动配置。 置为0 表示使用SLAAC. options中会有全局前缀信息选项。

O bit: 置为1 表示其他配置信息主要是DNS, 需要通过DHCPv6 获得。 置为0 表示从RA报文的options中获得DNS等其他配置信息。

所以根据IPv6路由器的不同配置,主机有三种IPv6地址获取方式。

  • SLAAC + RDNSS : SLAAC (Stateless address autoconfiguration)。 RDNSS表示RA包中带有RDNSS选项,从该选项中获取DNS。
  • SLAAC +stateless dhcpv6: IPv6地址自动配置, 其他配置信息依赖DHCPv6获得。
  • stateful dhcpv6: IPv6地址及其他信息都从DHCPv6 server获得。

地址获取工具

当配置支持IPv6时, 无状态地址自动配置会默认开启。系统启动后(以eth0为例)

cat /proc/sys/net/ipv6/conf/eth0/autoconf 输出为 1, 表示使用RA包中的前缀信息自动配置地址。

在此目录下还有accept_ra, accept_ra_pinfo等相关配置开关,具体请参考IPv6 HOWTO。

为满足所有的地址获取方式,需要ndisc和wide-dhcpv6两个工具。

在配置为2,3方式时,使用wide-dhcpv6 中的dhcp6c作为dhcpv6 client, 在方式2中可以获取并设置DNS, 在方式3中可以完成配置地址和DNS的所有工作。

在配置为方式1时, 地址自动配置, 需要使用ndisc工具中的rdnssd获得系统得到的DNS, 然后手动进行设置。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐