OSPF(Open Shortest Path First开放式最短路径优先)

是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(Autonomous System,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法(Dijkstra)算法被用来计算最短路径树。OSPF分为OSPFv2OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。OSPFv2是由RFC 2328定义的,OSPFv3是由RFC 5340定义的。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。

OSPF的基本配置(单区域)

Router(config)#router ospf process-id
Router(config-router)#network address inverse-mask area [area-id]
Router#show ip route ospf (显示所有通过ospf学习到的路由)
Router#show ip ospf interface (显示ospfrouter IDarea ID,邻接关系等信息)
Router#show ospf (显示ospfrouter ID,计时器等信息)
Router#show ospf neighbors [detail] (显示ospf邻居信息,包括DRBDR的信息)

OSPFRouter ID
1. 路由器了解OSPF网络是通过Router ID的;
2. 链路状态数据库是使用Router ID来区分的;
3. 默认的情况下,Router ID是使用在启用OSPF进程时路由器上活跃端口中IP地址最大的IP地址作为Router ID的;
4. 如果在路由器上设置了loopback端口,则由启用OSPF进程时路由器上活跃loopback端口中IP地址最大的IP地址作为Router ID的;
5. 可以使用router-id这个命令来更改OSPFRouter ID

OSPF中路由器的类型和LSA

当一个网络很大,而且使用单区域的OSPF时,一个小的网络变化便会发出一个LSA,而且传遍整个网络。每个路由器会收到很多的LSA。还有一个就是使用单区域时,由于路由器很多,所以,链路状态数据库会很大,邻居表和路由表也会相应的变大的,消耗掉了很多内存。每次的网络变化,通告LSA之后,每个路由器就会重新计算路由。

当网络很大的时候,通常会把网络划分为若干个区域,主干区域和非主干区域。但是必须设置成为层次性的结构。所有的非主干区域要和主干区域连接在一起。每个区域内的路由器只需要知道自己区域内部的链路状态就可以了,相应的邻居表和路由表也小了。

OSPF中路由器的类型:
1. 主干路由器:在区域0里面的路由器都是主干路由器;
2. 区域边界路由器:在区域的边界连接两个区域的路由器;
3. 自治域系统边界路由器:在自治域系统边界上连接两个自治域系统的路由器;
4. 内部路由器:除了边界路由器以外的路由器;

LSA的类型:
1. 类型1,路由的链路通告;
2. 类型2,网络的链路通告;
3. 类型3或者4,汇总的链路通告;
4. 类型5,自治域系统外的链路通告;
5. 类型6,多播的OSPFLSA
6. 类型7,定义使用在SSA区域中的;
7. 类型8,扩展属性的LSA或者用于BGP
而通常在路由器上配置的就是123457这几种。

类型1LSA
1. 是一个路由器自己生成的只在区域内进行传输,包含了直连的链路和分配到每条链路的IP地址等信息;
2. 通常都是用RouterID来标识路由器;
3. 仅仅是在区域内洪泛,不会通过ABR洪泛到其他区域;

类型2LSA
1. 是传给一个区域中的每一个广播网络或者NBMA网络的,其中包括:在这个链路上连的路由器有哪些和这条链路上的子网掩码是什么;
2. 是由DR在广播介质中通告的;
3. 仅仅是在区域内洪泛,不会通过ABR洪泛到其他区域;

类型3LSA
1. 是由ABR生成的,是把一个特定区域的路由信息传播出去;
2. 传播的是一个区域的路由信息而不是链路状态信息,其他区域的路由器只知道去某个目的如何走,但是不知道那个区域内部的其他任何信息;
3. 可以洪泛到这个AS内部;

类型4LSA
1. 用来宣告有ASBR路由器到这个AS内所有的区域;
2. 可以洪泛到整个AS内部;
3. 只包含ASBRRouter ID
4. 每经过一个ABR都会重新生成一次,重新生成后,其中包含的Router ID会发生变化,变为重新生成的LSA的路由器的Router ID

类型5LSA
1. 是由ASBR宣告的,可以洪泛到整个AS内部的;
2. 经过ABR不会改变其中的Router ID
3. 是用来通告AS外部的路由信息的;