动态路由-OSPF协议(链路状态路由协议)
- 一、OSPF协议概述
- 1、含义
- 2、自治系统
- 3、度量值
- 二、分类
- 1、距离矢量路由协议
- 2、链路状态路由协议
- 3、OSPF和RIP区别
- 三、OSPF区域
- 1、区域
- 2、区域ID
- 3、区域分类
- 四、OSPF的'1-7'
- 1、一个Router ID
- 2、两个组播地址
- 3、三个关键表格
- 4、四种网络类型
- 5、五个包类型
- 6、六种LSA类型
- 7、七种状态
- 五、OSPF实验
- 1、OSPF小实验1
- 2、OSPF小实验2
一、OSPF协议概述
1、含义
- OSPF是一种链路状态路由协议。
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
过程
建立邻居关系——>建立邻接关系,交互LAS并且同步LSDB——>基于最短路径树得出路由表
2、自治系统
- 自治系统(AS)由同一个技术管理结构使用统一选路策略的一些路由器的集合。
- 内部网关协议(IGP)运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由。主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)
- 外部网关协议(EGP)外部网关路由协议,运行在AS与AS之间的路由协议,他解决AS之间选路问题。BGP等
3、度量值
度量值为cost
cost=10^8/BW最短路径是基于接口指定的代价cost
十兆=10
百兆=1
千兆=0.1
越小越好
二、分类
1、距离矢量路由协议
距离矢量路由协议: RIP1/2、BGP (路径矢量协议)、EIGRP ( 高级距离矢量协议)
路由器对全网拓扑不完全了解。是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的。
2、链路状态路由协议
链路状态路由协议: OSPF、ISIS
路由器对全网拓扑完全了解。是“传信的路由",A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。 然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree (即到达目的地的各个方案),选出最佳路径,放入路由表中。
3、OSPF和RIP区别
三、OSPF区域
1、区域
为了适应大型的网络, OSPF在AS内划分多个区域。
每个OSPF路由器只维护所在区域的完整链路状态信息。
2、区域ID
区域ID可以表示成一个十进制的数字。
也可以表示成一个IP。
3、区域分类
骨干区域Area 0
作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。
非骨干区域
- 标准区域:除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
- 末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的AS外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
- 完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。
- 虚链路
指一 条通过一个非骨干区域连接到骨干区域的链路
口虚链路的目的
通过一个非骨干区域连接一个区域到骨干区域
通过一个非骨干区域连接-一个分段的骨干区域两边的部分区域
四、OSPF的’1-7’
1、一个Router ID
- Router ID是OSPF区域内唯一标识路由器的IP地址
- Router ID选取规则
选取路由器loopback接口.上数值最高的IP地址。
如果没有loopback接口,在物理端口中选取IP地址最高的。
可以使用router-id命令指定Router ID。
- DR和BDR的选举方法
①自动选举DR和BDR
网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR。
②手工选择DR和BDR
优先级范围是0~ 255,数值越大,优先级越高,默认为1。
如果优先级相同,则需要比较Router ID。
如果路由器的优先级被设置为0,它将不参与DR和DBR的选举。
2、两个组播地址
- OSPF有两个组播地址
224.0.0.5是选举时,发送第一个Hello包和DRothers监控时所用地址。
224.0.06是DR和BDR监控时所用地址。
OSPF的特点
- 可适应大规模网络
- 路由变化收敛速度快
- 无路由环
- 支持变长子网掩码VLSM
- 支持区域划分
- 支持以组播地址发送协议报
3、三个关键表格
- OSPF 链路状态路由协议有三个关键的表
邻居列表
链路状态数据库
路由表
- 工作过程
①通过各个路由的传信过程建立邻接关系。
②再学习所有链路状态信息,这时所有路由对整个网络结构都了解清楚了。
③ 把全部的信息放入链路状态数据库。
④再通过SPF算法计算出最短路径树。
⑤最后生成路由表。
4、四种网络类型
OSPF将网络划分为4种类型
- 点到点网络(Point-to-Point),自动发现邻居,不需DR/BDR、组播224.0.0.5。
- 广播多路访问网络(Broadcast MultiAccess, BMA),自动发现邻居、选DR/BDR、 组播224.0.0.5、 224.0.0.6。
- 非广播多路访问网络(None Broadcast MultiAccess, NBMA),手工指定邻居、选DR/BDR、 单播。
- 点到多点网络(Point-to-Multipoint),自动发现邻居,不需DR/BDR.组播224.0.0.5。
5、五个包类型
封装在IP数据包内,协议号89
类型 | 功能 |
Hello包 | 用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(DBD) | 用于向邻居发送摘要信息以同步链路状态数据库 |
链路状态请求包(LSR) | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
链路状态更新包(LSU) | 收到LSR后发送链路状态通告(LSA) ,一个LSU数据包可能包含几个LSA |
链路状态确认包(LSAck) | 确认已经收到DBD/ LSU,每个LSA需要被分别确认 |
6、六种LSA类型
OSPF6种LSA类型
类型代码 | 描述 | 用途 |
Type 1 | 路由器LSA | 由区域内的路由器发出的,描述了路由器的的链路状态和花费,传递到整个区域内 |
Type 2 | 网络LSA | 由区域内的DR发出的,描述了区域内变更信息,传递到整个区域内 |
Type 3 | 网络汇总LSA | ABR发出的,其他区域的汇总链路通告,描述了其他区域内某一网段的路由,区域间传递 |
Type 4 | ASBR汇总LSA | ABR发出的,用于通告ASBR信息,确定ASBR的位置,不会出现在ASBR所属区域之内 |
Type 5 | AS外部LSA | ASBR发出的,用于通告外部路由,告诉相同AS的路由器通往外部AS的路径,在整个AS中进行泛洪 |
Type 7 | NSSA外部LSA | NSSA区域内的ASBR发出的,用于通告本区域连接的外部路由,与Type 5类似,仅在非纯末梢区域内进行泛洪,传递时会被ABR转换为LSA5 |
每一种区域中允许泛洪的LSA | ||
区域类型 | 1&2 | 3 |
– | – | – |
骨干区域(区域0) | 允许 | 允许 |
非骨干区域,非末梢区域 | 允许 | 允许 |
末梢区域 | 允许 | 允许 |
完全末梢区域 | 允许 | 不允许* |
NSSA | 允许 | 允许 |
7、七种状态
OSPF7种状态
邻居状态机:
- Down: 邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文或OSPF没启动时。
- Init: 本状态表示经收到了邻居的Hello报文,但是该报文中列出的邻居中没有包含我的Router ID (对方并没有收到我发的HELLO报文)。
- 2-Way; 本状态表示双方互相收到了对端发送的Hello报文,建立邻居关系。在广播和NBMA类型的网络中,两个接口状态DROther的路由器之间将停留在此状态。
- ExStart:在此状态下,路由器和它的邻居之间通过互相交换DD报文(该报文并不包含实际的内容,只包含一些标志位)来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。
- Exchange: 路由器将本地的LSDB用DD报文来描述,并发给邻居。
- Loading:路由器发送LSR报文向邻居请求对方的DD报文。
- Full: 在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即本路由器和邻居建立了邻接(adjacency) 状态。
五、OSPF实验
1、OSPF小实验1
R1
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 1.1.1.1 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 2
[Huawei-ospf-1-area-0.0.0.2]network 1.1.1.1 0.0.0.0
[Huawei-ospf-1-area-0.0.0.2]network 12.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.2]q
R2
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 2.2.2.2 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 23.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 2
[Huawei-ospf-1-area-0.0.0.2]network 12.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.2]net
[Huawei-ospf-1-area-0.0.0.2]network 2.2.2.2 0.0.0.0
[Huawei-ospf-1-area-0.0.0.2]q
[Huawei]ospf
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]net
[Huawei-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
R3
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 3.3.3.3 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 23.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 34.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]q
R4
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 4.4.4.4 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 34.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 45.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0]q
[Huawei-]ospf
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]un network 45.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]q
R5
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 5.5.5.5 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 45.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 56.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 5.5.5.5 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]network 45.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]network 56.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]q
R6
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop 0
[Huawei-LoopBack0]ip add 6.6.6.6 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 56.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]q
[Huawei]ospf
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 6.6.6.6 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]network 56.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]q
2、OSPF小实验2
R1
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.10.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int loop0
[Huawei-LoopBack0]ip add 1.1.1.1 32
[Huawei-LoopBack0]q
ip route-static 0.0.0.0 0 192.168.10.1
R2
u tm
Error: File can’t be found
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int loop0
[Huawei-LoopBack0]ip add 2.2.2.2 32
[Huawei-LoopBack0]q
[Huawei]ospf
[Huawei-ospf-1]a 1
[Huawei-ospf-1-area-0.0.0.1]net 192.168.20.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]net 2.2.2.2 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]q
[Huawei-ospf-1]q
[Huawei]ip route-static 1.1.1.1 32 192.168.10.2
[Huawei]ospf
[Huawei-ospf-1]import-route static
[Huawei-ospf-1]import-route direct
[Huawei-ospf-1]dis th
R3
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.30.1 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.20.2 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]ip add 192.168.40.1 24
[Huawei-GigabitEthernet0/0/2]un sh
Info: Interface GigabitEthernet0/0/2 is not shutdown.
[Huawei-GigabitEthernet0/0/2]int loop0
[Huawei-LoopBack0]ip add 3.3.3.3 32
[Huawei-LoopBack0]q
[Huawei]ospf
[Huawei-ospf-1]a 0
[Huawei-ospf-1-area-0.0.0.0]net 192.168.30.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]a 1
[Huawei-ospf-1-area-0.0.0.1]net 192.168.20.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]net 3.3.3.3 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]q
[Huawei-ospf-1]q
[Huawei]ip route-static 0.0.0.0 0 192.168.40.2
[Huawei]q
[Huawei]ospf
[Huawei-ospf-1]default-route-advertise always
[Huawei-ospf-1]import-route direct
[Huawei-ospf-1]q
R4
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.30.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.50.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int loop0
[Huawei-LoopBack0]ip add 4.4.4.4 32
[Huawei-LoopBack0]q
[Huawei]ospf
[Huawei-ospf-1]a 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.30.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0]q
[Huawei-ospf-1]rip
[Huawei-rip-1]net 192.168.50.0
[Huawei-rip-1]version 2
[Huawei-rip-1]un summary ri
[Huawei-rip-1]q
[Huawei]rip
[Huawei-rip-1]import-route ospf 1 cost 2
[Huawei-rip-1]ospf 1
[Huawei-ospf-1]import-route rip 1 type 1 cost 1
[Huawei-rip-1]default-route originate
[Huawei-rip-1]q
R5
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.40.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int loop0
[Huawei-LoopBack0]ip add 5.5.5.5 32
[Huawei-LoopBack0]q
[Huawei]ip route-static 0.0.0.0 0 192.168.40.1
R6
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.50.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int loop0
[Huawei-LoopBack0]ip add 6.6.6.6 32
[Huawei-LoopBack0]q
[Huawei]rip
[Huawei-rip-1]network 192.168.50.0
[Huawei-rip-1]network 6.0.0.0
[Huawei-rip-1]version 2
[Huawei-rip-1]un summary
[Huawei-rip-1]q