当前位置: 首页 > news >正文

IPV6之DHCPv6服务器和中继代理和前缀代理服务器客户端

一、DHCPv6 原理

        DHCPv6 是动态主机配置协议(DHCP)的 IPv6 版本,DHCPv6 服务端可以向DHCPv6客户端分配IPv6地址以及DNS地址和域名等配置参数。相对 于IPv6 无状态地址自动配置协议,DHCPv6属于一种有状态地址自动配置协议。在有状态地 址配置过程中,DHCPv6服务器分配一个完整的IPv6地址给主机,并提供DNS地址和域名等 其他配置信息,这中间可能通过中继代理转交DHCPv6报文,而且最终服务器能把分配的IPv6 地址和客户端的绑定关系记录在案,从而增强了网络的可管理性;DHCPv6服务器也能提供 无状态DHCPv6 服务,即不分配IPv6地址,仅需向主机提供DNS地址和域名等其他配置信 息,从而补足了IPv6无状态地址自动配置的缺陷;DHCPv6协议还提供了DHCPv6前缀代理 的扩展功能,上游路由器可以自动为下游路由器分派地址前缀,从而实现了层次化网络环境 中IPv6 地址的自动规划,解决互联网提供商(ISP)的IPv6网络部署问题。

        DHCPv6 报文用于客户端、中继代理与服务器三者之间的通信,以完成DHCPv6 的协议 行为。DHCPv6 报文承载于UDP协议之上。DHCPv6客户端使用UDP端口547向DHCPv6服 务器或中继代理发送请求报文,DHCPv6服务器和中继代理使用UDP端口546向DHCPv6客 户端发送应答报文。DHCPv6客户端使用所有DHCP中继代理和服务器多播地址(FF02::1:2)发 送服务器发现(Solicit)或请求(Request)报文。

DHCPv6 协议交互过程

当DHCPv6客户端向位于同一链路的DHCPv6服务器请求分配IPv6地址以及其它配置参 数时,客户端首先要定位和选择合适的服务器,然后才能向服务器请求分配地址和其它配置 参数。

动态分配主机配置的协议过程:

  • 在定位服务器时,客户端向所有DHCP中继代理和服务器多播地址 (FF02::1:2)发出 SOLICIT 消息希望发现合适的DHCPv6服务器。
  • 任何能够满足该请求的服务器都会发送一个ADVERTISE消息给客户端,其中包含可 分配的配置信息以及服务器的身份标识(DUID)和该服务器的优先值信息。
  • 客户端可能接收到多个这样的通告消息,依据某种策略(如选择服务器优先值选项中优先值最高的服务器)选择其中一个服务器,然后向选定服务器发送REQUEST消 息请求服务器分配通告的IPv6地址和其它配置参数。
  • 被选择的服务器回应以REPLY 消息,其中包含确认的IPv6 地址和其它配置参数, 客户端收到REPLY消息提取地址和配置参数完成DHCPv6配置任务。

        如果 DHCPv6 服务器和 DHCPv6 客户机不相邻时,服务器是无法收到客户机发出的DHCPv6 多播报文,因此服务器 也不会给客户机发送任何DHCPv6报文,这时需要DHCPv6中继代理来转发这些DHCPv6报 文,完成DHCPv6客户机和服务器之间的DHCPv6报文交互过程。

        交换机实现了DHCPv6服务器、DHCPv6中继的功能和DHCPv6前缀代理客户端功能。中 继代理节点收到来自客户端的DHCPv6消息,重新封装成Relay-forward报文转发给DHCPv6 服务器或下一个中继代理,服务器回应的DHCPv6消息被封装成Relay-reply报文交给DHCPv6 中继代理节点,中继代理节点解除最外一层中继封装后再转发给DHCPv6客户端或下一个中 继代理,从而完成客户端与服务器之间的通信。

        DHCPv6 前缀代理(Prefix Delegation)机制中,上游网络路由器(PE)启动DHCPv6服务器, 下游网络路由器(CPE)启动DHCPv6前缀代理客户端。此时下游网络路由器不需要再手工指定 用户侧链路的 IPv6 地址前缀,它只需要向上游网络路由器提出前缀分配申请,上游网络路 由器便可以分配合适的地址前缀给下游路由器二者之间的报文交互与DHCPv6地址分配的 过程类似。然后下游路由器把获得的前缀(一般前缀长度小于64)进一步自动细分成64前缀 长度的子网网段,把细分的地址前缀再通过路由公告(RA)至与主机直连的用户链路上,实现 主机的地址自动配置,从而完成整个系统层次的地址布局。

二、DHCPv6 配置举例

  • 案例1: 在部署全IPv6校园网时,若使用专门的服务器进行IPv6地址的统一分配和管理,则可 以使用路由交换设备的DHCPv6服务器功能进行IPv6地址分派。DHCPv6服务器同时支持有 状态与无状态DHCPv6。

网络拓扑: 接入层使用二层接入设备 Switch1,连接宿舍楼栋的用户;一级汇聚层使用汇聚设备 Switch2 做 DHCPv6 中继代理;二级汇聚层使用汇聚设备Switch3做DHCPv6服务器,并与骨 干网或更高的汇聚层设备相连;用户PC端一般装有Windows Vista操作系统,具有DHCPv6 客户端。

Switch3 配置:

Switch3>enable 
Switch3#config 
Switch3(config)#service dhcpv6  
Switch3(config)#ipv6 dhcp pool EastDormPool 
Switch3(dhcpv6-EastDormPool-config)#network-address 2001:da8:100:1::1 2001:da8:100:1::100   配置地址池可分配的IPv6地址范围。
Switch3(dhcpv6-EastDormPool-config)#excluded-address 2001:da8:100:1::1 
Switch3(dhcpv6-EastDormPool-config)#dns-server 2001:da8::20 
Switch3(dhcpv6-EastDormPool-config)#dns-server 2001:da8::21 
Switch3(dhcpv6-EastDormPool-config)#domain-name dhcpv6.com 
Switch3(dhcpv6-EastDormPool-config)#lifetime 1000 600 配置DHCPv6地址池动态分配地址或前缀的生存期。
Switch3(dhcpv6-EastDormPool-config)#exit 
Switch3(config)#interface vlan 1 
Switch3(Config-if-Vlan1)#ipv6 address 2001:da8:1:1::1/64 
Switch3(Config-if-Vlan1)#exit 
Switch3(config)#interface vlan 10 
Switch3(Config-if-Vlan10)#ipv6 address 2001:da8:10:1::1/64 
Switch3(Config-if-Vlan10)#ipv6 dhcp server EastDormPool preference 80 
Switch3(Config-if-Vlan10)#exit 
Switch3(config)#

Switch2 配置: 

Switch2>enable 
Switch2#config 
Switch2(config)#service dhcpv6  
Switch2(config)#interface vlan 1 
Switch2(Config-if-Vlan1)#ipv6 address 2001:da8:1:1::2/64 
Switch2(Config-if-Vlan1)#exit 
Switch2(config)#interface vlan 10 
Switch2(Config-if-Vlan10)#ipv6 address 2001:da8:10:1::2/64 
Switch2(Config-if-Vlan10)#exit 
Switch2(config)#interface vlan 100 
Switch2(Config-if-Vlan100)#ipv6 address 2001:da8:100:1::1/64 
Switch2(Config-if-Vlan100)#no ipv6 nd suppress-ra 
Switch2(Config-if-Vlan100)#ipv6 nd managed-config-flag 
Switch2(Config-if-Vlan100)#ipv6 nd other-config-flag 
Switch2(Config-if-Vlan100)#ipv6 dhcp relay destination 2001:da8:10:1::1 指定DHCPv6 中继转发的目的地址
Switch2(Config-if-Vlan100)#exit 
Switch2(config)#
  • 案例2: 运营商在部署层次化的IPv6网络时,不再需要为网络下游的路由交换设备手工配置IPv6 地址,可以通过前缀代理机制,实现层次化IPv6网络的自动配置:
    • 1. 配置上游路由交换设备为DHCPv6前缀代理服务器,维护一个保存已分配前缀与下 游设备DUID关联信息的本地数据库;
    • 2. 配置下游路由交换设备为前缀代理客户端,通过与前缀代理服务器进行类似 DHCPv6 地址分配相似的交互,获得长度小于64的IPv6地址前缀;
    • 3.获得前缀的下游接入设备与用户PC 处于同一链路的接口通过路由公告(RA)告知接 入用户所在链路的前缀信息,用户的 PC 机进一步通过无状态地址自动配置获取 IPv6 地址;同时,该接口配置无状态DHCPv6服务器,为DHCPv6 client提供DNS、 Domain name 信息。

网络拓扑: 下游路由交换设备使用接入设备 Switch1,与上游路由交换设备相连的接口配置前缀代 理客户端与用户PC处于同一链路的接口配置无状态DHCPv6服务器为PC提供无状态信 息(如DNS、domain name等),并开启无状态地址自动配置的路由公告;上游路由交换设 备使用汇聚设备 Switch2,配置前缀代理服务器,开启有状态地址自动配置的路由公告用 户PC端一般装有Windows Vista操作系统,具有DHCPv6客户端。

Switch2 配置 :

Switch2>enable 
Switch2#config 
Switch2(config)#interface vlan 2 
Switch2(Config-if-Vlan2)#ipv6 address 2001:da8:1100::1/64  
Switch2(Config-if-Vlan2)#exit 
Switch2(config)#service dhcpv6 启动DHCPv6服务
Switch2(config)#ipv6 local pool client-prefix-pool 2001:da8:1800::/40 48  配置代理前缀池。指定 IPv6 前缀与某个前缀请求客户端静态绑定。
Switch2(config)#ipv6 dhcp pool dhcp-pool  
Switch2(dhcpv6-dhcp-pool-config)#prefix-delegation pool client-prefix-pool 1800 600 指定IDHCPv6地址池使用的代理前缀池,从该前缀池中分配可用的前缀给客户端。
Switch2(dhcpv6-dhcp-pool-config)#exit               
Switch2(config)#interface vlan 2 
Switch2(Config-if-Vlan2)#ipv6 dhcp server dhcp-pool 
Switch2(Config-if-Vlan2)#exit

Switch1 配置 :

Switch1>enable 
Switch1#config 
Switch1(config)#service dhcpv6  
Switch1(config)#interface vlan 2 
Switch1(Config-if-Vlan2)#ipv6 dhcp client pd prefix-from-provider  在指定接口上启动客户端前缀代理请求功能,获取的前缀与设置的通用前缀名关联。
Switch1(Config-if-Vlan2)#exit 
Switch1(config)#interface vlan 3
Switch1(Config-if-Vlan3)#ipv6 address prefix-from-provider 0:0:0:1::1/64  
Switch1(Config-if-Vlan3)#exit 
Switch1(config)#ipv6 dhcp pool foo 
Switch1(dhcpv6-foo-config)#dns-server 2001:4::1 为DHCPv6 客户机配置DNS服务器地址。
Switch1(dhcpv6-foo-config)#domain-name www.ipv6.org 为DHCPv6 客户机配置域名。 
Switch1(dhcpv6-foo-config)#exit 
Switch1(config)#interface vlan 3 
Switch1(Config-if-Vlan3)#ipv6 dhcp server foo  在指定接口上启动DHCPv6服务器功能
Switch1(Config-if-Vlan3)#ipv6 nd other-config-flag  
Switch1(Config-if-Vlan3)#no ipv6 nd suppress-ra  
Switch1(Config-if-Vlan3)#exit 

注意:

  • 启动全局DHCPv6服务与相关 接口上的DHCPv6功能;
  • 若DHCPv6客户机和服务器不在同一个物理网络中,检查中间负责转发DHCPv6报文的 路由器是否具备DHCPv6中继功能。若中间路由器不具备DHCPv6中继功能,建议替换 掉中间的路由器或更新版本,使其具备DHCPv6中继功能;
  • 用户比较容易遇到的现象是DHCPv6客户机连接在启动了DHCPv6服务器功能的交换机 上,却获得不到IPv6 地址。遇到这种情况请
    • 首先确定 DHCPv6 客户机是否直连在启动 DHCPv6 服务器的接口上,
      • 若是直连,则判断该接口VLAN的IPv6地址是否与本接口上 启动的DHCPv6服务器地址池在同一个网段,如没有则请添加该网段至地址池;
      • 若不是 直连,而且通过了其它启动了DHCPv6中继代理的三层交换机接入到DHCPv6服务器, 则请判断DHCPv6客户机所在链路的交换机接口是否配置了IPv6地址,
      • 若没有配置IPv6 地址,建议配置该接口IPv6地址。
      • 若该接口配置了地址,则进一步判断接口的IPv6地 址是否在DHCPv6服务器地址池的网段之内,
      • 如没有则请添加该网段至地址池。

        

http://www.xdnf.cn/news/1451809.html

相关文章:

  • 高并发商城 商品为了防止超卖,都做了哪些努力?
  • PostgreSQL18-FDW连接的 SCRAM 直通身份验证
  • 当便捷遇上复杂,低代码的路该怎么走?
  • Linux 基础IO-从 “一切皆文件” 到自定义 libc 缓冲区
  • fastmcp2.0的传输方式
  • DFT:从RL的视角修正SFT损失的权重
  • 【高分论文密码】大尺度空间模拟预测与数字制图
  • Django事务
  • Leetcode 240. 搜索二维矩阵 II 矩阵 / 二分
  • 垃圾回收,几种GC算法及GC机制
  • 数据库中事务、指令、写法解读
  • 搭建基于 Solon AI 的 Streamable MCP 服务并部署至阿里云百炼
  • 【多线程初阶】线程安全问题 死锁产生 何如避免死锁
  • 前端vue常见标签属性及作用解析
  • 零售消费企业的数字化增长实践,2025新版下载
  • 在 Debian 系统上清理缓存的方式和具体操作方法
  • Grafana - 监控磁盘使用率Variables使用
  • 卫星互联网安全风险及关键技术探索
  • 【深度学习】P1 引言(待完成)
  • Conda 常用命令大全
  • Axure RP 9 Mac 交互原型设计
  • iPhone17再爆猛料?苹果2025秋季发布会亮点抢先看
  • Jenkins调用ansible部署lnmp平台
  • 阿里云-基于通义灵码实现高效 AI 编码 | 1 | 在 Visual Studio Code 中安装和使用灵码
  • Redis vs Memcached vs MongoDB:深入对比与选型指南
  • AE(自动编码器)技术解析
  • Photoshop - Photoshop 触摸功能
  • 2025高教社杯国赛数学建模选题建议+初步分析
  • Java Web :技术根基与产业实践的多维耦合
  • CSS 渐变边框