OSPF路由实验


OSPF的介绍:

OSPF(Open Shortest Path First)中文名称:开放式最短路径优先,属于IGP,属于4层协议,协议号为:89,组播组地址为:224.0.0.5(用于发现邻居)和224.0.0.6(只有DR和BDR才能使用)。

IGP和EGP的关系:

IGPInterior Gateway Protocol)中文名称:内部网关协议

IGP定义为自治系统Autonomous System)内部进行路由,主要应用在一个园区网,校园网内部,并完成在自治系统内部的最优路由路径选择。

常见的IGP协议有:RIP、OSPF、EIGRP、IS-IS

EGPExterior Gateway Protocol)中文名称:外部网关协议

EGP定义为自治系统之间进行路由,不考虑AS内部的路由信息,只关心自治系统边界传递的路由信息,并完成在自治系统之间最优的路径选择。

常见的EGP协议只有:BGP根据路由协议所使用的算法,路由协议可分为:距离矢量算法Distance-Vector)和链路状态算法Link-State)。

距离矢量算法:包括RIP、EIGRP、BGP,其中BGP也被称为路径矢量协议(Path-Vector)。

链路状态算法:包括OSPF和IS-IS。

这两种算法只是区别发现路由和计算路由的方法不同。

OSPF的三张表:

邻居表:

运行OSPF协议的路由器以组播(224.0.0.5)的方式发送Hello报文来发现邻居,当收到Hello报文的邻居路由器会检查报文所定义的参数,双方一致的情况下会形成邻居关系,并记录进邻居表,除此之外还会定时使用Hello报文维护邻居关系。

建立邻居的必要条件:

相同的Hello时间和Dead时间。

正常情况下:NBMA、P2MP的网络类型Hello时间为30秒发送一次,dead时间为Hello时间的4倍,Broadcast和p2p的网络类型Hello时间为10秒发送一次,dead时间也是Hello时间的4倍。

直连接口在相同的区域。

相同的网络类型。

相同的特殊区域标识。

相同的认证类型和认证密钥。

路由器ID(Router ID)不冲突。

两端的MTU必须一致。

链路状态数据库(LSDB):

链路状态协议数据库也叫拓扑表,根据路由协议规定,运行OSPF协议后的路由器并不直接交换路由表,而是交换彼此的链路状态描述信息,交换完成后,同一区域的路由器的LSDB都有该区域所有的链路状态信息,并且是一致的。

交互LSDB报文:

DBDDatabase Description,数据库描述):描述了本地LSDB中每一条LSA的摘要信息,根据发送的DBD报文的摘要信息进行相互比对,判断出所需要更新交换的LSU数据。

LSRLink State Request,链路状态请求):当两台路由器交互了DBD报文之后,得知对端的某些LSA是本地的LSDB所缺少的,这个时候会发送LSR给对端请求所需的LSA,内容包括所需要的LSA摘要信息。

LSULink state update,链路状态更新):当收到LSR报文之后,会在更新报文存放多个所请求的LSA完整信息,并发送给所请求的路由器。

LSAckLink State Acknowledgment,链路状态确认):路由器收到对端邻居发送LSU报文,并接收了LSA之后,会回复一个LSAck。

LSA的类型:

LSA(Link-State Advertisement)链路状态通告,LSA描述了拓扑的详细信息,是构建LSDB必需的东西。

1类LSA(Router LSA):每一台路由器都会产生,并在区域内泛洪,这种LSA描述的是拓扑信息、链路前缀、链路类型以及宣告进该区域的所有接口信息。

1类LSA

2类LSA(Network LSA):由DR生成,用于描述广播型网络和NBMA网络,它描述的是连接到一个特定的广播网络或者NBMA网络的所有路由器的链路状态,随后会泛洪给区域内所有的路由器,2类LSA永远不会穿过区域边界。

2类LSA

3类LSA(Network-Summary LSA):由区域边界路由器(ABR)产生,将所连接区域内部的链路信息以子网的形式传播到相邻区域,由于3类LSA传播的是路由条目,而不是链路状态描述,所以路由器在处理3类LSA的时候,不是运用SPF算法进行计算,而是直接加入路由表。

3类LSA

路由表

4类LSA(ASBR-Summary LSA):由区域边界路由器(ABR)产生,描述的目标网络是一个ASBR RouterID,触发条件为ABR收到一个5类LSA,然后产生一条4类LSA在区域内传播,ADVrouter设置为ABR路由器ID,Link State ID为ASBR路由器。

4类LSA

5类LSA(AS-External LSA):是由自治系统边界路由器(ASBR)产生,描述到AS外部的路由信息,它一旦生成,就会在整个OSPF系统内扩散,除了特殊区域,一般产生5类LSA是用ASBR重分发路由的方式,将外部路由在OSPF区域内发布。

5类LSA

7类LSA:这是一个特殊的LSA,它是在NSSA域内中的ASBR路由器重分发外部路由形成的LSA,7类LSA只存在于NSSA域内,当7类LSA传递到NSSA的ABR路由器时,会做一个LSA变形,把7类LSA转换成5类LSA进入到其他OSPF域内。

路由表:

运行OSPF协议的路由器在获得完整的LSDB描述之后,运用SPF算法进行计算,将计算出来的最优路由加入到OSPF路由表中。

OSPF路由器类型:

区域内路由器(Internal Router):该类路由器的所有接口都属于同一个OSPF区域。

区域边界路由器(Area Border Router):这类路由器可以同时属于两个以上区域,但其中一个必须是骨干区域。ABR用于连接骨干区域和非骨干区域,既可以是物理连接或者是逻辑上的连接。

骨干路由器(Backbone Router):这类路由器至少有一个接口属于骨干区域,因此所有的ABR和位于区域0的内部路由器都是骨干路由器。

自治系统边界路由器(Autonomous System Border Router):与其他AS交换路由信息的路由器称为ASBR,ASBR并不一定位于AS边界,它有可能是区域内路由器,也有可能是ABR,只要一台OSPF路由器重分发了外部路由,它就是ASBR。

OSPF网络类型:

Broadcast(广播):当链路层协议为:Ethernet,FDDI令牌环时,OSPF缺省认为是广播类型,在该类型的网络中,以组播形式(224.0.0.5和224.0.0.6)发送协议报文,也是选举DR和BDR必须使用的类型。

Point-to-Point(点到点):当链路层协议为:PPP、HDLC时,OSPF缺省认为是P2P类型,只以组播形式(224.0.0.5)发送协议报文。也可以在接口修改OSPF网络类型。

Point-to-MmultiPoint(点到多点):这种类型只能强制改变网络类型,常用的做法是将NBMA改成点到多点的网络,只以组播(224.0.0.5)的形式发送报文。

NBMA(非广播多点可达网络):当链路层协议为:帧中继、ATM、X.25时,OSPF缺省认为网络类型为NBMA。只以单播的形式发送报文。

DR和BDR的选举规则:

首先比较Hello报文中携带的优先级,优先级越大的选举为DR、优先级次高的选举为DBR。

默认为1,0表示不参与DR、BDR的选举。

优先级相同的情况下,比较Router ID。

Router ID产生规则:

1.手动设置。

2.loopback口中IP地址最大的。

3.双up的物理链路接口中IP地址最大的。

OSPF的实验:

拓扑图

实验目的:

R1和R2做OSPF区域0,R1和R3做OSPF区域1,R3的边界和R4做RIP协议,并双向重分发进OSPF和RIP进程中,实现PC之间的相互通信。

IP地址表:

R1 IP地址 R2 IP地址
ethernet0/0 12.1.1.1/30 ethernet0/0 12.1.1.2/30
ethernet0/1 13.1.1.1/30 ethernet0/1 172.16.10.254/24
loopback0 1.1.1.1/32 loopback0 2.2.2.2/32
R3 IP地址 R4 IP地址
ethernet0/0 13.1.1.2/30 ethernet0/0 34.1.1.2/30
ethernet0/1 34.1.1.1/30 ethernet0/1 192.168.10.254/24
loopback0 3.3.3.3/32 N/A N/A

修改路由器的主机名:

Router(config)#hostname R1
Router(config)#hostname R2
Router(config)#hostname R3
Router(config)#hostname R4

配置的IP地址:

R1:
R1(config)#interface ethernet 0/0
R1(config-if)#ip address 12.1.1.1 255.255.255.252
R1(config-if)#no shutdown 

R1(config)#interface ethernet 0/1
R1(config-if)#ip address 13.1.1.1 255.255.255.252
R1(config-if)#no shutdown 
R1(config)#interface loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.255
R2:
R2(config)#interface ethernet 0/0
R2(config-if)#ip address 12.1.1.2 255.255.255.252
R2(config-if)#no shutdown 

R2(config)#interface ethernet 0/1
R2(config-if)#ip address 172.16.10.254 255.255.255.0
R2(config-if)#no shutdown 
R2(config)#interface loopback 0
R2(config-if)#ip address 2.2.2.2 255.255.255.255
R3:
R3(config)#interface ethernet 0/0
R3(config-if)#ip address 13.1.1.2 255.255.255.252
R3(config-if)#no shutdown 

R3(config)#interface ethernet 0/1
R3(config-if)#ip address 34.1.1.1 255.255.255.252
R3(config-if)#no shutdown 
R3(config)#interface loopback 0
R3(config-if)#ip address 3.3.3.3 255.255.255.255
R4:
R4(config)#interface ethernet 0/0
R4(config-if)#ip address 34.1.1.2 255.255.255.252
R4(config-if)#no shutdown 

R4(config)#interface ethernet 0/1
R4(config-if)#ip address 192.168.10.254 255.255.255.0
R4(config-if)#no shutdown 
VPC:
VPCS> ip 172.16.10.1 255.255.255.0 172.16.10.254
VPCS> ip 192.168.10.1 255.255.255.0 192.168.10.254

配置OSPF:

R1:
R1(config)#router ospf 110(创建OSPF进程,进程号为110)
R1(config-router)#router-id 1.1.1.1(配置路由器ID)
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0(宣告接口进入OSPF,并且加入区域0)
R1(config-router)#network 12.1.1.1 0.0.0.0 area 0
R1(config-router)#network 13.1.1.1 0.0.0.0 area 1
R2:
R2(config)#router ospf 110
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 12.1.1.2 0.0.0.0 area 0
R2(config-router)#network 172.16.10.254 0.0.0.0 area 0
R3:
R3(config)#router ospf 110
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 13.1.1.2 0.0.0.0 area 1
R3(config-router)#network 3.3.3.3 0.0.0.0 area 1

配置RIP:

R3:
R3(config)#router rip(创建rip进程)
R3(config-router)#version 2(设置rip版本为2)
R3(config-router)#no auto-summary(关闭自动汇总)
R3(config-router)#network 34.1.1.0(宣告接口进rip进程)
R4:
R4(config)#router rip
R4(config-router)#version 2
R4(config-router)#no auto-summary
R4(config-router)#network 34.1.1.0
R4(config-router)#network 192.168.10.0

路由重分发:

R3:
R3(config)#router ospf 110
R3(config-router)#redistribute rip subnets(将rip重分发进ospf进程)
R3(config)#router rip
R3(config-router)#redistribute ospf 110 metric 1(将ospf重分发进rip进程,并且设置跳数为1)

查看R2和R4的路由表:

R2:

OSPF路由表

此时R2的路由表已经有了外部路由34.1.1.0和192.168.10.0/24的路由,并且显示为O E2。

R4:

RIP路由表

查看R2的OPSF4类和5类LSA数据库:

4类LSA

可以看到 link state id为3.3.3.3,是R3的loopback口IP地址,也是ASBR路由器,AdvRouter为1.1.1.1,是R1的loopback口IP地址,为ABR路由器。

5类LSA

可以看到5类LSA向域内传播的是外部路由的接口地址和pc的IP地址,并且AdvRouter为R3。

配置完成后,进行ping测试:

ping测试

ping测试

经过ping测试后,所有的VPC可以进行通信。


文章作者: Naraku
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Naraku !
  目录