IPv6下的DHCP -- DHCPv6

2022-06-13 11:13:50 浏览数 (1)

是否还有人记得DHCP出现之前的岁月?在那个年代,系统管理员不得不维护一份具体的IP地址和设备之间的映射关系,并且人们需要确保自己连接到正确的子网,并且小心地手动输入地址信息。DHCP的出现为管理员及用户省去了手动配置IP等网络信息的烦恼。显然,人们也希望在IPv6的世界里继续拥有DHCP带来的便利,于是就有了DHCPv6。

DHCPv6并非简单地把DHCP从IPv6移植到IPv6,而是针对各项功能的重新设计。DHCPv6有三种方式: SLAAC, Stateless和Stateful。本文将介绍其工作的基本机制。

Stateless Auto Address Configuration (SLAAC)

顾名思义,无状态的自动地址配置。但是,它跟Stateless DHCPv6不同,是不同的配置方式。

SLAAC是三种IP地址配置方式中最简单的,因为它利用Neighbour Discovery Protocol(NDP, 邻居发现协议)。NDP协议允许网络中的设备发现L3的邻居,SLAAC可以用它来获取2层网络的连接信息(如ARP等)和发现网络中的路由。

当一个设备上线时,它会首先发一个Router Solicitation消息,询问“这里是否有路由”。如果该网络中有路由,该路由会回复一个Router Advertisement消息。通过该消息,路由会告诉该设备关于该网络的信息,包括:

默认网关是谁(该路由本身的Link-local地址)?

全局单播前缀是什么(比如,2001:DB8:ACAD:10::/64)

根据这些信息,新加入的设备将使用EUI-64技术生成一个新的全局单播地址。于是该设备获取了一个路由的全局单播前缀范围内的IP地址,并且该地址在整个互联网范围内有效。

这种方式非常简单,几乎无需手动配置。但是,这种方式下管理员无法集中配置,也无法指定更多的信息,比如DNS设置。如果管理员希望集中配置并指定更详细的信息,则需要DHCPv6技术。

值得指出的一点是,SLAAC模式下,网管员无需使用任何的DHCPv6数据包。

Stateless DHCPv6

无状态DHCPv6方式使用SLAAC获取连通性信息,然后用DHCPv6来进行配置。

新加入的设备首先发送一个Router Solicitation消息,该网段的路由会回复一个Router Advertisement消息。该模式下,Router Advertisement消息有包含一个值为1的other-config字段。一旦设备收到该消息,它会使用SLAAC生成它自己的IPv6地址。而且,该字段会告诉设备做更多的事情。

一旦SLAAC过程完成,设备会在网络内广播一个DHCPv6请求,DHCPv6服务器收到该请求后,会回复设备需要的其他信息,比如DNS服务器或者域名。

该方式之所以被称为无状态,是因为DHCPv6服务器不管理IPv6地址的有效期及回收等,它只是提供设备需要的额外信息。

该模式完全类似与IPv4下的DHCP。该模式下,需要一个DHCPv6服务器来处理IP的租赁及额外信息。

设备首先发送一个Router Solicitation的消息,与其他模式不同的是,该网段的路由此时回复的Router Advertisement消息中包含一个值为1的managed-config字段。该字段告诉设备使用使用DHCPv6而不是SLAAC。然后设备生成一个DHCPv6请求以获取IP地址和其他信息。DHCPv6服务器会选择一个IPv6地址。

总结:

DHCPv6有三种模式:SLAAC自动与路由协作;Stateless DHCPv6利用SLAAC来获取IP地址,并且用DHCP来获取其他信息;而Stateful DHCPv6则由DHCPv6服务器来提供IP地址。

0 人点赞