路由器之间交流的语言是报文,而报文是通过协议承载的,路由协议有静态的,也有动态的,OSPF是动态协议中使用较为广泛的一种。
在OSPF网络中,每台路由器根据自己周围的网络拓扑结构生成链路状态通告LSA(Link State Advertisement),并通过更新报文将LSA发送给网络中的其它路由器。
OSPF交互的是链路状态信息,路由器的选路是一种“自主行为”,LSA只是一种选路的参考信息。
每台路由器都通过链路状态数据库LSDB(Link State DataBase)掌握全网的拓扑结构。如下图所示,每台路由器都会收集其它路由器发来的LSA,所有的LSA放在一起便组成了链路状态数据库LSDB。
LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。
路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。在网络拓扑稳定的情况下,各个路由器得到的有向图是完全相同的。
路由器根据最短路径优先(Shortest Path First)算法计算到达目的网络的路径,而不是根据路由通告来获取路由信息。
每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。
总之,LSDB保证路由器能够时刻掌握全网的拓扑结构,SPF算法保证路由器能够迅速计算出到达目的网络的最短路径。
二、OSPF的运行机制1、通过交互Hello报文形成邻居关系
2、通过泛洪LSA通告链路状态信息
3、通过组建LSDB形成带权有向图
4、通过SPF算法计算并形成路由
5、维护和更新路由表
三、OSPF报文类型
一共有5种报文类型,包括
1、Hello报文
2、DD报文(Database Description packet),
3、LSR报文(Link State Request packet)
4、LSU报文(Link State Update packet)
5、LSAck报文(Link State Acknowledgment packet)
四、OSPF支持的网络类型
1、广播类型(Broadcast)
2、NBMA类型(Non-Broadcast Multi-Access)
3、点到多点P2MP类型(Point-to-Multipoint)
4、点到点P2P类型(Point-to-Point)
五、相关概念1、Router ID
如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。
Router ID的设定有两种方式:
通过命令行手动配置,在实际网络部署中,建议手工配置OSPF的Router ID,因为这关系到协议的稳定。
通过协议自动选取。
如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选取顺序是:
- 优先从Loopback地址中选择最大的IP地址作为Router ID。
- 如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。
在路由器运行了OSPF并确定了Router ID后,如果该Router ID对应的接口Down或者接口消失(例如执行了undo interface loopback loopback-number)或者出现更大的IP地址,OSPF将仍然保持原Router ID。只有重新配置系统的Router ID或者OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。
2、COSTOSPF使用cost“开销”作为路由度量值。
每一个激活OSPF的接口都有一个cost值。OSPF接口cost=100M/接口带宽,其中100M为OSPF的参考带宽(reference-bandwidth)。
一条OSPF路由的cost由该路由从路由的起源一路到达本地的所有入接口cost值的总和。
OSPF使用接口带宽来衡量路径开销,带宽更优(开销越小)的路由被优选,目前有两个版本,V2版本适用于IPv4的环境,V3版本适用于IPv6的环境。
由于默认的参考带宽是100M,这意味着更高带宽的传输介质(高于100M)在OSPF协议中将会计算出一个小于1的分数,这在OSPF协议中是不允许的(会被四舍五入为1)。而现今网络设备很多都是大于100M带宽的接口,这时候路由cost的计算其实就不精确了。所以可以使用bandwidth-reference命令修改,但是这条命令要谨慎使用,一旦要配置,则建议全网OSPF路由器都配置。
六、单区域OSPF配置OSPF的配置
1、开启OSPF进程- 在全局模式下使用ospf进程号来开启ospf进程
- 设备上可以运行多个OSPF进程,因此后边要跟个进程号,不同进程之间相当于不同路由协议,他们之间不会交互路由信息。
- 进程号只是具有本地意义,不会在邻居之间传递。
area0表示将这些网段的接口划分到区域0内。OSPF为了在大型网络中提高效率,将网络按照区域分割开,这里我们将所有接口划分到区域0内。
3、发布路由信息- 使用network命令发布路由信息,建立邻居关系。由网络位、反掩码和区域号组成。
- 网络位和反掩码合并起来,表示一个IP地址的范围,如果接口IP地址在这个范围以内,则OSPF将这个接口IP地址所在的网段发布给邻居,并且尝试在这条链路上和对方建立邻居关系。
- 反掩码一般用来表示一段IP地址和范围,掩码中的0对应必须匹配的位置,1对应不用匹配的位置。
八、IP规划九、配置9.1 PC1
IP:172.16.1.1
掩码:255.255.255.0
网关:192.16.1.254
9.2 PC2
IP:172.16.2.1
掩码:255.255.255.0
网关:192.16.2.254
9.3 PC3
IP:172.16.3.1
掩码:255.255.255.0
网关:192.16.3.254
9.4 AR1
[huawei]sys AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 172.16.12.1 24
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip address 172.16.13.1 24
[AR1-GigabitEthernet0/0/1]int g0/0/2
[AR1-GigabitEthernet0/0/2]ip address 172.16.1.254 24
查看
[AR1]display ip interface brief
9.5 AR2
[huawei]sys AR2
[ar2]int g0/0/0
[ar2-GigabitEthernet0/0/0]ip address 172.16.12.2 24
[ar2-GigabitEthernet0/0/0]int g0/0/1
[ar2-GigabitEthernet0/0/1]ip address 172.16.23.1 24
[ar2-GigabitEthernet0/0/1]int g0/0/2
[ar2-GigabitEthernet0/0/2]ip address 172.16.2.254 24
查看配置情况
[ar2]display ip interface brief
9.6 AR3
[huawei]sys ar3
[ar3]int g0/0/0
[ar3-GigabitEthernet0/0/0]ip address 172.16.23.2 24
[ar3-GigabitEthernet0/0/0]int g0/0/1
[ar3-GigabitEthernet0/0/1]ip address 172.16.13.2 24
[ar3-GigabitEthernet0/0/1]int g0/0/2
[ar3-GigabitEthernet0/0/2]ip address 172.16.3.254 24
查看配置情况
[ar3]disp ip interface brief
现在查看路由表
在AR1上
<AR1>disp ip routing-table
由上图可知,在AR1上没有到172.16.2.0和172.16.3.0网段的路由,所以PC1无法与PC2,PC3进行正常通信。
由上图知悉,PC1不能与PC2进行通信。
由上图知悉,PC1与PC3不能进行通信。
9.7 配置OSPF在每个经过OSPF的路由器上都要配置。
9.7.1 在AR1上配置[AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 172.16.12.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]network 172.16.13.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
9.7.2 在AR2上配置
[ar2]ospf 1
[ar2-ospf-1]area 0
[ar2-ospf-1-area-0.0.0.0]network 172.16.12.0 0.0.0.255
[ar2-ospf-1-area-0.0.0.0]network 172.16.23.0 0.0.0.255
[ar2-ospf-1-area-0.0.0.0]network 172.16.2.0 0.0.0.255
由于AR1的GE0/0/0接口和AR2的GE0/0/0接口相连,并且AR1的GE0/0/0接口以及配置OSPF协议,所有在AR2上的接口GE0/0/0配置OSPF后,该接口出现OSPF邻居状态的7种变化。Down—init—2way—ExStart—Exchange—Loading—Full。
9.7.3 在AR3上配置
[ar3]ospf 1
[ar3-ospf-1]area 0
[ar3-ospf-1-area-0.0.0.0]network 172.16.23.0 0.0.0.255
[ar3-ospf-1-area-0.0.0.0]network 172.16.13.0 0.0.0.255
[ar3-ospf-1-area-0.0.0.0]network 172.16.3.0 0.0.0.255
9.8查看9.8.1 ospf邻居关系详细信息<AR1>disp ospf peer brief
由上图知悉,以上表示 R1 上能看到 R2 和R3邻居,有邻居的 route-ID, 状态,本地接口和区域等。
9.8.2查看邻居状态<AR1>dis ospf peer
OSPF Process 1 with Router ID 172.16.12.1
Neighbors
Area 0.0.0.0 interface 172.16.12.1(GigabitEthernet0/0/0)'s neighbors
Router ID: 172.16.12.2 Address: 172.16.12.2
State: Full Mode:Nbr is Master Priority: 1
DR: 172.16.12.1 BDR: 172.16.12.2 MTU: 0
Dead timer due in 38 sec
Retrans timer interval: 5
Neighbor is up for 00:29:00
Authentication Sequence: [ 0 ]
Neighbors
Area 0.0.0.0 interface 172.16.13.1(GigabitEthernet0/0/1)'s neighbors
Router ID: 172.16.23.2 Address: 172.16.13.2
State: Full Mode:Nbr is Master Priority: 1
DR: 172.16.13.1 BDR: 172.16.13.2 MTU: 0
Dead timer due in 34 sec
Retrans timer interval: 5
Neighbor is up for 00:08:47
Authentication Sequence: [ 0 ]
<AR1>
其中
OSPF Process 1 with Router ID 172.16.12.1
//是本路由器的Router ID,由于本实验没有手动配置Router ID,也没有使用Loopback接口,所有是从该路由器的接口地址中选取。
Area 0.0.0.0
//邻居所属的区域0
interface 172.16.12.1(GigabitEthernet0/0/0)'s neighbors
//本路由器与邻居相连的接口,IP地址是172.16.12.1,接口是GigabitEthernet0/0/0
Router ID: 172.16.12.2
//邻居Router ID
Address: 172.16.13.2
//邻居接口地址
State: Full
//邻居状态:
Full:该状态说明,邻居的LSDB已经同步完成,双方建立了Full邻接关系
还有几种状态说明
Mode:Nbr is Master
//邻居是Master,主动发送DD报文
//Mode
DD交换进程中的作用为Master或Slave:
Nbr is Master:邻居是Master,主动发送DD报文
Nbr is Slave:邻居是Slave,配合Master发送DD报文
Priority: 1
// Priority,邻居的优先级是1
DR: 172.16.12.1
// DR,指定路由器
BDR: 172.16.12.2
//BDR,备份指定路由器
MTU: 0
//MTU,邻居接口MTU的值
Dead timer due in 38 sec
//Dead定时器在38秒后到时
Retrans timer interval: 5
//重传LSA的时间间隔为5,单位为秒
Authentication Sequence: [ 0 ]
//认证序列号
查看OSPF路由协议
<AR1>display ip routing-table protocol ospf
<AR1>display ospf brief
由上图知悉,接口的的开销,状态,接口网络类型。
9.8.3 查看 LSDB 表项
<AR1>display ospf lsdb
以上输出表示能看到一类的和 2 类的 LSA。
LSA类型
十、测试
PC1到PC2
经过的路径
PC1到PC3
经过的路径
PC>tracert 172.16.3.1
此时OSPF单域的实验完成。
,