【摘要】 在IPv4地址资源严重不足的当下,IPv6的应用越来越受到重视。在部署基于IPv6的网络环境时,IP地址规划与分配是整个网络部署的基础。使用DHCPv6动态主机分配可以解决IPv6网络中客户端IPv6地址分配问题。以无状态的DHCPv6为例,探讨DHCPv6的工作机制、网络环境搭建、网络设备配置与测试,并运用思科PT软件进行测试与分析,取得了预期效果。
【关键词】 IPv6 DHCPv6 地址规划 无状态
一、无状态DHCPv6工作机制
在基于IPv6的网络应用部署中,DHCPv6服务作为基础配置,用来实现IP地址自动分配。在DHCPv6的几种部署方式中,无状态DHCPv6应用较为典型。[1]
在配置无状态DHCPv6时,需要配置路由器通告RA消息中的管理标记和选项标记,以定义路由器RA消息包含的IPv6参数选项。具体标记设置为M flag=0,O flag=1,表示应用的是无状態DHCPv6。如果客户端同时希望获得DNS服务器地址信息之类的其它配置参数时,则需要将O标记设置为1。[2]图1显示了无状态DHCPv6工作过程。
当客户端选择设置为DHCPv6动态获取时,客户端向路由器以组播方式发出DHCP请求报文 。当路由器收到客户端请求时,路由器提供RA报文,以组播方式向组内节点发送。在此通告消息中,将M标记置为0,O标记置为1。客户端收到通告,将RA通告消息中提供的IPv6地址前缀与客户端本地MAC地址生成的EUI-64接口ID组合,形成IPv6地址。最后与DHCPv6服务器进行协商和确认,获取其他的配置参数,如域名服务器地址信息[3]。
二、DHCPv6配置与仿真
(一)构建DHCPv6网络拓扑
在思科PT模拟器中,构建网络拓扑。该网络由路由器、服务器及客户端主机组成,交换机作为网络连接设备。拓扑图如图2所示。
(二)DHCPv6配置
Router(config)#hostname R1-lcp //配置主机名
R1-lcp(config)#ipv6 unicast-routing //启用IPv6路由功能
R1-lcp(config)#ipv6 dhcp pool IPv6-LCP //定义IPv6地址池
R1-lcp(config-dhcpv6)#dns-server 2022:70:10:10::2 //配置地址池参数
R1-lcp(config-dhcpv6)#domain-name lcp-dhcptest.net //配置参数包括域名
R1-lcp(config-dhcpv6)#exit
R1-lcp(config)#interface g0/0
R1-lcp(config-if)#ipv6 address 2022:70:10:10::1/64 //配置接口IPv6地址
R1-lcp(config-if)#ipv6 dhcp server IPV6-LCP //配置DHCPv6接口
R1-lcp(config-if)#ipv6 nd other-config-flag //配置标记信息O的值为1
R1-lcp(config-if)#end
三、测试与分析
将R1路由器作为无状态DHCPv6服务器,配置完成后,进行无状态DHCPv6的验证测试。
(一)无状态DHCPv6路由器端验证
此时,路由器R1-lcp充当DHCPv6服务器,使用show ipv6 dhcp pool命令查看地址池情况。
R1-lcp#show ipv6 dhcp pool
DHCPv6 pool: IPv6-LCP
DNS server: 2022:70:10:10::2
Domain name: lcp-dhcptest.net
Active clients: 0
地址池里列出了DHCPv6 pool名称、DNS server地址、包含的域名及维护的活动客户端数量。活动客户端数量为0表明目前在DHCPv6服务器里没有处于活动连接的客户端状态。
(二)客户端测试
打开客户端IP地址配置选项,将IPv6地址配置选项设置为DHCP自动获取。在CLI命令行中使用ipv6config /all命令检查客户端主机本地接口状况及参数配置。
C:\>ipv6config /all
FastEthernet0 Connection:(default port)
Connection-specific DNS Suffix..: lcp-dhcptest.net
Physical Address................: 00C0.F540.6A99
Link-local IPv6 Address.........: FE80::2C0:F5FF:FE40:6A99
IPv6 Address....................: 2022:70:10:10:2C0:F5FF:FE40:6A99
Default Gateway.................: FE80::230:F2FF:FE76:D201
DNS Servers.....................: 2022:70:10:10::2
DHCPv6 IAID.....................: 658063988
DHCPv6 Client DUID..............: 00-01-00-01-15-BB-44-70-00-C0-F5-40-6A-99
Bluetooth Connection:
Connection-specific DNS Suffix..:
Physical Address................: 000C.CF92.6458
Link-local IPv6 Address.........: ::
IPv6 Address....................: ::
Default Gateway.................: ::
DNS Servers.....................: ::
DHCPv6 IAID.....................: 658063988
DHCPv6 Client DUID..............: 00-01-00-01-15-BB-44-70-00-C0-F5-40-6A-99
結果显示已经获取到IPv6地址,IPv6地址为2022:70:10:10:2C0:F5FF:FE40:6A99。
(三) EUI-64格式IPv6地址生成
EUI-64是一种IPv6地址格式生成规范,由IEEE定义[4]。它的构造规范是,将主机48位即6字节本地MAC地址,通过添加2个字节的特殊字段映射为为64位,作为IPv6地址的的主机接口ID部分,而主机的IPv6前64位前缀由本地路由器提供。
本例中,客户端主机的MAC地址为00C0.F540.6A99。首先,在第3字节和第4字节之间即F540中间插入FFFE后,变为64位地址00C0.F5FF.FE40.6A99。然后,再将第1字节次低位取反。第1字节次低位值为0,取反后变为1,因此第1字节的值就变为十六进制的02,最终EUI-64的值是2C0:F5FF:FE40:6A99,与路由器分配的64位前缀2022:70:10:10组合在一起,形成的完整的128位IPv6地址是2022:70:10:10:2C0:F5FF:FE40:6A99。
(四)客户端与DNS服务器连通性测试
C:\>ping 2022:70:10:10::2
Pinging 2022:70:10:10::2 with 32 bytes of data:
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
测试结果表明客户端与DNS服务器连通性正常。
(五)测试与HTTP 服务器连通性
在DNS服务器上建立一条域名映射记录:假定主机域名为web.lcp.net,映射的IPv6地址为2022:70:10:10::2,按图3中所示设置Type类型[5]。
继续使用ping命令测试与HTTP 服务器连通性。
C:\>ping web.lcp.net
Pinging 2022:70:10:10::2 with 32 bytes of data:
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
Reply from 2022:70:10:10::2: bytes=32 time<1ms TTL=128
结果表明,用域名测试与HTTP服务器连通性正常,域名均能正确解析。
(六)HTTP服务器访问测试
测试HTTP服务器访问,首先保证在服务器上已安装启用HTTP服务功能。打开模拟的Web浏览器,访问server上配置好的HTTP服务器。在URL地址栏输入:http://web.lcp.net。浏览器回显结果如图4所示。
显示结果表明客户端能正常访问HTTP服务,并将网页结果回传给浏览器。
四、结束语
DHCPv6是基于IPv6的动态主机配置协议,可以为客户端主机提供透明的IPv6地址租用服务。在基于IPv6的业务环境中部署无状态的DHCPv6服务器时,需要注意对IPv6地址前缀部分进行合理规划,并将固定的全局IPv6地址分配给DHCPv6,同时配置好地址池以及额外的参数选项[6]。使用网络配置与检测工具可以检验DHCPv6服务器的工作状况,客户端与服务器连接及访问情况,实现一个基于IPv6的包含DHCP服务器、DNS服务器、HTTP服务器的完整构建,以及对全网服务器的正常访问。
参 考 文 献
[1]余骏华,邓国强.基于DHCPv6的校园网IPv6准入控制方案研究[J].教育信息技术,2018(11):78-80.
[2] Vachon B,Johnson A.思科网络技术学院教程第6版路由和交换基础[M].北京:人民邮电出版社,2018(01).
[3]李治西.浅谈IPV6地址获取方式[J].网络安全技术与应用,2020(05):30-31.
[4] 谢希仁.计算机网络第8版[M].北京:电子工业出版社,2021(06).
[5]董晓军.双栈网络下返回最优解析结果的DNS机制[J].中国新通信,2020,22(21):49-50.
[6]黄盛林,吕锋昌,王伟.SAVI DHCPv6数据报文源地址验证方法研究[J].计算机应用研究,2017,34(01):166-169.
李春平(1971.11-),男,汉族,湖北孝感,硕士,高级工程师,研究方向:融合网络、网络安全。