一  OSPF (开放式最短路径优先)

  ①基于IP,端口号89,组播,没有环路机制。

  ②链路状态路由协议    AD 110   

  ③COST (链路开销)=10^8/接口带宽

  ④带宽越窄,成本开销越大

      带宽与开销成反比

 ⑤ 默认优先级:内部    10     外部     150        静态   60 

 ⑥关心花销,带宽

 

二  OSPF  报文类型

    ① Hello    建立维护ospf 和邻居关系  (建立  维护)

    ②DBD    链路状态数据库描述信息   (摘要)

    ③ LSR   链路状态请求,向ospf 邻居请求链路状态信息  (答复)

    ④LSU    链路状态更新 (请求)

    ⑤LSAck  对LSU中 的LSA进行确认(确认)

三  OSPF 三张表

   ①邻居表  

   ②拓扑表

   ③OSPF 路由表


四  OSPF 协议工作的过程

寻找邻居,建立邻居关系,链路状态信息传递,计算路由

五 OSPF 网络类型

① 广播   支持广播的多路访问

 ②点对点 (P2P)

 ③点到多点  (P2MP)

 ④NBMA

六   DR    BDR 

① DR 主  (指定路由)

② BDR 备 (备份指定路由)

注:ospf选举路由时,cost值不会影响选举DR/BDR ,它只影响路由算法。

   选举DR  BDR 规则:①接口优先级越大,越优先被选为DR

                ② 如果优先级一样,看router-id 越大越优先

                ③ 若路由器没有设置 router-id  那么选接口的IP地址,越大越优先。 

七 OSPF     的优化

①HELLO 时间

②BFD

③ spf1-100 

④ 接口类型

八 OSPF 区域

 骨干区域    非骨干区域 


九 通配符掩码    :就是反掩码的而俗称


十 

OSPF-- LSA类型


定义了不同的路由器类型,因此需要多种LSA, 通常考试考Type1 , Type2, Type3,Type4,Type5, Type7。

type1 是router lsa , 所有的ospf speaker都会产生该类lsa,只在区域内传播,包括路由器自身的拓扑信息,和路由信息。

type2是network lsa,只在MA网络中出现的2类LSA由DR产生,包括DR相连的所有网络的信息,只在区域内传播。

type3是network summary lsa,由ABR产生,告知区域内路由器区域外的路由条目, 当有多个ABR时使用cost来确定,这个cost是由区域内路由器将外部路由cost和内部cost简单相加所得(metric-type 1), 而不是运行SPF算法,因此 可以说在区域内OSPF是一种链路状态协议,而在区域间是一种距离矢量协议

type4是ASBR summary, 由ABR产生,用来广播ASBR的位置, 用show ip ospf database 可以看到type4 lsa总是一个host mask 255.255.255.255,并且type5是数据库中唯一没有area 属性的lsa。

type5是external summary,由ASBR产生,是非ospf设备的路由信息, 通常在一个大型网络中,路由器的数据库中会存在大量的此类lsa, 给路由器形成较重的负荷。因此我们可以用stub area 来限制此类lsa的传播。

但是考虑以下情景,如果一台运行ospf的路由器需要连接一个非ospf网络net1,并将非ospf网络中的路由条目通告到ospf中,而又不想在数据库中保存大量的由其他路由器通告的外部网络路由

,那么这时我们不可以用stub,因为这将阻止所有的external路由,ospf网络将丢失net1的路由信息, type 7 因此被写入了ospf标准。 为了解决这个问题, cisco 规定了nssa, type7在nssa中传播external route,在nssa 的ABR上,type7 被转换成type5 (当然必须type7 lsa P-bit=1),然后由ABR将这些路由条目通告到backbone。


十一

OSPF邻接的状态 

1.Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组使用组播地址224.0.0.5。 
2.Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发送Hello包. 
3.Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来. 
4.two-way: 双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。) 
5.ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master. 
6.Exchange: 信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也叫DDP)。DBD包含有关LSDB中LSA条目的摘要信息)。 
7.Loading: 信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA。 
8.Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请求列表为空且邻居状态为Loading判断。


十二 

OSPF七种状态(邻居和邻接)  

1 Down状态——在Down状态下,OSPF进程还没有与任何邻居交换信息。OSPF在等待进入Init状态。
2 Init状态——OSPF路由器以固定的时间间隔(缺省10s)发送类型1(Hello)的分组,以便与邻居路由器建立特殊的关系。
3 Two-Way(双向)状态——每台OSPF路由器都使用分组试图与同一个IP网络中的所有邻居路由器建立双向状态或双向通信。Hello分组中含有发送者已知的OSPF邻居列表。当路由器看到它自己出现在一个邻居路由器的Hello分组中时,它就进入了双向状态。
4 ExStart(准启动)状态——当路由器与它的邻居进入到ExStart状态后,他们之间的会话就表征为一种毗邻关系,但这时路由器还没有变成全毗邻状态。ExStart状态是使用类型2的数据库描述(DBD,DataBase  Description)分组建立的,两个路由器用Hello分组协商在它们之间的关系谁是“主”,谁是“从”。(具有最高OSPF路由器ID的路由器将胜出并变成“主”)
5 Exchange(交换)状态——在交换状态下,邻居路由器使用类型2的DBD分组来互相发送它们的链路状态信息,也就是说路由器相互描述它们的链路状态数据库。路由器将它们所学到的信息与其现存的链路状态数据库进行比较,并且单独确认每个DBD分组,如果任何一台路由器接收到不在其数据库中的链路信息,该路由器就向其邻居请求有关该链路的完整更新信息。完整的路由信息在“Loading(加载)”状态下被交换。
6 Loading(加载)状态——在相互描述过各自的链路状态数据库之后,路由器可以用类型3的链路状态请求(LSR)分组来请求更完整的信息。当路由器接收到一个LSR的时候,它会用一个类型4的链路状态更新(LSU)分组进行回应。这些类型4的LSU分组含有确切的LSA,而LSA是链路状态型路由选择协议的核心,类型4的LSU分组由类型5的分组所确认。
7 Full Adjacency(全毗邻)状态——加载状态结束之后,路由器就进入全毗邻状态。每台路由器都保存着一张毗邻路由器列表,它就是称为毗邻数据库


十三 

影响OSPF的邻居关系或邻接关系的因素?(OSPF建立邻居关系成功的标志)  

1、Router-ID不相同;
2、Hello时间必须一致;
3、Dead时间必须一致;
4、区域ID必须相同;
5、认证必须相同;
6、Option字段中LSA支持位必须相同(特殊区域);
7、MTU不匹配无法形成邻接关系(一边是EXSTART,一边是EXCHANGE);
8、OSPF版本号不同(目前版本为2);
9、当OSPF网络类型是MA时,要求掩码一定一致(两个邻居)。因为会出现DR和LSA-2,无法描述网段



十 四  小实验  OSPF 

OSPF _OSPF

R1 

R1(config)#int s 0/1

R1(config-if)#ip add 192.168.12.1 255.255.255.0

R1(config-if)#no shu

R1(config-if)#exi

R1(config)#router ospf 1

R1(config-router)#network 192.168.12.0 0.0.0.255 area 0

R1#show ip route

R1#show ip ospf neighbor

R2 

R2(config)#int s 0/0

R2(config-if)#ip add 192.168.12.2 255.255.255.0

R2(config-if)#no shu

R2(config-if)#int s 0/1

R2(config-if)#ip add 192.168.23.2 255.255.255.0

R2(config-if)#no shu

R2(config)#router ospf 1

R2(config-router)#network 192.168.12.0 0.0.0.255 area 0

R2(config-router)#network 192.168.23.0 0.0.0.255 area 0

R2(config-router)#net

R2(config-router)#network

R2#show ip route

R2#show ip ospf neighbor

R3 

R3(config)#int s 0/0

R3(config-if)#ip add 192.168.23.3 255.255.255.0

R3(config-if)#no shu

R3(config)#router ospf 1

R3(config-router)#network 192.168.23.0 0.0.0.255 area 0

R3#show ip route

R3#show ip ospf neighbor