1、实验目的

  • 理解 OSPF 邻居关系和 OSPF 邻接关系的含义及差别
  • 观察 OSPF 邻居邻接关系的建立过程
  • 观察 OSPF 链路状态数据库的同步过程

2、实验原理

OSPF 网络中,路由器在发送任何链路状态信息之前,必须先建立起正确的 OSPF 邻居、 邻接关系。

OSPF 路由器使用 Hello 报文来建立邻居关系,具体地,OSPF 路由器会检查所收到的 Hello 报文中的各种参数,如 Router-ID、Area-ID、认证信息、网络掩码、Hello 时间间隔等。 如果这些参数和接收接口上配置的对应参数都——保持一致,则邻居关系就会建立起来,否则就无法建立起邻居关系。

OSPF 路由器的邻居关系建立完成之后,下一步是建立邻接关系。并不是所有的 OSPF 邻居之间都可以建立邻接关系,这要取决于 OSPF 邻居之间的网络类型。例如,在点到点网络上,有效的 OSPF 邻居关系都可以进一步形成邻接关系。而在广播型网络上,会选举 DR 和 BDR,DR 和 BDR 会与所有其他路由器都建立邻接关系,其他路由器都只与 DR 和 BDR 建立邻接关系。

3、实验平台

eNSP 、Wireshark

4、实验内容

4.1 在指定拓扑上完成相应路由器的基本配置

本实验模拟了一个跨国企业网络场景, 国内集团总部的路由器 R1、R2、R3 组成了一个广播型网络,国外分公司 1 的路由器 R4 与国内集团总部核心路由器 R1 组成了一个点到点网络,国外分公司 2 的路由器 R5 与 国内集团总部核心路由器 R1 组成了另一个点到点网络。

按照上述要求搭建如下网络拓扑:

编址如下:

R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int s0/0/1
ip add 10.0.14.1 24
int s0/0/0
ip add 10.0.15.1 24
int g0/0/0
ip add 10.0.123.1 24
q R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.123.2 24
q R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int g0/0/0
ip add 10.0.123.3 24
q R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int s0/0/1
ip add 10.0.14.4 24
q R5:
sys
sysname R5
int loop 0
ip add 10.0.5.5 32
int s0/0/0
ip add 10.0.15.5 24
q

4.2 配置OSPF路由协议

在每台路由器上进行OSPF协议的配置,其中R1、R2、R3之间的链路属于区域0,R1和R4之间的链路属于区域1,R1和R5之间的链路属于区域2。

[R1] ospf router-id 10.0.1.1 

[R1-ospf-1]area 0 

[R1-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255 

[R1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0 

[R1-ospf-1-area-0.0.0.0]area 1 

[R1-ospf-1-area-0.0.0.1]network 10.0.14.0 0.0.0.255

[R1-ospf-1-area-0.0.0.1]area 2 

[R1-ospf-1-area-0.0.0.2]network 10.0.15.0 0.0.0.255

[R2]ospf router-id 10.0.2.2 [R2-ospf-1]area 0 

[R2-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255 

[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0 

[R3]- [R5] 类似[R2]

配置完成后,

  • 在R1上查看OSPF邻居建立情况

  • 邻居状态详细信息

可以看出,R1,R2,R3的广播网络完成了DR和BDR的选举,R3为DR,R2为BDR;R1和R4,R1和R5没有选举DR和BDR是因为他们是点到点网络

  • DR基于接口进行选举
  • DR可以减少链路中的邻接关系,BDR是DR的备份,链路中的所有路由器只和DR&BDR建立邻接关系
  • DR是基于端口的DR优先级进行选举(0-255)
  • 优先级值越高越优先,当优先级值相同时比较Router ID,Router ID越大越优先
  • 非抢占式选举

在 R1 上查看广播型网络的接口 GE 0/0/0 和点到点网络的接口 Serial 0/0/1 的详细情况,得到广播网络接口和点到点网络接口默认的 hello 时间间隔,失效时间大小。

display ospf interface GigabiEthernet0/0/0

display ospf interface Serial0/0/1

4.3 观察OSPF邻居邻接关系的建立过程

观察在广播网络上 OSPF 邻居邻接关系的建立过程。为了在 R1 上清晰地观察到广 播网络上 OSPF 邻居邻接关系的建立过程,先关闭 R1 上 Serial 0/0/1 和 Serial 0/0/0 接 口。

[R1]interface Serial 0/0/1
[R1-Serial0/0/1]shutdown
[R1-Serial0/0/1]interface Serial 0/0/0
[R1-Serial0/0/0]shutdown
  • 在 R1 上查看 OSPF 邻居状态
display ospf peer brief

由上图可见关闭了和R1相连的 R4、R5的Serial0/0/1和Serial0/0/0接口后,R1与他们的邻接状态消失,只与R2和R3保持邻接状态。

在R1上重启OSPF进程,通过Debugging调试观察R1与R2之间的OSPF邻接关系的建立过程。

<R1>debugging ospf packet
<R1>reset ospf process

![image-20211029194412142](C:\Users\Chenxu Gong\AppData\Roaming\Typora\typora-user-images\image-20211029194412142.png)

R1 和 R2 的邻居关系由 full 状态转到 down 状态,尽管 hello 报文通信后,又变为 init 状态,继而通过 2-way、exchange、loading 等状态,再次进入到 full 状态。

我们可以通过下图清晰地观察邻接关系的建立过程。

OSPF 路由器之间的邻居关系并不等于邻接关系。邻居关系建立后,还需完成链路状态信息的交换,然后才能建立起邻接关系

在广播网络中,DRothers 之间不需要交换 LSA(Link State Advertisement),DRothers 是通过 DR/BDR 来获取整个广播网络的链路状态信息的,所以 DRothers 之间不需要建立邻接关系,只需要建立邻居关系即可

在 R1、R2、R3、SW 组成的广播网络中, R3 是 DR, R2 是 BDR,只有 R1 是 DRothers, 所以不便于观察 DRothers 之间的邻居关系。现在,将 R1 的 GE 0/0/0 和 R2 的 GE 0/0/0 接口优先级的值改为 0,放弃 DR 的选举,使它们都成为 DRothers,以便观察它们之间的 OSPF 邻居关系。

[R1]interface GigabiEthernet0/0/0
[R1- GigabiEthernet0/0/0]ospf dr-priority 0
[R2]interface GigabiEthernet0/0/0
[R2- GigabiEthernet0/0/0]ospf dr-priority 0

重启 R1 和 R2 上的 OSPF 进程后,先在 DR 路由器 R3 上查看 OSPF 的邻居建立情况。

<R3>display ospf peer

R1 与 DR 路由器 R3 建立的是邻接关系,状态为 full。在路由器R1上查看OSPF邻居关系建立情况。

<R1>display ospf peer

R1与DR路由器R3建立的是邻接关系,状态为full,而与DRothers路由器R2只建立了邻居关系,状态为2-way。

4.4 观察点到点网络中OSPF邻居关系建立情况

开启R1上的两个串口Serial0/0/1和Serial0/0/0,然后关闭广播接口GE0/0/0。关闭广播接口的目的是突出所要关注的实验现象,排除干扰因素。

[R1]interface Serial 0/0/1 

[R1-Serial0/0/1]undo shutdown 

[R1-Serial0/0/1]interface Serial 0/0/0 

[R1-Serial0/0/0] undo shutdown 

[R1]interface GigabiEthernet0/0/0 

[R1- GigabiEthernet0/0/0]shutdown

在R1上查看OSPF邻居建立情况。

<R1>display ospf peer brief

R1 与 R4 和 R5 已经分别建立了邻接关系。

在路由器R1上重启OSPF进程,通过Debugging调试观察R1与R4之间的OSPF邻居邻接关系的建立过程。

<R1>debugging ospf packet

<R1>reset ospf process

R1和R4的邻居关系由full状态转到down状态,经过Hello报文通信后,又变为init状态,继而通过2-way、exchange、loading等状态,再次进入到full状态。

即:点到点网络里面,能够建立OSPF邻居关系的路由器一定会继续建立邻接关系

4.5观察OSPF链路状态数据库的同步过程

下面通过查看报文的方式来简单观察一下 OSPF 邻接关系建立过程中链路状态数据 库 LSDB 是如何同步的,这里仅以点到点网络为例进行实验。 在 R1 的 Serial 0/0/1 接口上捕获并查看报文,重启 R1 上的 OSPF 进程。

debugging ospf packet 

reset ospf process

在第一次交互报文时可以看到I,M,MS都为1.R1和R4都宣称自己为主路由器。

5.思考

1.在 OSPF 广播型网络中的 DR 与 BDR 之间需要建立 OSPF 邻接关系吗?为什么?

需要。只有建立邻接关系的路由器之间才能够同步LSDB。BDR是备份的DR,必须要和DR之间同步。如果DR故障,BDR必须要在其失效时接替他的工作,因此建立邻接关系是必要的,

2.按照 OSPF 的网络设计要求,不同普通区域 Area 之间的通信必须经骨干区域 Area 0 中转才能实现,这种要求的出发点是什么?

OSPF最短路径优先时针对区域内的,区域间采用d-v算法,可能会有环路。因此让哦偶同区域经过骨干区域,可以有效地防止环路的出现。

基于 OSPF 路由的邻居邻接关系发现实践的更多相关文章

  1. QCon技术干货:个推基于Docker和Kubernetes的微服务实践

    2016年伊始,Docker无比兴盛,如今Kubernetes万人瞩目.在这个无比需要创新与速度的时代,由容器.微服务.DevOps构成的云原生席卷整个IT界.在近期举办的QCon全球软件开发大会上, ...

  2. 基于 Spring Cloud 的微服务架构实践指南(下)

    show me the code and talk to me,做的出来更要说的明白 本文源码,请点击learnSpringCloud 我是布尔bl,你的支持是我分享的动力! 一.引入 上回 基于 S ...

  3. 基于Armitage的MSF自动化集成攻击实践

    基于Armitage的MSF自动化集成攻击实践 目录 0x01 实践环境 0x02 预备知识 0x03 Armitage基础配置 0x04 Nmap:Armitage下信息搜集与漏洞扫描 0x05 A ...

  4. 【转帖】基于Zookeeper的服务注册与发现

    http://www.techweb.com.cn/network/hardware/2015-12-25/2246973.shtml 背景 大多数系统都是从一个单一系统开始起步的,随着公司业务的快速 ...

  5. 《数据分析实战:基于EXCEL和SPSS系列工具的实践》一1.4 数据分析的流程

    本节书摘来华章计算机<数据分析实战:基于EXCEL和SPSS系列工具的实践>一书中的第1章 ,第1.4节,纪贺元 著 更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  6. OSPF路由汇总

    转载自红茶三杯博客:http://blog.sina.com.cn/s/blog_5ec353710102vtfy.html 1. 关于路由汇总 路由汇总,又被称为路由聚合(Route Aggrega ...

  7. 字节跳动流式数据集成基于Flink Checkpoint两阶段提交的实践和优化

    背景 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务.其中一个典型场景是 Kafka/ByteM ...

  8. 基于 Apache Hudi 极致查询优化的探索实践

    摘要:本文主要介绍 Presto 如何更好的利用 Hudi 的数据布局.索引信息来加速点查性能. 本文分享自华为云社区<华为云基于 Apache Hudi 极致查询优化的探索实践!>,作者 ...

  9. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

随机推荐

  1. rabbitmqctl 命令行管理工具

    1. 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码. (1) 新增一个用户 rabbitmqctl add_user Username Password (2) 删除一个用户 ...

  2. 通用脱敏工具类和判断URL

    通用脱敏工具类 public class DesensitizationUtil { private static final int SIZE = 6; private static final S ...

  3. 踩坑系列《十一》完美解决阿里云vod视频点播无法播放音频和视频点播控制台里的媒资库里面的视频无法播放

    刚开始项目部署的时候,音频还是正常播放,后面直接报了 获取m3u8文件失败(manifestLoadError) 的错误,原因是 我的域名 xxx.com 这个域名没有解析到点播提供的CNAME上,所 ...

  4. Codeforces Round #747 (Div. 2)

    比赛地址 A(水题) 题目链接 题目: 给出指定\(n\),求解出一段区间\([l,r]\)使得\(\sum\limits_{i=l}^ri=n\) 解析: 从点0,1两点作为起点分别向左右延伸长度, ...

  5. Linux文件系统与inode、Block笔记

    Linux文件系统与inode.Block笔记 在Linux下一切都是文件,无论是设备还是接口,亦或是网卡等均被抽象成了文件,并且有相关的内核代码进行调度.然而,在一切都是文件的前提下,最需要进行探讨 ...

  6. Java基础之(六):变量、运算符与JavaDoc

    变量.常量 一.变量的命名规范 首字母只能以字母(A-Z或者a-z)或者美元符($)或者下划线(_)开头,不能以数字开头,首字母之后只能跟字母(AZ或者az)或者数字,不能跟美元符或者下划线 源码 p ...

  7. 洛谷2149 Elaxia的路线(dp+最短路)

    QwQ好久没更新博客了,颓废了好久啊,来补一点东西 题目大意 给定两个点对,求两对点间最短路的最长公共路径. 其中\(n,m\le 10^5\) 比较简单吧 就是跑四遍最短路,然后把最短路上的边拿出来 ...

  8. 使用docker部署nginx并配置https

    我只有一台服务器,但我想在这台服务器上运行多个项目,怎么办? 总不能靠加端口区分吧? 百度和Google是个好东西,于是我找到了答案,使用nginx. 通过nginx,我可以给我的一台服务器配置两个域 ...

  9. Java:包装类小记

    Java:包装类 对 Java 中的 包装类 这个概念,做一个微不足道的小小小小记 基本数据&包装类 四类八种基本数据类型: 数据类型 关键字 内存占用 取值范围 字节型 byte 1个字节 ...

  10. Intellij IDEA 2021.2.3 最新版免费激活教程(可激活至 2099 年,亲测有效)

    ​ 申明,本教程 Intellij IDEA 最新版破解.激活码均收集与网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除.如条件允许,建议大家购买正版. 本教程更新于:2021 年 10 月 ...