我是靠谱客的博主 爱听歌大门,最近开发中收集的这篇文章主要介绍网络通信安全部分笔记——OSPF理论及实验动态路由协议SPF算法DR和BDR的选举机制OSPF基本配置OSPF实验 思科(EVE),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

动态路由协议

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

动态路由的分类:

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

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

②链路状态路由协议:   OSPFIS-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进程。

​​​​​​​

最后

以上就是爱听歌大门为你收集整理的网络通信安全部分笔记——OSPF理论及实验动态路由协议SPF算法DR和BDR的选举机制OSPF基本配置OSPF实验 思科(EVE)的全部内容,希望文章能够帮你解决网络通信安全部分笔记——OSPF理论及实验动态路由协议SPF算法DR和BDR的选举机制OSPF基本配置OSPF实验 思科(EVE)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部