分享

OSPF基本的基本概念+单区域应用实例

 Teacher_Lin 2020-04-02

一、OSPF路由协议的基本概念

1-OSPF路由协议的基本特点

(1)OSPF可适应大规模网络;RIP适应于小规模的网络;

(2)OSPF路由变化收敛快;RIP路由收敛有延迟,容易产生环路;

(3)OSPF无路由自环,自动分割环路;

(4)OSPF支持变长子网掩码,可以针对非标准子网进行精确的路由选择,在进行路由标记时,可以对子网进行精确标记;RIP在标记子网时,无法指定固定的子网,即无法标记子网的掩码;

(5)支持等值路由,即为到达同一个目的 IP 或者目的网段存在多条 Cost 值相等的不同路由路径。RIP也存在等价路由。

https://baike.baidu.com/item/%E7%AD%89%E4%BB%B7%E8%B7%AF%E7%94%B1/4796463?fr=aladdin

(6)支持区域划分,即将一个大的OSPF区域分割成几个小的区域,区域与区域之间通过边界路由器进行连接;

(7)提供路有分级管理,在OSPF中一定存在一个0区域,它作为所有区域的核心,若无0区域则网络无线正常通讯;

(8)支持验证,即有线路两端开启OSPF的验证,也可以开启0区域验证;

(9)支持以组播地址发送协议报文;

https://baike.baidu.com/item/%E7%BB%84%E6%92%AD%E5%9C%B0%E5%9D%80/6095039?fr=aladdin

2-Router ID一个32bit的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一。通常用IP地址进行标识的。

在不指明RouterID的情况下,路由器会自动进行选举,选举规则如下:

(1)在多loopback口的OSPF路由器上,以最大的loopback口地址作为Router-id.

(2) 在只有一个loopback口的OSPF路由器上,选择loopback口地址作为Router-id.

(3)没loopback口的OSPF路由器,选择物理接口上IP地址最大的作为Router-id.

3-回环地址:(loopback)指将电子信号、数据流等原样送回发送者的行为。它主要用于对通信功能的测试。

https://baike.baidu.com/item/loopback/2779210?fr=aladdin

4-协议号:也称为进程号(也就是你router ospf 110中的110)只有本地意义,任何一台路由器的进程号可以不一致都可以建立邻居。其作用是在同一台路由器区别不同的OSPF路由进程。

在一台路由器上只能创建一个RIP路由协议,但是在一台路由器上可以创建多个OSPF路由协议,各路由协议之间通过进程号来区分。

5-AS(自治系统编号):在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。在OSPF中一般以区域来划分,每个区域是一个小型的自治系统。

https://baike.baidu.com/item/%E8%87%AA%E6%B2%BB%E7%B3%BB%E7%BB%9F/129715?fr=aladdin

6-OSPF报文不转发:通常OSPF报文是不转发的,只传递一跳,即在IP报文头中TTL值被设为1。(虚连接除外)

7-LSA(链路状态广播)是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。 LSA被路由器接收用于维护它们的路由选择表。 LSA: Link-State Advertisement。

https://baike.baidu.com/item/lsa

8-OSPF路由协议:用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328,RFC 5340定义了适用于IPv6的OSPFv3。

9-实现过程:

(1)初始化形成端口初始信息:在路由器初始化或网络结构发生变化(如链路发生变化,路由器新增或损坏)时,相关路由器会产生链路状态广播数据包LSA,该数据包里包含路由器上所有相连链路,也即为所有端口的状态信息。

(2)路由器间通过泛洪(Floodingl机制交换链路状态信息:各路由器一方面将其LSA数据包传送给所有与其相邻的OSPF路由器,另一方面接收其相邻的OSPF路由器传来的LSA数据包,根据其更新自己的数据库。

(3)形成稳定的区域拓扑结构数据库:OSPF路由协议通过泛洪法逐渐收敛,形成该区域拓扑结构的数据库,这时所有的路由器均保留了该数据库的一个副本。

(4)形成路由表:所有的路由器根据其区域拓扑结构数据库副本采用最短路径法计算形成各自的路由表。

10-DR 和BDR 的选举原则:

(1)广播网络或NBMA 类型的网络需要选举指定路由器DR(Designated Router)和备份指定路由器BDR(Backup Designated Router);

(2)路由器接口的优先级Priority 将影响接口在选举DR 时所具有的资格。优先级为0 的路由器不会被选举为DR 或BDR;

(3)DR 由本网段中所有路由器共同选举。Priority 大于0 的路由器都可作为“候选者”,选票就是Hello 报文,OSPF 路由器将自己选出的DR 写入Hello报文中,发给网段上的其它路由器。当同一网段的两台路由器都宣布自己是DR 时,Priority 高的胜出。如果Priority 相等,则Router ID 大的胜出;

(4)如果DR 失效,则网络中的路由器必须重新选举DR,并与新的DR 同步,为了缩短这个过程,OSPF 提出了BDR(Backup Designated Router,备份指定路由器)的概念,与DR同时被选举出来。BDR 也与本网段内的所有路由器建立邻接关系并交换路由信息。DR 失效后,BDR 立即成为DR,由于不需要重新选举,并且邻接关系已经建立,所以这个过程可以很快完成。这时,还需要选举出一个新的BDR,这时不会影响路由的计算。

 11-DR 和BDR 的指导思想:

(1)选举制:DR 是各路由器选出来的,而非人工指定的,虽然管理员可以通过配置priority 干预选举过程。

(2)终身制:DR 一旦当选,除非路由器故障,否则不会更换,即使后来的路由器priority 更高

(3)世袭制:DR 选出的同时也选出BDR 来,DR 故障后,由BDR 接替DR 成为新的DR。

 12-DR 和BDR 的注意事项:

(1)只有在广播和NBMA 的链路上才会选举DR,在PTP和PTMP 的链路上不会选举DR。

(2)DR 是针对一个网段内的设备选举的,对于一台路由器来说,可能它在某个接口上是DR

(3)在其它接口上是BDR、DR,或者因为是PTP 的链路而不参加DR 的选举。

(4)在广播的网络上必须存在DR 才能够正常工作,但BDR 不是必需的。

(5)一个网段中即使只有一台路由器,也要选举DR。

(6)由于“终身制”的原因,网段中的DR不一定是priority 最高的,但通常是“来的早”的路由器。

二、单区域应用实例

1-拓扑结构图

QQ图片20200402141351

2-配置要求

(1)网络基本配置-设备名;

(2)IP地址规划;

(3)规划loopback 0的地址【用于router-id】;

(4)规划loopback 1的地址【由于测试地址】;

(5)配置OSPF路由协议【只有区域0】

(7)验证路由表和邻居表;

(8)IP地址规划:192.168.编号.0/24;例如R1和R2之间用192.168.12.0/24;

(9)规划lookback 0:192.168.编号.0/24,例如R1的IP地址为192.168.1.0/24;

(10)规划lookback 1:192.168.编号.0/24,例如R1的IP地址为192.168.11.0/24;

3-配置过程

(1)网络设备的基本配置-配置设备名

Router>enable  //进入特权模式

Router#configure terminal  //进入全局配置模式

Router(config)#hostname R3  //设置主机名

R3(config)#

(2)IP地址规划

R1接口的配置

R1(config)#interface Serial0/0/0  //进入接口

R1(config-if)#no shutdown  //打开接口

R1(config-if)#ip address 192.168.12.1 255.255.255.0  //配置该接口的IP地址

R1(config-if)#exit  //退到特权模式

R1(config)#interface Serial0/1/0

R1(config-if)#no shutdown

R1(config-if)#ip address 192.168.14.1 255.255.255.0

R1(config-if)#exit

R1(config)#interface Serial0/1/1

R1(config-if)#no shutdown

R1(config-if)#ip address 192.168.15.1 255.255.255.0

R1(config-if)#exit

R1(config)#interface Serial0/0/1

R1(config-if)#no shutdown

R1(config-if)#ip address 192.168.13.1 255.255.255.0

R1(config-if)#int loopback 0

R1(config-if)#ip add 192.168.1.1 255.255.255.0

R1(config-if)#int loopback 1

R1(config-if)#ip add 192.168.11.1 255.255.255.0

R2接口的配置

R2(config)#interface Serial0/0/0  //进入接口

R2(config-if)#no shutdown  //打开接口

R2(config-if)#ip address 192.168.12.2 255.255.255.0  //配置该接口的IP地址

R2(config-if)#exit  //退到特权模式

R2(config)#interface Serial0/1/0

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.23.2 255.255.255.0

R2(config-if)#exit

R2(config)#interface Serial0/0/1

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.25.2 255.255.255.0

R2(config-if)#exit

R2(config)#interface Serial0/2/0

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.24.2 255.255.255.0

R2(config-if)#int loopback 0

R2(config-if)#ip add 192.168.2.1 255.255.255.0

R2(config-if)#int loopback 1

R2(config-if)#ip add 192.168.22.1 255.255.255.0

R3接口的配置

R3(config)#interface Serial0/0/1  //进入接口

R3(config-if)#no shutdown  //打开接口

R3(config-if)#ip address 192.168.13.3 255.255.255.0  //配置该接口的IP地址

R3(config-if)#exit  //退到特权模式

R3(config)#interface Serial0/1/0

R3(config-if)#no shutdown

R3(config-if)#ip address 192.168.23.3 255.255.255.0

R3(config-if)#exit

R3(config)#interface Serial0/2/1

R3(config-if)#no shutdown

R3(config-if)#ip address 192.168.34.3 255.255.255.0

R3(config-if)#exit

R3(config)#interface Serial0/2/0

R3(config-if)#no shutdown

R3(config-if)#ip address 192.168.35.3 255.255.255.0

R3(config-if)#int loopback 0

R3(config-if)#ip add 192.168.3.1 255.255.255.0

R3(config-if)#int loopback 1

R3(config-if)#ip add 192.168.33.1 255.255.255.0

R4接口的配置

R4(config)#interface Serial0/2/0  //进入接口

R4(config-if)#no shutdown  //打开接口

R4(config-if)#ip address 192.168.24.4 255.255.255.0  //配置该接口的IP地址

R4(config-if)#exit  //退到特权模式

R4(config)#interface Serial0/1/0

R4(config-if)#no shutdown

R4(config-if)#ip address 192.168.14.4 255.255.255.0

R4(config-if)#exit

R4(config)#interface Serial0/2/1

R4(config-if)#no shutdown

R4(config-if)#ip address 192.168.34.4 255.255.255.0

R4(config-if)#exit

R4(config)#interface Serial0/0/0

R4(config-if)#no shutdown

R4(config-if)#ip address 192.168.45.4 255.255.255.0

R4(config-if)#int loopback 0

R4(config-if)#ip add 192.168.4.1 255.255.255.0

R4(config-if)#int loopback 1

R4(config-if)#ip add 192.168.44.1 255.255.255.0

R5接口的配置

R5(config)#interface Serial0/0/0  //进入接口

R5(config-if)#no shutdown  //打开接口

R5(config-if)#ip address 192.168.45.5 255.255.255.0  //配置该接口的IP地址

R5(config-if)#exit  //退到特权模式

R5(config)#interface Serial0/0/1

R5(config-if)#no shutdown

R5(config-if)#ip address 192.168.25.5 255.255.255.0

R5(config-if)#exit

R5(config)#interface Serial0/1/1

R5(config-if)#no shutdown

R5(config-if)#ip address 192.168.15.5 255.255.255.0

R5(config-if)#exit

R5(config)#interface Serial0/2/0

R5(config-if)#no shutdown

R5(config-if)#ip address 192.168.35.5 255.255.255.0

R5(config-if)#int loopback 0

R5(config-if)#ip add 192.168.5.1 255.255.255.0

R5(config-if)#int loopback 1

R5(config-if)#ip add 192.168.55.1 255.255.255.0

(3)配置路由

R1的路由配置

R1(config-if)#router ospf 1 //进入OSPF路由配置界面

R1(config-router)#router-id 192.168.2.1  //配置R1的router-id

R1(config-router)#network 192.168.2.1 0.0.0.0 area 0 //声明router-id

R1(config-router)#network 192.168.22.0 0.0.0.255 area 0 //声明loopback 1的网段

R1(config-router)#network 192.168.12.0 0.0.0.255 area 0  //声明R1与R2之间的网段

R1(config-router)#network 192.168.23.0 0.0.0.255 area 0 //声明R2与R3之间的网段

R1(config-router)#network 192.168.25.0 0.0.0.255 area 0 //声明R1与R2之间的网段

R1(config-router)#network 192.168.24.0 0.0.0.255 area 0 //声明R1与R2之间的网段

R2的路由配置

R2(config-if)#router ospf 1 //进入OSPF路由配置界面

R2(config-router)#router-id 192.168.2.1  //配置R1的router-id

R2(config-router)#network 192.168.2.1 0.0.0.0 area 0 //声明router-id

R2(config-router)#network 192.168.22.0 0.0.0.255 area 0 //声明loopback 1的网段

R2(config-router)#network 192.168.12.0 0.0.0.255 area 0 //声明R1与R2之间的网段

R2(config-router)#network 192.168.23.0 0.0.0.255 area 0 //声明R3与R2之间的网段

R2(config-router)#network 192.168.25.0 0.0.0.255 area 0 //声明R5与R2之间的网段

R2(config-router)#network 192.168.24.0 0.0.0.255 area 0 //声明R4与R2之间的网段

R3的路由配置

R3(config-if)#router ospf 1 //进入OSPF路由配置界面

R3(config-router)#router-id 192.168.3.1  //配置R1的router-id

R3(config-router)#network 192.168.3.1 0.0.0.0 area 0 //声明router-id

R3(config-router)#network 192.168.33.0 0.0.0.255 area 0 //声明loopback 1的网段

R3(config-router)#network 192.168.13.0 0.0.0.255 area 0 //声明R1与R3之间的网段

R3(config-router)#network 192.168.23.0 0.0.0.255 area 0 //声明R2与R3之间的网段

R3(config-router)#network 192.168.34.0 0.0.0.255 area 0 //声明R4与R3之间的网段

R3(config-router)#network 192.168.35.0 0.0.0.255 area 0 //声明R5与R3之间的网段

R4的路由配置

R4(config)#router ospf 1 //进入OSPF路由配置界面

R4(config-router)#router-id 192.168.4.1 //配置R1的router-id

R4(config-router)#network 192.168.4.1 0.0.0.0 area 0 //声明router-id

R4(config-router)#network 192.168.44.0 0.0.0.255 area 0 //声明loopback 1的网段

R4(config-router)#network 192.168.24.0 0.0.0.255 area 0 //声明R2与R4之间的网段

R4(config-router)#network 192.168.14.0 0.0.0.255 area 0 //声明R1与R4之间的网段

R4(config-router)#network 192.168.34.0 0.0.0.255 area 0 //声明R3与R4之间的网段

R4(config-router)#network 192.168.45.0 0.0.0.255 area 0 //声明R5与R4之间的网段

R5的路由配置

R4(config)#router ospf 1 //进入OSPF路由配置界面

R4(config-router)#router-id 192.168.5.1  //配置R1的router-id

R4(config-router)#network 192.168.5.1 0.0.0.0 area 0 //声明router-id

R4(config-router)#network 192.168.55.0 0.0.0.255 area 0 //声明loopback 1的网段

R4(config-router)#network 192.168.45.0 0.0.0.255 area 0 //声明R4与R5之间的网段

R4(config-router)#network 192.168.25.0 0.0.0.255 area 0 //声明R2与R5之间的网段

R4(config-router)#network 192.168.15.0 0.0.0.255 area 0 //声明R1与R5之间的网段

R4(config-router)#network 192.168.35.0 0.0.0.255 area 0 //声明R3与R5之间的网段

(4)查看每个路由器的路由表情况

R1的路由表情况,线上与该路由器非直连的网段的所有路由信息

QQ图片20200402151418

QQ图片20200402151418

R2的路由表情况,线上与该路由器非直连的网段的所有路由信息

QQ截图20200402152011

R3的路由表情况,线上与该路由器非直连的网段的所有路由信息

QQ截图20200402152136

QQ截图20200402152136

R4的路由表情况,线上与该路由器非直连的网段的所有路由信息

QQ截图20200402152321

R5的路由表情况,线上与该路由器非直连的网段的所有路由信息

QQ截图20200402152413

QQ截图20200402152413

(5)查看邻居表的情况

微信截图_20200402154651微信截图_20200402154750微信截图_20200402154823微信截图_20200402154849微信截图_20200402154910

第一个是Neighbor ID,是你邻居的OSPF标识名字,也就是route-id ,手动设置是最优选择的,其实是LOOPBACK口最高的IP地址,其次是物理口IP最高的地址,默认设置完成后,route-id选完后,想要改变,需要重置OSPF进程。

第二个是Pri,表示这台路由器的优先值,默认是1,参与DR,BDR的选择,如果是0,就永远不参与DR,BDR的选择。

第三个是State 表示OSPF当前的状态,ospf状态有,down,two-way,exstart,exchange,loading ,full。down 双方接口down状态;init 初始化状态即单向通信,A收到B的hello(或B收到A的hello);two-way 双方互相通信状态,彼此收到对方的hello,并且从hello包中读取信息,建立邻居关系;exstart 就是将要开始发送DBD,在发送之前确认谁先发,谁后发,他们自动协商,依靠router id,越大越优先;exchange 上边确认主从关系后,开始交换DBD即摘要,会有确认;loading 收到BDB后进行比较是否相同(比较依据查看序列号),然后进行LSR、LSU的请求和更新;full 彼此的数据相同即LSA一样,此状态为邻接关系

第四个是Dead Time,死亡时间,在广播和点到点网络类型中默认40秒,NBMA中默认是120秒。

第五个是Address,邻居的接口IP地址。

第六个是Interface,邻居的接口号。

(6)查看路由的OSPF数据库表的情况

12345

① Link ID;是指Link State ID,代表整个路由器,而不是某个链路;

② ADV Router;是指链路状态信息的路由器ID;也即Router-id的值;

③ Age;老化时间;OSPF每隔1800s定时刷新一次LSA,如果LSA在3600s内未被刷新,LSA将从数据库中删除,即老化掉。

④ Seq#;序列号;OSPFv2使用线性空间,序列号从0x80000001到0x7fffffff

⑤ Checksum;校验和;是计算除了Age以外的字段,因为Age在每经过一个节点都会变大(InfTransDelay),如果包含了它,每个节点都必须重新计算校验和。链路状态数据库中的LSA每经过5分钟都需要重新计算一次校验和,以确保在数据库中没被破坏。

⑥ Link count;通告路由器在本区域内的链路数目。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多