数据通信网络之 OSPFv3 基础
文章及资源归档至公众号【AIShareLab】,回复 通信系统与网络 可获取。
一、目的
掌握路由器的 IPv6 基础配置。
掌握 OSPFv3(单区域)的基础配置。
二、拓扑
如图 1 所示,三台路由器 R1、R2 和 R3 分别通过相应物理接口进行连接,其中,R1 及 R3 各自下联一个网段,简单起见,此处只体现了这些网段中的两台计算机 PC1 和 PC2,PC1 与 PC2 分别使用 R1 及 R3 作为自己的默认网关。其中,路由器 R1、R2 和 R3 推荐使用 AR2220 及以上设备。
图 1 OSPFv3 基础实验拓扑图
三、需求
在 R1、R2 及 R3 上完成 OSPFv3 配置(三台路由器都属于 Area 0),使得 PC1 与 PC2 所在网段能够相互通信。
四、步骤
(1)完成 R1、R2 及 R3 的基础配置①在 R1 上完成如下配置:
图 2 R1 配置过程
② 在 R2 上完成如下配置:
图 3 R2 配置过程
③ 在 R3 上完成如下配置:
图 4 R3 配置过程
(2)在 R1、R2 及 R3 上完成 OSPFv3 配置①启动抓包:在 R1 的 GE0/0/0 接口上单击鼠标右键,按图 2 所示开始抓包,以试图捕获 R1 的 GE0/0/0 接口上的入向与出向数据包。
②在 R1 上完成如下配置:[R1] ospfv3 1 #系统视图下使用的命令,其作用是创建 OSPFv3 进程,并进入 OSPFv3 视图,其中,1 是进程标识符,进程标识符仅具有本地意义。[R1-ospfv3-1] router-id 1.1.1.1 #OSPFv3 视图下使用的命令,其作用是为运行的 OSPFv3 协议配置一个唯一的、以 IPv4 地址格式表示的路由器标识符,这里,1.1.1.1 是 IPv4 地址格式表示的路由器标识符。[R1-ospfv3-1] quit[R1] interface GigabitEthernet 0/0/0[R1-GigabitEthernet0/0/0] ospfv3 1 area 0 #接口视图下使用的命令,其作用是在指定接口(这里是接口 GigabitEthernet 0/0/0)启动 OSPFv3 路由协议,并指定接口所属的区域,这里,1 是进程标识符,在创建 OSPFv3 进程时指定,0 是区域标识符,表示指定接口属于区域 0。注意,接口只有在启动 IPv6 功能后,才能使用该命令。[R1-GigabitEthernet0/0/0] quit[R1] interface GigabitEthernet 0/0/1[R1-GigabitEthernet0/0/1] ospfv3 1 area 0
图 5 R1 配置过程
③在 R2 上完成如下配置:
图 6 R2 配置过程
④ 在 R3 上完成如下配置:
完成上述配置后,三台路由器即开始启动 OSPFv3 协议报文交互,并进行路由计算。
图 6 R3 配置过程
阶段性验证:⑴在 R1 上查看 OSPFv3 邻居关系,具体命令格式为 display ospfv3 peer,验证 R1 是否已与 R2 建立邻接关系。备注:运行结果示例如下:<R1> display ospfv3 peerOSPFv3 Process (1)OSPFv3 Area (0.0.0.0)Neighbor ID Pri State Dead Time Interface Instance ID2.2.2.2 1 Full/Backup 00:00:38 GE0/0/0 0 以上输出的内容是 R1 的 OSPFv3 邻居表,从表中可以看出 R1 发现了邻居 R2,并且当前该邻居的状态为“Full”,这意味着两者以建立全毗邻的邻接关系。
图 7 R1 OSPFv3 邻居关系验证可知, R1 已与 R2 建立邻接关系。⑶ 在 R2 上查看 OSPFv3 邻居关系,具体命令格式为 display ospfv3 peer,验证 R2 是否已与 R1 和 R3 建立邻接关系。
图 8 R2 已与 R1 和 R3 建立邻接关系
⑷ 在 R3 上查看 OSPFv3 邻居关系,具体命令格式为 display ospfv3 peer,验证 R3 是否已与 R2 建立邻接关系。
图 9 R2 已与 R3 建立邻接关系
(4)在 R1 上查看路由表,具体命令格式为 display ipv6 routing-table,验证 R1 是否已通过 OSPFv3 学习到了去往远端网络的路由。
图 10 R1 已通过 OSPFv3 学习到了去往远端网络的路由由上图可知, R1 通过 OSPFv3 学习到了去往 FC00:23::/64 及 FC00:2::/64 的路由, 这两条路由的“Protocol”字段都为“OSPFv3”,这表示路由是通过 OSPFv3 获知。
⑸在 R2 上查看路由表,具体命令格式为 display ipv6 routing-table,验证 R2 是否已通过 OSPFv3 学习到了去往远端网络的路由并标明相应的表项, R2 已通过 OSPFv3 学习到了去往远端网络的路由。
图 11 R2 路由表⑹在 R3 上查看路由表,具体命令格式为 display ipv6 routing-table,验证 R3 是否已通过 OSPFv3 学习到了去往远端网络的路由并标明相应的表项,如图 12 所示,R2 已通过 OSPFv3 学习到了去往远端网络的路由。
图 12 R3 路由表
(3)观察 OSPF 报文交互过程①捕获数据包,查看协议栈。在 Wireshark 界面中,查看前面开启抓包后所捕获的信息,如图 3 所示,R1、R2 和 R3 配置完成后网络中产生了多个 OSPF 报文交互。
图 13 R1、R2 和 R3 接口 OSPFv3 配置完成后,R1 GE 0/0/0 所捕获的数据包以实际捕获数据为准,回答下列问题:结合捕获信息,说明 OSPF 数据包自下而上的协议栈及封装结构。
OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在单一自治系统(AS)中的路由器之间交换路由信息。OSPF 数据包在传输过程中会经过自下而上的协议栈,并在每一层添加特定的头部和尾部,以实现数据的封装和解封装。OSPF 数据包自下而上的协议栈及封装结构如下:数据链路层(Data Link Layer):OSPF 数据包在数据链路层使用的协议通常是以太网(Ethernet)。在这一层,OSPF 数据包会添加以太网帧头和帧尾。以太网帧头包括源地址和目标地址等信息,帧尾包括校验和等信息。网络层(Network Layer):OSPF 数据包在网络层使用的协议为 IP(Internet Protocol)。在这一层,OSPF 数据包会添加 IP 数据包头和尾。IP 数据包头包括源 IP 地址和目标 IP 地址等信息,IP 数据包尾包括校验和等信息。OSPF 层:OSPF 数据包在 OSPF 层使用 OSPF 协议。在这一层,OSPF 数据包会添加 OSPF 报文头和尾。OSPF 报文头包括版本号、报文类型、区域 ID 等信息,报文尾包括校验和等信息。OSPF 报文类型包括:Hello 报文、数据库描述报文、链路状态请求报文和链路状态更新报文。应用层(Application Layer):OSPF 数据包在应用层没有特定的协议。但是,OSPF 数据包中包含 OSPF 路由信息,这些信息可以被路由器的路由表使用,以决定最佳的路由路径。
综上所述,OSPF 数据包自下而上的协议栈及封装结构包括以太网帧头和帧尾、IP 数据包头和尾、OSPF 报文头和尾等。在每一层,都会添加相应的协议头和尾,以实现数据的封装和解封装。
备注:OSPF 是 IETF 组织开发的一个基于链路状态的内部网关协议。目前,针对 IPv4 使用的是 OSPF Version 2 (OSPFv2),针对 IPv6 协议使用 OSPF Version 3 (OSPFv3)。OSPFv3 在 OSPFv2 基础上进行了增强,是一个独立的路由协议。OSPFv3 具有如下特点:在区域划分、状态机、泛洪机制、支持的网络类型(Broadcast、NBMA、P2P 和 P2MP)、报文类型(Hello 报文、DD 报文、LSR 报文、LSU 报文和 LSAck 报文)和路由计算等方面的工作原理与 OSPFv2 保持一致;把自治系统划分成逻辑意义上的一个或多个区域,通过 LSA(Link StateAdvertisement)的形式发布路由;依靠区域内各设备间交互 OSPFv3 报文来达到路由信息的统一;OSPFv3 报文封装在 IPv6 数据报内,可以采用单播和组播的形式发送;OSPFv3 基于链路运行,设备只要在同一链路,则可以建立邻居关系;链路支持多实例,具体的,一个 OSPFv3 物理接口可以与多个实例绑定,并用不同的实例标识(Instance ID 区分),即 OSPFv3 的单个链路支持运行多个 OSPFv3 实例,运行在同一条物理链路上的多个 OSPFv3 实例,分别和链路对端设备建立邻居及发送报文,且互不干扰;OSPFv3 报文和 LSA 报文中去掉了 IP 地址的意义,且重构了报文格式和 LSA 格式;OSPFv3 通过 Router ID 标识网络设备,Router ID 是一个 OSPFv3 设备在自治系统中的唯一标识,其长度为 32 位,作为本地标识符,与 IPv6 地址无关,用点分十进制表示法表示;OSPFv3 使用链路本地地址(FE80::/10)作为发送报文的源地址和路由的下一跳。OSPFv3 主要包含五种报文类型,相应的名称和作用如表 1 所示。
表 1 OSPFv3 报文类型
②分析单一数据包格式。以实际捕获数据为准,回答下列问题:a.在实际捕获结果中出现的 OSPF 报文分别是什么,共有多少类型?与表 1 所列的 OSPF 报文类型是否一致?答: 在实际捕获结果中出现的 OSPF 报文分别是 Hello 报文、DD 报文、LSR 报文、LSU 报文、LSA 报文,共有 5 种类型,与表 1 所列的 OSPF 报文类型一致.b.查看各 OSPF 报文,包含不同 OSPF 报文的 IPv6 数据报中,Next Header 取值是多少?不同报文中该字段是否相同?答:如图 14 所示, 包含不同 OSPF 报文的 IPv6 数据报中,Next Header 取值 OSPF IGP (89), 不同报文中该字段相同.
图 14 OSPF 报文
c.选中一个 Hello Packet 报文并查看,包含该报文的 IPv6 数据报源地址和目的地址分别是多少?包含该报文的以太网帧源地址和目的地址分别是多少?答: 如图 15 所示,选中一个 Hello Packet 报文并查看,包含该报文的 IPv6 数据报源地址 fe80: :2e0:fcff:fec7 :6622 和目的地址 ff02: :5, 包含该报文的以太网帧源地址 HuaweiTe_ c7:66:22 (00:e0:fc:c7:66:22) 和目的地址 IPv6mcast 05 (33:33: 00: 00:00:05).
图 15 Hello Packet 报文
d. 选中一个 LS Acknowledge 报文并查看,包含该报文的 IPv6 数据报源地址和目的地址分别是多少?包含该报文的以太网帧源地址和目的地址分别是多少?报文中是否包含发送者的 IPv6 地址?答: 如图 16,选中一个 LS Acknowledge 报文并查看,包含该报文的 IPv6 数据报源地址 fe80: :2e0: fcff:fec7:6622 和目的地址 ff02::5, 包含该报文的以太网帧源地址 HuaweiTe_ c7:66:22 (00:e0:fc:c7:66:22) 和目的地址 IPv6mcast_ 05 (33: 33:00: 00:00:05), 报文中包含发送者的 IPv6 地址.
图 16 LS Acknowledge 报文
(4)在 PC1 及 PC2 上完成配置①静态配置 PC1 的 IPv6 地址、前缀长度和网关信息,具体的参数如图 17 所示。
图 16 LS Acknowledge 报文
(4)在 PC1 及 PC2 上完成配置①静态配置 PC1 的 IPv6 地址、前缀长度和网关信息,具体的参数如图 17 所示。
图 17 PC1 的 IPv6 静态地址配置②静态配置 PC2 的 IPv6 地址、前缀长度和网关信息,具体的参数如图 18 所示。
图 18 PC2 的 IPv6 静态地址配置
(5)联通性测试在 PC1 上 ping PC2,具体命令格式为 ping PC2 的 IPv6 地址 -6,验证 PC1 是否可与 PC2 成功通信。
图 19 PC1 可与 PC2 成功通信
如图 19,PC1 可与 PC2 成功通信.
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/7304c3e45e52f6d195ba85c45】。未经作者许可,禁止转载。
评论