IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络通信安全部分笔记——OSPF理论及实验 -> 正文阅读

[网络协议]网络通信安全部分笔记——OSPF理论及实验

静态路由的缺点:手动添加、比较繁琐,而且没有办法更新路由信息(删除增加路由,旧的路由信息不会主动删除,新的路由信息还需要手动添加),不方便排错。(1~3台设备才会用到静态路由)

动态路由协议

可以自动更新学习路由信息——其实有多个协议OSPF、RIP、EIGRP、IS-IS

动态路由的分类:

①距离矢量路由协议:RIP\EIGRP(思科私有,15年之后才变为共有)

类似于一个方向标路牌,指明方向和距离(只有一条路)

②链路状态路由协议:? ?OSPF\IS-IS

类似于地图中有很多路到达目的地,我们可以选择其中最快最近的路径(有多条路)

OSPF——开放式最短路径优先协议

是一个公有协议,属于链路状态路由协议,是以组播的方式发送。

OSPF组播地址:224.0.0.5? ? ? 224.0.0.6

链路:路由器接口

状态:跟邻居设备之间的关系

优点:保证百分百无环路、收敛快、扩展性、支持认证

大型企业网中:由于每一台路由器都需要学习整个拓扑的路由信息,导致负担过重,通过多区域划分来解决负载过重的问题。

多区域划分:

①骨干区域? ?0(单区域时,必须有骨干区)

②非骨干区域

骨干区域一般都和非骨干区域相连

OSPF状态机制

OSPF中有五个报文

①HELLO报文(包):用于邻居的发现、建立以及维护

思科 HELLO报文时间——10s(每隔10s会发出一个新的报文,华为一般是30s)

? ? ? ? dead时间——40s(每10s发送一次HELLO报文,如果发送四次了都没有回复,就死掉了)

②DBD:记录数据库摘要信息

③LSR:链路状态请求报文

④LSU:链路状态更新报文

⑤LSack:链路状态确认

首先通过HELLO报文去发现并建立邻居关系,当所有的邻居关系都建立完之后,会把这些关系存到链路状态数据库当中,存进来之后,如果其中某一台路由信息断了,或者加了新的信息,这个时候路由器就会发送链路状态请求报文,请求新的邻居或者某一个邻居关系,看看是否断开或者有新加入的,另外一台路由器就会回复一个链路状态更新报文,在每一步的过程中都会有ack报文确认。

状态:

①Down?本地一旦发出hello包,进入下一个状态

②ini初始?本地收到的hello包中若存在本地RID,进入下一个状态

什么是RID呢?

RID:router ID——就是路由器的ID,是用来唯一标识某台OSPF路由器,在路由器的id在网络当中是唯一的,不能冲突(一般建议使用本台设备的IP作为RID)

RID的选举规则:

1.手工指定RID(优先级最高)

2.若没有手工指定RID,则优先使用回环口IP地址

3.没有手工指定RID,也没有创建回环口的时候,选择双up物理接口中最大的为RID

手工指定>回环口>物理接口大IP

③2way双向通信 邻居关系建立的标志

④Exstart预启动

⑤Exchange准交换

⑥loading加载

⑦Full转发 邻接关系建立的标志 到达full状态表示OSPF完全写成功

OSPF三张表

邻居表:启用OSPF之后,会加进组播地址224.0.0.5,并且会往组播地址里面发送hello包,处于这个组播中的其他OSPF路由器会接收到来自本台设备发送的hello包,将这个hello包里的RID加到自己的邻居表里面

查看邻居表命令:

cisco:show ip ospf neighbor(一般都是在特权模式下查看,想在配置模式下查看前加个do)

huawei:display ospf peer brief

(display ospf brief——查看OSPF摘要信息)

拓扑表(链路状态数据库LSDB):

包含了收到所有的链路状态通告,OSPF在发送路由更新时,发送的就是链路状态数据库

查看拓扑表命令:

cisco:show ip ospf database

huawei:display ospf (进程号)lsdb

路由表:

通过链路状态数据库去运行SPF算法得到最优路径(SPF算法——树形结构),然后将最优路径添加到自己的路由表中。

查看路由表命令:

cisco:show ip ospf route

huawei:display ip routing-table protocol ospf

SPF算法

OSPF的选路标准,以自己为中心,构建一个最短的路径树

OSPF的选路标准:

1.OSPF的链路代价计算:从源到目的路径上,所有的路由器出站接口开销的总和

2.OSPF接口开销的计算:cost=10^8/接口带宽(单位是BW)

DR和BDR的选举机制

DR:指定路由器

BDR:备份指定路由器

DRTHOR:其他路由

DR和BDR的信息是相通的,都会加入一个组播地址224.0.0.6。只有在广播多路的访问的环境下才有DR和BDR的概念。(在串行链路中是没有DR和BDR选举机制的)

先选举BDR,然后BDR会自动升级为DR,再选举一台BDR。DR和BDR的选举必须是在同一个网段。(类比与太子上位成皇上,立新的太子,太子和皇上的选举必须是在同一个国家)

DR的选举:非抢占的(太子得等皇上死了之后才能上位)
1:端口优先级。(优先级越大越优先。串行链路不参与选举

2:如果有回环口,选择回环口最大的IP地址的路由器作为本网的DR。

3:如果没有回环口,会选择物理端口最大的IP的路由器作为本网的DR.

?优先级>回环口>RID

OSPF基本配置

新建拓扑(ensp华为模拟器和CPT)

ensp华为模拟器

先将接口ip全部配置好

?[Huawei]ospf 接进程号XXX?//启用ospf进程号为XXX——如图,进程号范围为1——65535

?我们先来配置R1

?[Huawei]ospf 110 ?//启用ospf,进程号为110

?

?需要将信息通告到某一个区域,首先需要进入那个区域

[Huawei-ospf-110]area 0 ? //进入骨干区域(0表示骨干区域)

[Huawei-ospf-110-area-0.0.0.0]network 12.12.12.0 0.0.0.255 ?//通告直连路由的路由信息(注意,是直连网段)? ? ?network后接直连的网段? ? 以及其网段对应的反掩码,所谓反掩码就是子网掩码取反得到的,简单来说就是转换成二进制之后0变成1,1变成0.

接着再来配置R2

注意这里的进程号是可以选择和R1同一个进程号的,没有说进程号一定要唯一匹配?

R2有两个直连网段,要注意两个直连网段都要通告

?R3的配置同理R1,不再赘述

配置完成之后实现R1和R3的通信

[Huawei]ospf 110 router-id 1.1.1.1 ?//手工指定RID

<Huawei>reset ospf process ?//清除ospf进程 (注意这里是在用户模式下的命令)

思科CPT

新建拓扑

首先第一步还是去配置各个端口的ip地址,注意再注意,配置各个端口ip地址的时候顺便把no shutdown打开端口,?思科跟华为不同,默认端口都是关闭的。

配置与华为有些许差别。


Router(config)#router ospf 110——启用ospf,进程号为110
Router(config-router)#network 12.12.12.0 0.0.0.255 area 0 ——通告直连路由的路由信息,进入骨干区0

同理配置R1,R2

?查看R1的拓扑表,观察到R1的RID为23.23.23.2,在同一台路由器R1上,R1左边的接口ip为12.12.12.2,由于23.23.23.2更大,所以作为R1的RID。这里注意,RID的选举是在同一台设备上进行比较的,而不是在一条链路中比较,R1的RID是通过左右两个端口的IP地址比较得到的,R0和R2都只有一个端口,那么那个端口的IP地址就是他们的RID。而DR是在链路中比较的,例如这个拓扑,R1的右端是23.23.23.2,R2是23.23.23.3,所以这条链路当中,就选择23.23.23.3作为DR,另外一条链路一个是12.12.12.1,还有一个是12.12.12.2,选择12.12.12.2作为DR,图中可能因为小bug导致显示12.12.12.1为DR

Router#sh ip ospf database——查看拓扑表

Router#show ip ospf neighbor——查看邻居表

我们想更改DR可以选择改变优先级或者手工指定rid(是先比较优先级再比较rid的)

企图手工指定rid,提示需要先清空OSPF进程
Router#clear ip ospf process ? //清除OSPF进程

Router(config)#router ospf 110

Router(config-router)#router-id 1.1.1.1 ?//手工指定rid? (要先进入进程号)

DR选举是非抢占的,当DR没有消失的时候,尽管你更改了rid,依旧没有用,这就是清除OSPF进程的作用,可以理解为重新选举DR,这个时候更改了的rid才能够派上用场。

OSPF实验

依照拓扑图新建拓扑

华为(ensp)?

R3和R4之间像闪电一样的线表示串行线。本次实验不要关闭日志,后面做ospf需要看日志提示。

用Serial线连接Serial口,Serial表示串行链路?

交换机暂时还没有讲到,不需要做配置,连上去就好

配置R1:

配置R2:

? ? ? ? ? ? ? ? 另一个接口作为PC1的网关

? ? ? ? ? ? ? ? ??

配置R3:

? ? ? ? ? ? ? ??

配置R4:?

另一个接口作为PC2的网关

?

?R1:

R2:

?R3:

?R4:

?配置R1:

?注意R1只需要通告一次,R2和R3都需要通告两次,配置略。

实验需求:在R4上使用接口级命令的方式启用OSPF

?[Huawei-Ethernet0/0/0]ospf enable 110 area 0——接口级命令的方式启用OSPF

注意了,这里是先进入接口,然后再启用OSPF,常规的router ospf启用方法是,选择进程号——area 0进入骨干区——network写直连网段信息

为什么用接口级命令的方式启用OSPF,不用通告直连网段的信息呢?

因为在接口上他会直接把接口上的ip直接通告进去

如果是思科的设备,这个时候就已经启用成功了,PC1已经可以实现和PC2的通信。但是华为设备不行。

还需要创建进程——配置骨干区域,相当于进入端口启用OSPF起到了,省略了通告直连网段信息的步骤,但前两步还是不能省略。?

查看邻居表:

?观察到R1的RID为192.168.123.1,不应该是回环口优先,应该是1.1.1.1才对嘛?因为我们回环口没有通告进ospf中。同时下面的Neighbor id对应的应该是2.2.2.2和3.3.3.3,其实就是出了bug

通告回环口,同理去通告R2,R3,R4的回环口。?

通告完之后要reset ospf,这里提到一下undo?ospf?110?和reset?ospf?process的区别问题

undo就是把这个ospf删掉,reset就是清除进程,原来在ospf区域当中选举出了DR和BDR,reset就是把选举环节中间的缓存清除,恢复成一开始刚配置OSPF的一个状态,然后重新选举DR和BDR。

?结果我们发现最后RID还是192.168.123.1,这边借用一下大佬的回答

?查看拓扑表:

会发现在同一区域中的设备,拓扑表基本都差不多,只发现age值不一样,因为不同设备启用ospf的时间不一样,先启用的age值就会更大。

查看路由表:

后接protocol ospf表示限制只看ospf的路由表,也可以不加。

直接display ospf brief

在串行链路中,不参与DR和BDR的选举,只有在广播多路访问中才会出现DR和BDR的选举。

查看邻居表,链路状态数据库等等都可以,略。

display ospf brief

观察到R3是DR。?

观察到R2是DROther。?

观察到R1是BDR。?

这里依旧出现了一个小bug,如果优先级相等,而且没有回环口的情况下DR——BDR——DOther是按RID大小往下排,所以这里的BDR应该是R2才对。但没关系,ensp的bug就是很多,隔一段时间重新display一下路由器都能发现有些配置变了。

想让R2成为DR,两种办法——更改优先级和指定RID。我们先来尝试更改优先级

?[Huawei-Ethernet0/0/0]ospf dr-priority 优先级设置——更改优先级

现在R2成为DR,我们还想让R3成为BDR。

?

?

如图,再把R3的优先级改成50,50也比本来的10来的大,现在正常情况下,DR是R2,BDR是R3。

我们发现DR还是R3,因为之前提到的,DR的选举是非抢占的,所以必须要先把前面的数据清零,重新选举。

reset ospf process——注意是在用户模式下的命令。

还有一个注意点,我们修改了R2和R3的优先级,需要分别在R2和R3 reset。

一致,自己去看,略。

配置R2:

提示显示,你需要restart ospf进程才可以,就是之前提到的reset

?[Huawei]ospf 110 router-id 1.1.1.1 ?//手工指定RID

?<Huawei>reset ospf process

?修改成功。R3同理。

新增路由器,配置ip地址,再通告直连网段。小细节,R5和R1,R6和R4都要通告,不要仅通告R5和R6。

测试联通成功。

这项实验目的主要就是让你感受动态路由比静态路由方便的地方。?


思科(EVE)

?

?

?同理配置其他路由器

?

配置R1,R2,R3:

Router(config)#router ospf 110——启用ospf,进程号为110
Router(config-router)#network 12.12.12.0 0.0.0.255 area 0 ——通告直连路由的路由信息,进入骨干区0

对比华为——三步走

?R4使用接口级命令启用OSPF:

对比一下华为的,[Huawei-Ethernet0/0/0]ospf enable 110 area 0

查看路由表:

show ip route ——查看路由表

show ip route ospf(show ip ospf route也可以)——查看只有ospf的路由表?

C表示直连,O表示OSPF。

查看邻居表:

show ip ospf neighbor——查看邻居表?

思科邻居表上可以查看到DR.BDR.DROTHER的信息。

我们查看一下R3的邻居表

Pri表示优先级,ospf为1,串行链路为0,0表示不参与DR和BDR的选举。

查看拓扑表:

show ip ospf database——查看拓扑表?

刚刚在R1上启用了回环口,所以这个时候R1的RID变成了1.1.1.1,思科就没有bug真好。

这个部分就是对DR的描述,去同链路中其他路由器查看拓扑表,这一块的信息是一样的。

详情见实验要求六,略。?

?R1#show ip ospf database——查看拓扑表?

?R1#show ip ospf neighbor——查看邻居表????????

ospf默认优先级为110。要让R2成为DR,修改优先级>110。

我们再把R1的优先级改为90。理想状态下,DR变成了R2,BDR变成了R3,DOTHER变成了R1。记得要清除OSPF进程

小细节——不仅仅要clear R1,还要clear R2和R3。

再来查看

总结:对于DR和BDR的选举,优先级>回环口>RID大小

?略

Router(config)#router ospf 110

Router(config-router)#router-id 1.1.1.1 ?//手工指定rid? (要先进入进程号)

还是那句话,记得clear ospf进程。

???????

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:46:20  更:2021-10-13 11:47:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:19:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码