文章及资源归档至公众号【AIShareLab】,回复 通信零碎与网络 可获取。
一、目标
- 把握网络设备动态 IPv6 地址配置的办法。
- 把握 IPv6 地址无状态主动配置的利用。
- 把握通过 DHCPv6 部署 IPv6 地址配置自动化。
- 把握根本的 IPv6 网络连通性测试方法。
- 了解 RA 报文及无状态地址主动配置过程。
- 剖析 Ping 与 Tracert 利用所应用的 ICMPv6 报文及工作原理。
二、环境及网络拓扑
如图 1 所示,路由器 R1 通过两个物理接口别离连贯物联网终端 R4(通过一台路由器
模仿)及计算机 PC1。其中,路由器 R1 和 R4 举荐应用 AR2220 及以上设施。
图 1 网络拓扑图
三、需要
- 实现 R1 的 IPv6 根底配置。
- 在 R1 的 GE0/0/2 接口上启动 RA 报文通告,使得物联网终端 R4 的 GE0/0/0 接口可能通
过无状态主动配置获取 IPv6 地址。 - 在 R1 的 GE0/0/1 接口上部署 DHCPv6,使得 PC1 可能通过 DHCPv6 协定主动获取 IPv6
地址。 - 察看各类常见的 ICMPv6 报文在网络中的性能与利用。
四、步骤及后果剖析
1. 实现 R1 的 IPv6 根底配置。
在 R1 上实现如下配置, 配置后果如图 2 所示:
<Huawei> system-view
[Huawei] sysname R1
[R1] ipv6
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ipv6 enable
[R1-GigabitEthernet0/0/1] ipv6 address FC00:1000::1 64
[R1-GigabitEthernet0/0/1] quit
[R1] interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2] ipv6 enable
[R1-GigabitEthernet0/0/2] ipv6 address FC00:14::1 64
[R1-GigabitEthernet0/0/2] quit
图 2 R1 的 IPv6 根底配置
备注:以上配置展现的是在华为路由器上通过手工形式配置动态 IPv6 地址的过程。在少数状况下,络设施的 IPv6 地址须要固定,因而大多采纳手工配置的形式为设施配置动态 IPv6 地址。
阶段性验证:在 R1 上查看 IPv6 接口信息并展现相应后果,验证 R1 的 GE0/0/ 1 与 GE0/0/2 接口是否正确取得了相应的动态 IPv6 地址。
备注:在设施零碎视图上执行 display ipv6 interface brief 命令可查看设施的 IPv6 接口信息,其中包含接口 IPv6 地址、接口物理状态及协定状态。
通过验证, R1 的 GE0/0/ 1 与 GE0/0/2 接口正确地取得了相应的动态 IPv6 地址,后果如图 3 所示, 其相应的动态 IPv6 地址别离为 FC00:1000::1、FC00:14::1。
图 3 在 R1 上查看 IPv6 接口信息
(2)实现 IPv6 地址无状态主动配置
①在 R1 上实现如下配置:
[R1] interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2] undo ipv6 nd ra halt
备注:在华为路由器上 ipv6 nd ra halt 命令用来勾销使能设施公布路由器通告(Router Advertisement,RA)报文性能,缺省状况下,设施公布 RA 报文性能处于未使能状态,能够认为该命令缺省时曾经被配置在接口上了。在本试验中,咱们须要在 R1 的 GE0/0/2 接口上公布 RA 报文,因为 RA 报文中携带 IPv6 地址前缀信息,通过 RA 报文的通告,R4 可解析出报文中携带的 IPv6 地址前缀,并且应用该前缀联合 R4 本地生成的接口 ID 结构一个 IPv6 地址,这个过程被称为无状态地址主动配置。为实现这个性能,须要在 R1 的 GE0/0/2 接口上使能公布 RA 报文性能,即执行undo ipv6 nd ra halt
命令。
图 4 在 R1 上实现 IPv6 地址无状态主动配置
在 R1 的 GE0/0/2 接口上单击鼠标右键,按图 5 所示开始抓包,以试图捕捉 R1 的 GE0/0/2 接口上的入向与出向数据包。
图 5 在 R1 上实现 IPv6 地址无状态主动配置
②在物联网终端 R4 上实现如下配置, 配置后果如图 6 所示:
<Huawei> system-view
[Huawei] sysname R4
[R4] ipv6
[R4] interface GigabitEthernet 0/0/0
[R4-GigabitEthernet0/0/0] ipv6 enable
[R4-GigabitEthernet0/0/0] ipv6 address auto global default
图 6 配置物联网终端 R4
备注 :在以上配置中,ipv6 address auto global 命令用来使能无状态主动生成 IPv6 全局地址性能,命令开端的 default 关键字用于指定学习缺省路由,这样一来 R4 在收到 RA 报文生
成 IPv6 地址同时,还能够学习 RA 报文中的源 IPv6 地址,并且把它作为 IPv6 缺省路由的
下一跳地址。
实现上述配置后,R4 便会通过 IPv6 无状态地址主动配置性能在 GE0/0/0 接口上主动配
置一个 IPv6 地址。在 R4 上查看 IPv6 接口地址信息:
[R4] display ipv6 interface brief
*down: administratively down
(l): loopback
(s): spoofing
Interface Physical Protocol
GigabitEthernet0/0/0 up up
[IPv6 Address] FC00:14::2E0:FCFF:FECB:6980
备注 :以下面的后果为例,R1 通告给 R4 的 RA 报文中缺省时携带的 IPv6 地址前缀是前者
GE0/0/2 接口的 IPv6 地址前缀 FC00:14::/64,R4 将该 64bit 前缀与本人本地 GE0/0/0 接口的
IPv6 接口 ID(2E0:FCFF:FECB:6980)形成了一个 IPv6 地址:FC00:14::2E0:FCFF:FECB:6980。
其中,接口 ID 2E0:FCFF:FECB:6980 是 R4 在 GE0/0/0 接口上依据接口 MAC 地址主动生成
的,采纳的是 EUI-64 标准,该标准可确保生成的接口 ID 惟一。
阶段性验证
⑴ 在 R4 零碎视图下执行 display interface GigabitEthernet 0/0/ 0 命令,查看 R4 的 GE0/0/ 0 接口的相干信息并展现相应后果,验证接口 MAC 地址与上述接口 ID 是否合乎 EUI-64 标准。
R4 的 GE0/0/ 0 接口信息如图 6 所示,可知接口 MAC 地址与上述接口 ID 合乎 EUI-64 标准。
图 6 R4 的 GE0/0/ 0 接口信息
⑵ 在 R4 上 ping R1 GE0/0/2,具体命令格局为 ping ipv6 IPv6 地址,验证 R4 是否可与 R1 胜利通信。后果如图 7 所示, R4 与 R1 胜利通信。
图 7 在 R4 上 ping R1 GE0/0/2
(3)察看 RA 报文与无状态地址主动配置过程
(1)捕捉数据包,查看协定栈。
在 Wireshark 界面中,查看后面开启抓包后所捕捉的信息,R1 和 R2 接口配置实现后网络中产生了多个 ICMPv6 数据包交互,具体的蕴含 Neighbor Solicitation、Router Solicitation 和 Router Advertisement,其中,1 号 Neighbor Solicitation 报文为 R4 GE0/0/0 接口取得 IPv6 地址后为确保该地址在链路上的唯一性而启动反复地址检测(Duplicate Address Detection,DAD)机制所收回的街坊申请报文,2 号 ICMPv6 Router Solicitation 报文为 R4 被动发送的路由器申请(Router Solicitation,RS)报文以申请 R1 发送 RA 路由器通告报文,3 号 ICMPv6 Router Advertisement 报文即为 R1 周期性发送的 RA 报文。
图 8 R1 和 R2 接口配置实现后,R2 GE 0/0/0 所捕捉的数据包
答复下列问题:
** 联合捕捉信息,阐明 ICMPv6 数据包自下而上的协定栈及封装构造
答:ICMPv6 是 IPv6 协定栈中的一个外围协定,它次要用于在 IPv6 网络中传递管制信息和错误报告。ICMPv6 数据包的协定栈和封装构造如下所示:
数据链路层:ICMPv6 数据包首先被封装在数据链路层的帧中。这个帧蕴含了指标 MAC 地址、源 MAC 地址以及帧类型等信息。
IPv6 层:ICMPv6 数据包被封装在 IPv6 数据报中。IPv6 数据报蕴含了指标 IP 地址、源 IP 地址、下一个头部字段等信息。
下层协定:ICMPv6 数据包被封装在 IPv6 数据报的下层协定字段中。这个字段指定了封装在 IPv6 数据报中的下层协定类型,其中包含 ICMPv6 协定。
ICMPv6 头部:ICMPv6 数据包的头部蕴含了类型、代码、校验和等字段。这些字段指定了 ICMPv6 数据包的类型和用处。
数据局部:ICMPv6 数据包的数据局部取决于 ICMPv6 数据包的类型和代码。例如,当 ICMPv6 数据包的类型为 Echo Request(类型值为 128)时,数据局部蕴含了发送方发送的数据。如果 ICMPv6 数据包的类型为 Router Advertisement(类型值为 134),则数据局部蕴含了路由器的信息。**
⑵剖析繁多数据包格局。
①RA 报文:
以理论捕捉数据为准,选中一个 RA 报文,答复下列问题:
a. 蕴含 RA 报文的以太网帧的源地址和目标地址的十六进制值是多少?
答:蕴含 RA 报文的以太网帧的源地址为 00:e0:fc:1c:7d:1b 目标地址为 33:33:00:00:00:01
b. 蕴含 RA 报文的 IPv6 数据报源地址和目标地址的十六进制值是多少?
答:蕴含 RA 报文的 IPv6 数据报源地址和目标地址的十六进制值别离是 fe80::2e0:fcff:fe1c:7d1b 和 ff02::1
c. 给出 ICMPv6 中类型字段的十进制值。
答:134
d. RA 报文中是否蕴含发送者的 IPv6 地址?
答:RA 报文中蕴含发送者的 IPv6 地址
②RS 报文:以理论捕捉数据为准,选中一个与下面 RA 对应并由 R4 被动发送的 RS 报文,
而后开展该数据包的详细信息。
答复下列问题:
a. 蕴含 RS 报文的以太网帧的源地址和目标地址的十六进制值是多少?
答:蕴含 RS 报文的以太网帧的源地址和目标地址的十六进制值别离是: Source:00:e0:fc:ca:38:20 Destination:33:33:00:00:00:01
b. 蕴含 RS 报文的 IPv6 数据报源地址和目标地址的十六进制值是多少?
答:蕴含 RS 报文的 IPv6 数据报源地址和目标地址的十六进制值别离是 Source:fe80::2e0:fcff:feca:3820 Destination:ff02::1
c. 给出 ICMPv6 中类型字段的十进制值。
答:133
d. RS 报文中是否蕴含发送者的 IPv6 地址?
答:RS 报文中不蕴含发送者的 IPv6 地址
图 9 RS 报文捕获
(4)实现 DHCPv6 部署
①在 R1 上实现如下配置, 配置后果如图 10 所示。
[R1] dhcp enable
[R1] dhcpv6 pool pool1
[R1-dhcpv6-pool-pool1] address prefix fc00:1000::/64
[R1-dhcpv6-pool-pool1] excluded-address fc00:1000::1
[R1-dhcpv6-pool-pool1] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] dhcpv6 server pool1 #在接口上绑定地址池
[R1-GigabitEthernet0/0/1] quit
图 10 R1 上实现 DHCPv6 部署
②配置 PC1 的以太网卡,开启 DHCPv6 客户端性能,如图 11 所示:
图 11 开启 PC1 的 DHCPv6 客户端性能
阶段性验证:在 PC1 的配置界面上抉择“命令行”选项卡,而后执行 ipconfig 查看网卡信息并展现相应后果,验证 PC1 是否通过 DHCPv6 获取到了正确地址,如图 12 所示。
图 12 PC1 查看网卡信息
(5)联通性测试。
R4 ping PC1:以 PC1 获取的动静地址为 fc00:1000::2 为例,在 R4 上执行如下命令,测试达到 PC1 的连通性,能够发现二者曾经能够失常通信, 如图 13 所示。
<R4> ping ipv6 fc00:1000::2
PING fc00:1000::2 : 56 data bytes, press CTRL_C to break
Request time out
Reply from FC00:1000::2
bytes=56 Sequence=2 hop limit=254 time = 30 ms
Reply from FC00:1000::2
bytes=56 Sequence=3 hop limit=254 time = 30 ms
Reply from FC00:1000::2
bytes=56 Sequence=4 hop limit=254 time = 20 ms
Reply from FC00:1000::2
bytes=56 Sequence=5 hop limit=254 time = 30 ms
--- fc00:1000::2 ping statistics --- 5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 20/27/30 ms
图 13 R4 ping PC1
(6)抓包剖析。
①启动抓包。本试验中,可放弃之前在 R1 的 GE0/0/2 接口上继续抓包,期间各种阶段性测试命令及设施间状态更新均会触发多个数据包的产生和交互。另外,也可在后期阶段性抓包剖析后进行抓包,此处重新启动抓包。
②运行命令。
在 R4 上顺次执行以下命令:ping ipv6 fc00:1000::2;tracert ipv6 fc00:1000::2,别离完
成测试与 fc00:1000::2(以 PC1 获取的动静地址为 fc00:1000::2 为例)的联通性,以及跟踪到 fc00:1000::2 的路由信息。后果如图 14 所示:
图 14 在 R4 中执行命令
备注:在网络日常运维和治理过程中,Tracert 是被宽泛应用的应用程序,该利用应用 ICMPv6 的相干报文来实现其性能。Tracert 能够帮忙网络管理员检测从源节点到目标节点之间所通过的逐跳设施。由图 6 中执行 tracert ipv6 fc00:1000::2 命令后果可见,从 R4 到 PC1 通过了 FC00:14::1,最终达到 FC00:1000::2。当源与目标节点之间存在多跳设施时,Tracert 执行的后果更加直观。因而面对一个简单的网络时,这个工具能够不便地帮忙网络管理员辨认流量的转发门路。以图 7 为例,Tracert 的实现原理及过程如下:
①R1 首先结构第一个发往指标地址 FC00:23::3 的 UDP(UDP 目标端口为非凡的 33434,该
端口不会被具体的利用所应用)报文,这个报文的内容是随机填充的,没有实际意义,然而
在该报文的 IPv6 头部中,R1 将 Hop Limit 字段设置为 1,这意味着报文在收回去之后,只
能传递一跳。R1 可能一次会收回多个雷同的 UDP 报文。
②R2 收到该 UDP 报文后将 Hop Limit 字段值减 1 后发现值已为 0,因而立刻向 R1 发送
ICMPv6 谬误音讯,告知报文的生存工夫截止,这个谬误音讯的源地址为 R2 的接口地址;
R1 收到这个报错音讯后,取得了第一跳设施 R2 的接口地址,而后将该地址打印在回显中;
③接着 R2 以 Hop Limit=2 持续发送 UDP 报文,如此重复;
④直到报文达到目的地 R3,因为 R1 在 Tracert 中所应用的 UDP 端口在 R3 处并未侦听,因
此 R3 回应 ICMPv6 过错报文,告知 R1 目标端口不可达。R1 收到该过错报文后即通晓最初
一跳已达到。
③剖析报文
Ⅰ 剖析 ping 报文
在 ICMPv6 报文中,Echo Request 和 Echo Reply 报文是十分根底且重要的报文,被用于 Ping 应用程序等,当咱们在一个 IPv6 节点上执行 Ping 操作探测到某个目标地址的可达性时,实际上该利用将触发一个 ICMPv6 Echo Request 报文发往目标地址,如果收到了对方回应的 Echo Reply,则认为网络是可达的。当 R4 ping PC1 时(即执行相应的命令 ping ipv6
fc00:1000::2)捕捉到多对 Echo Request 和 Echo Reply 报文,如图 15 所示。
图 15 捕捉 Echo Request 报文
图 16 捕捉 Echo Reply 报文
答复下列问题:
a. 此处别离呈现多少个 ICMPv6 Echo Request 和 Echo Reply 报文?与测试命令显示的后果是否统一?
答:如图 15 所示, 一共有 5 个 ICMPv6 Echo Request 报文 和 5 个 Echo Reply 报文,并且与测试命令显示的后果统一。
b. 查看 Echo Request 报文,ICMPv6 类型和代码号取值为多少?蕴含该报文的 IPv6 数据报源地址和目标地址别离是多少?蕴含该报文的以太网帧源地址和目标地址别离是多少?
答:如图 15 所示, ICMPv6 类型和代码号取值为 128. 蕴含该报文的 IPv6 数据报源地址和目标地址别离是 Source:fc00:14::2e0:fcff:feca:3820, Destination:fc00:1000::2,蕴含该报文的以太网帧源地址和目标地址别离是 Source:00:e0:fc:ca:38:20, Destination:00:e0:fc:1c:7d:1b
c. 查看 Echo Reply 报文,ICMPv6 类型和代码号取值为多少?蕴含该报文的 IPv6 数据报源地址和目标地址别离是多少?蕴含该报文的以太网帧源地址和目标地址别离是多少?
答:如图 16 所示, ICMPv6 类型和代码号取值为 129,蕴含该报文的 IPv6 数据报源地址和目标地址别离是 Source:fc00:1000::2, Destination:fc00:14::2e0:fcff:feca:3820,蕴含该报文的以太网帧源地址和目标地址别离是 Source:00:e0:fc:1c:7d:1b, Destination:00:e0:fc:ca:38:20.
Ⅱ 剖析 Tracert 报文
当 R4 tracert PC1 时(即执行相应的命令 tracert ipv6 fc00:1000::2)捕捉到多个 UDP 和
ICMPv6 报文,如图 17 所示。
图 17 捕捉的 Tracert 报文
图 18 捕捉的 ICMPv6 Time Exceeded 报文
图 19 捕捉的 ICMPv6 Destination Unreachable 报文
以理论捕捉数据为准,答复下列问题:
a. 理论捕捉后果中别离呈现多少个 UDP、ICMPv6 Time Exceeded 和 ICMPv6 Destination Unreachable 报文?与测试命令显示的后果是否统一?
答:如图 17 所示,一共有 6 个 UDP、3 个 ICMPv6 Time Exceeded 和 3 个 ICMPv6 Destination Unreachable 报文,与测试命令显示的后果统一。
b. 查看 UDP 报文,源端口号和目标端口号别离是多少?不同 UDP 报文所采纳的源端口号 是否雷同?不同 UDP 报文所采纳的目标端口号是否雷同?蕴含该报文的 IPv6 数据报源地址和目标地址别离是多少?蕴含该报文的 IPv6 数据报中 Hop Limit 取值别离是多少?
答:如图 18 所示,源端口号是:30037,目标端口号是:33434. 不同 UDP 报文所采纳的目标端口号不同,蕴含该报文的 IPv6 数据报 Source:fc00:14::2e0:fcff:feca:3820,Destination:fc00:1000::2. 蕴含该报文的 IPv6 数据报中 Hop Limit 取值是 1.
c. 查看 ICMPv6 Time Exceeded 报文,ICMPv6 类型和代码号取值为多少?蕴含该报文的 IPv6 数据报源址和目标地址别离是多少?蕴含该报文的以太网帧源地址和目标地址别离是 多少?
答:ICMPv6 类型和代码号取值为 3,蕴含该报文的 IPv6 数据报源址和目标地址别离是 Source:fc00:14::1,Destination:fc00:14::2e0:fcff:feca:3820,蕴含该报文的以太网帧 Source:00:e0:fc:1c:7d:1b,Destination:00:e0:fc:ca:38:20
d. 查看 ICMPv6 Destination Unreachable 报文,ICMPv6 类型和代码号取值为多少?蕴含该 报文的 IPv6 数据报源址和目标地址别离是多少?蕴含该报文的以太网帧源地址和目标地址别离是多少?
答:如图 19 所示,ICMPv6 类型和代码号取值为 1,蕴含该报文的 IPv6 数据报 Source:fc00:1000::2,Destination:fc00:14::2e0:fcff:feca:3820,蕴含该报文的以太网 Source:00:e0:fc:1c:7d:1b,Destination:00:e0:fc:ca:38:20.