OSPF(Open Shortest Path First)是一个内部网关协议(Interior Gateway Protocol,简称IGP)。与RIP相对,OSPF是链路状态路协议,而RIP是距离向量路由协议。 链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。可用于大型网络。
OSPF路由器收集其所在网络区域上各路由器的连接状态信息,即链路状态信息(Link-State),生成链路状态数据库(Link-State Database)。路由器掌握了该区域上所有路由器的链路状态信息,也就等于了解了整个网络的拓扑状况。OSPF路由器利用“最短路径优先算法(Shortest Path First, SPF)”,独立地计算出到达任意目的地的路由。
在OSPF协议下的路由器工作流程:
外部AS:一般来讲是运行另一个路由选择协议的区域,比如RIP,EIGRP等。
骨干区域:Area 0,所有区域都必须(一般情况下)通过骨干区域进行区域间的路由信息传输。
标准区域:同上,即最普通的区域。
末梢区域:Stub Area,不接收外部AS(AS代表同一路由协议下的路由区域)的路由信息。
完全末梢区域:Totally Stub Area,不接收外部AS的路由信息,同时也不接收本AS中其他Area的路由汇总。
非纯末梢区域:NSSA(Not-So-Stub-Area),允许接收外部AS中以类型7的LSA发送的路由信息,并且ABR将类型7的LSA转换成类型5的LSA在本AS内进行发送...
DR:指定路由器,一个区域中的主路由器,当其他路由发数据给它时,指定路由器负责通知所有路由器。
BDR:备份指定路由器,一个区域中的备份路由,作为备份路由,当主路由不工作时,备份会充当主路由器。
ABR:连接不同区域边界的路由器。
ASBR:连接不同AS区域的路由器
other Router:在同一Area下的非DR,BDR的路由器
Down状态---端口接收到hello信息包后,激活init状态,只能接收hello包,不能发送hello包
init状态----进行系统初始化
Two way状态----进入双向状态,即可以接收hello,也可以发送hello包,此时选举出两个最大的routeID,不会确定DR和BDR---
ExStart状态下,会确定DR和BDR身份。
Exchange状态下,会交换DBD数据库,同会接收到LSACK确认报文。
Loading状态下,最繁忙的状态,包的种类多,有LSR(请求更详细的数据),LSU(包含多个LSA),LSACK(确认报文),形成路由表。
Full状态下,稳定状态(收敛)开始转发(通信)数据包。
Hello报文:通过周期性地发送来发现和维护邻接关系;
DD(链路状态数据库描述)报文:描述本地路由器保存的LSDB(链路状态数据库);
LSR(LS Request)报文:向邻居请求本地没有的LSA;
LSU(LS Update)报文:向邻居发送其请求或更新的LSA;
LSAck(LS ACK)报文:收到邻居发送的LSA后发送的确认报文。
OSPF路由器之间交换链路状态公告(LSA)信息。OSPF的LSA中包含连接的接口、使用的Metric及其他变量信息。OSPF路由器收集链接状态信息并使用SPF算法来计算到各节点的最短路径。LSA也有几种不同功能的报文,在这里简单地介绍一下:
LSA TYPE 1:router LSA由每台路由器为所属的区域产生的LSA,描述本区域路由器链路到该区域的状态和代价。一个边界路由器可能产生多个LSA TYPE1。
LSA TYPE 2:network LSA由DR产生,含有连接某个区域路由器的所有链路状态和代价信息。只有DR可以监测该信息。
LSA TYPE 3:summary LSA由ABR产生,含有ABR与本地内部路由器连接信息,可以描述本区域到主干区域的链路信息。它通常汇总缺省路由而不是传送汇总的OSPF信息给其他网络。
LSA TYPE 4:Summary LSA由ABR产生,由主干区域发送到其他ABR, 含有ASBR的链路信息,与LSA TYPE 3的区别在于TYPE 4描述到OSPF网络的外部路由,而TYPE 3则描述区域内路由。
LSA TYPE 5:AS External LSA由ASBR产生,含有关于自治域外的链路信息。除了存根区域和完全存根区域,LSA TYPE 5在整个网络中发送。
LSA TYPE 6:multicast OSPF LSA,MOSF可以让路由器利用链路状态数据库的信息构造用于多播报文的多播发布树。
LSA TYPE 7:Not-So-Stubby LSA由ASBR产生的关于NSSA的信息。LSA TYPE 7可以转换为LSA TYPE 5。
给R1,R2,R3增加磁盘空间
配置R1
给R1的接口配置IP地址
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.10.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int f0/1
R1(config-if)#ip add 192.168.20.1 255.255.255.0
R1(config-if)#no shut
给R1增加路由ID
R1(config-if)#exit
R1(config)#int loopback 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
给R1配置OSPF协议
R1(config-if)#exit
R1(config)#router ospf 1 //进入OSPF模式下
R1(config-router)#router-id 1.1.1.1 //添加路由id
R1(config-router)#network 192.168.10.1 0.0.0.255 area 0
R1(config-router)#network 192.168.20.1 0.0.0.255 area 0
查看R1的配置信息
R1(config-router)#do show ip int b
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.10.1 YES manual up up
FastEthernet0/1 192.168.20.1 YES manual up up
Loopback0 1.1.1.1 YES manual up up
配置R2
给R2的接口配置IP地址
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 192.168.20.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int f0/1
R2(config-if)#ip add 192.168.30.1 255.255.255.0
R2(config-if)#no shut
给R2增加路由ID
R2(config)#int loopback 0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
给R2配置OSPF协议
R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 192.168.20.0 0.0.0.255 area 0
R2(config-router)#network 192.168.30.0 0.0.0.255 area 0
查看R2的配置信息
R2(config-router)#do show ip int b
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.20.2 YES manual up up
FastEthernet0/1 192.168.30.1 YES manual up up
Loopback0 2.2.2.2 YES manual up up
R2(config-router)#do show ip route //查看路由表
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/11] via 192.168.20.1, 00:03:44, FastEthernet0/0
2.0.0.0/16 is subnetted, 1 subnets
C 2.2.0.0 is directly connected, Loopback0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/11] via 192.168.30.2, 00:00:29, FastEthernet0/1
C 192.168.30.0/24 is directly connected, FastEthernet0/1
O 192.168.10.0/24 [110/20] via 192.168.20.1, 00:03:44, FastEthernet0/0
O 192.168.40.0/24 [110/20] via 192.168.30.2, 00:00:29, FastEthernet0/1
C 192.168.20.0/24 is directly connected, FastEthernet0/0
配置R3
给R3的接口配置IP地址
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 192.168.30.2 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int f0/1
R3(config-if)#ip add 192.168.40.1 255.255.255.0
R3(config-if)#no shut
给R3增加路由ID
R3#conf t
R3(config)#int loopback 0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
给R3配置OSPF协议
R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 192.168.30.0 0.0.0.255 area 0
R3(config-router)#network 192.168.40.0 0.0.0.255 area 0
查看R3的配置信息
R3(config-router)#do show ip int b
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.30.2 YES manual up up
FastEthernet0/1 192.168.40.1 YES manual up up
Loopback0 3.3.3.3 YES manual up up
R3(config-router)#do show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/21] via 192.168.30.1, 00:00:09, FastEthernet0/0
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/11] via 192.168.30.1, 00:00:09, FastEthernet0/0
3.0.0.0/16 is subnetted, 1 subnets
C 3.3.0.0 is directly connected, Loopback0
C 192.168.30.0/24 is directly connected, FastEthernet0/0
O 192.168.10.0/24 [110/30] via 192.168.30.1, 00:00:09, FastEthernet0/0
C 192.168.40.0/24 is directly connected, FastEthernet0/1
O 192.168.20.0/24 [110/20] via 192.168.30.1, 00:00:12, FastEthernet0/0
R3(config-router)#
配PC1,PC2
给PC1配置IP地址
PC1> ip 192.168.10.10 192.168.10.1
Checking for duplicate address...
PC1 : 192.168.10.10 255.255.255.0 gateway 192.168.10.1
给PC2配置IP地址
PC2> ip 192.168.40.40 192.168.40.1
Checking for duplicate address...
PC1 : 192.168.40.40 255.255.255.0 gateway 192.168.40.1