IPv6BBS

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 14616|回复: 12

DHCPv6技术介绍

[复制链接]
满天星 发表于 2010-9-16 23:30:42 | 显示全部楼层 |阅读模式
DHCPv6概述
DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址和其他网络配置参数的协议。
与其他IPv6地址分配方式(手工配置、通过路由器公告消息中的网络前缀无状态自动配置等)相比,DHCPv6具有以下优点:
  • 不仅可以分配IPv6地址,还可以分配IPv6前缀,便于全网络的自动配置和管理。
  • 更好地控制地址的分配。通过DHCPv6不仅可以记录为主机分配的地址/前缀,还可以为特定主机分配特定的地址/前缀,以便于网络管理。
  • 除了IPv6前缀、IPv6地址外,还可以为主机分配DNS服务器、域名等网络配置参数。


DHCPv6网络构成
图 1 DHCPv6网络构成


如图 1所示,DHCPv6典型组网中包括以下三种角色:
  • DHCPv6客户端:动态获取IPv6地址、IPv6前缀或其他网络配置参数的设备。
  • DHCPv6服务器:负责为DHCPv6客户端分配IPv6地址、IPv6前缀和其他网络配置参数的设备。DHCPv6服务器不仅可以为DHCPv6客户端分配IPv6地址,还可以为其分配IPv6前缀。如图 1所示,DHCPv6服务器为DHCPv6客户端分配IPv6前缀后,DHCPv6客户端向所在网络发送包含该前缀信息的RA消息,以便网络内的主机根据该前缀自动配置IPv6地址。
  • DHCPv6中继:DHCPv6客户端通过本地链路范围的组播地址与DHCPv6服务器通信,以获取IPv6地址和其他网络配置参数。如果服务器和客户端不在同一个链路范围内,则需要通过DHCPv6中继来转发报文,这样可以避免在每个链路范围内都部署DHCPv6服务器,既节省了成本,又便于进行集中管理。


DHCPv6地址/前缀分配过程
DHCPv6服务器为客户端分配地址/前缀的过程分为两类:
  • 交互两个消息的快速分配过程
  • 交互四个消息的分配过程


交互两个消息的快速分配过程
图 2 地址/前缀快速分配过程


如图 2所示,地址/前缀快速分配过程为:
  • DHCPv6客户端在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数;
  • 如果DHCPv6服务器支持快速分配过程,则直接返回Reply消息,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配过程,则采用交互四个消息的分配过程为客户端分配IPv6地址/前缀和其他网络配置参数。


交互四个消息的分配过程
交互四个消息的分配过程如图 3所示。
图 3 交互四个消息的分配过程


交互四个消息分配过程的简述如表 1。

表 1 交互四个消息的分配过程
---------------------------------------------------------------------
步骤  发送的消息   说明
--------------------------------------------------------------------
(1)  Solicit         DHCPv6客户端发送该消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数
(2)  Advertise   如果Solicit消息中没有携带Rapid Commit选项,或Solicit消息中携带Rapid Commit选项,但服务器不支持快速分配过程,则DHCPv6服务器回复该消息,通知客户端可以为其分配的地址/前缀和网络配置参数
(3) Request      如果DHCPv6客户端接收到多个服务器回复的Advertise消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数
(4)  Reply          DHCPv6服务器回复该消息,确认将地址/前缀和网络配置参数分配给客户端使用
---------------------------------------------------------------------

地址/前缀租约更新过程
DHCPv6服务器分配给客户端的IPv6地址/前缀具有一定的租借期限。租借期限由有效生命期(Valid Lifetime)决定。地址/前缀的租借时间到达有效生命期后,DHCPv6客户端不能再使用该地址/前缀。在有效生命期到达之前,如果DHCPv6客户端希望继续使用该地址/前缀,则需要更新地址/前缀租约。
图 4 通过Renew更新地址/前缀租约


如图 4所示,地址/前缀租借时间到达时间T1(推荐值为首选生命期Preferred Lifetime的一半)时,DHCPv6客户端会向为它分配地址/前缀的DHCPv6服务器单播发送Renew报文,以进行地址/前缀租约的更新。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约。
图 5 通过Rebind更新地址/前缀租约


如图 5所示,如果在T1时发送Renew请求更新租约,但是没有收到DHCPv6服务器的回应报文,则DHCPv6客户端会在T2(推荐值为首选生命期的0.8倍)时,向所有DHCPv6服务器组播发送Rebind报文请求更新租约。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约;如果DHCPv6客户端没有收到服务器的应答报文,则到达有效生命期后,客户端停止使用该地址/前缀。


DHCPv6无状态配置

DHCPv6无状态配置简介
DHCPv6服务器可以为已经具有IPv6地址/前缀的客户端分配其他网络配置参数,该过程称为DHCPv6无状态配置。
DHCPv6客户端通过地址无状态自动配置功能成功获取IPv6地址后,如果接收到的RA(Router Advertisement,路由器通告)报文中M标志位(Managed address configuration flag,被管理地址配置标志位)为0、O标志位(Other stateful configuration flag,其他配置标志位)为1,则DHCPv6客户端会自动启动DHCPv6无状态配置功能,以获取除地址/前缀外的其他网络配置参数。

地址无状态自动配置是指节点根据路由器发现/前缀发现所获取的信息,自动配置IPv6地址。

DHCPv6无状态配置过程
图 6 DHCPv6无状态配置工作过程


如图 6所示,DHCPv6无状态配置的具体过程为:
  • 客户端以组播的方式向DHCPv6服务器发送Information-request报文,该报文中携带Option Request选项,指定客户端需要从服务器获取的配置参数。
  • 服务器收到Information-request报文后,为客户端分配网络配置参数,并单播发送Reply报文将网络配置参数返回给客户端。
  • 客户端检查Reply报文中提供的信息,如果与Information-request报文中请求的配置参数相符,则按照Reply报文中提供的参数进行网络配置;否则,忽略该参数。如果接收到多个Reply报文,客户端将选择最先收到的Reply报文,并根据该报文中提供的参数完成客户端无状态配置


DHCPv6中继工作过程
图 7 DHCPv6中继的工作过程


通过DHCPv6中继动态获取IPv6地址/前缀和其他网络配置参数的过程中,DHCPv6客户端与DHCPv6服务器的处理方式与不通过DHCPv6中继时的处理方式基本相同。图 7中只说明DHCPv6中继的转发过程:
  • DHCPv6客户端向所有DHCPv6服务器和中继的组播地址FF02::1:2发送请求;
  • DHCPv6中继接收到请求后,将其封装在Relay-forward报文的中继消息选项(Relay Message Option)中,并将Relay-forward报文发送给DHCPv6服务器;
  • DHCPv6服务器从Relay-forward报文中解析出客户端的请求,为客户端选取IPv6地址和其他参数,构造应答消息,将应答消息封装在Relay-reply报文的中继消息选项中,并将Relay-reply报文发送给DHCPv6中继;
  • DHCPv6中继从Relay-reply报文中解析出服务器的应答,转发给DHCPv6客户端;

DHCPv6客户端根据DHCPv6服务器分配的IPv6地址/前缀和其他参数进行网络配置。

协议规范
与DHCPv6相关的协议规范有:
  • RFC 3736:Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6
  • RFC 3315:Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
  • RFC 2462:IPv6 Stateless Address Autoconfiguration
  • RFC 3633:IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
hxc21st 发表于 2011-2-17 15:14:27 | 显示全部楼层
LZ,请教一个问题,DHCPv6分配IP地址时是不是不会分配IPv6网关,客户端应根据RA去获取路由来实现跨网通信?

推荐一下好的DHCPv6测试工具
Dibbler(下载网站:http://klub.com.pl/dhcpv6/
 楼主| 满天星 发表于 2011-2-17 23:12:20 | 显示全部楼层
DHCPv6不分配网关,是将RA中的地址作为网关的,一般都是link-local地址。
Dibbler不是测试工具,而是dhcpv6软件,支持client,relay,server等各种功能。
zhongr130 发表于 2011-6-15 10:03:09 | 显示全部楼层
DING GE...............
zhongr130 发表于 2011-6-19 20:35:51 | 显示全部楼层
再顶顶~~~
bocy 发表于 2011-8-25 16:57:10 | 显示全部楼层
请教LZ一个问题:
在Windows2008 server上配置dhcpv6后,同一个网段的客户端可以直接获取到IP吗?
我配置的IP地址作用域是fec0:2001::2002-fec0:2001::ffff:ffff
服务正常,没有错误日志,可是WIN 7得不到ipv6的地址,可以得到ipv4的地址
是不是还要配置什么呢?
 楼主| 满天星 发表于 2011-8-26 23:10:42 | 显示全部楼层
客户端与服务器端肯定不存在同一网段的说法吧,在一条链路上就OK嘛,同时需要确认双方的链路本地地址都可以ping通哦。
如果配置没有问题的话,且链路本地地址可以ping通则应该没有问题的哦
hankzheng 发表于 2011-9-17 22:08:02 | 显示全部楼层
回复 6# bocy

Win7 获取不了IPv6地址的原因是:RA没有配置M bit 和O bit,WIN7 不会发送 Solicit ,建议手动配置后,在尝试。
nekkst 发表于 2011-9-18 23:04:30 | 显示全部楼层
win7 不能自动获取ipv6 address 问题我也遇到,不过上周我发现原因了。
一个是win7自身配置问题:
advertise =enable, Managed=enable, Other=enable.
二个是win7自身问题:
如果问题一已经配置好了,需要重新启动win7,如果重新启动网卡是不能获得地址的,这个好像是win7的 BUG,每次获得ipv6address需要重新启动win7系统。,
hankzheng 发表于 2011-9-19 20:49:24 | 显示全部楼层
回复 9# nekkst


    我到没有手动配置过。都是直接配置RADVD的M,Obit, 就OK了。不需要重启网卡,或者WIN7。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|IPv6BBS ( 京ICP备13024693号 | 京公网安备11010802012238 )

GMT+8, 2019-12-9 11:23 , Processed in 0.021604 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表