|
ospf协议:OSPF最短路径优先协议,是IEIE组织建议使用的内部网关协议,数据链路状态协议,使用Dijkstra的最短路径算法,其协议号为89。OSPF分骨干区域和非骨干区域。
router-id:在ospf协议每台路由器都要有自己的标识即router-id,其选举方式可以手工指定,然后是lookback口的最高IP,最后是最高的活动接口IP(就是物理接口开启的接口IP)。
OSPF五报文七状态:
1、hello(t=1)起作用是发现邻居,建立邻居关系和维护邻居关系,选举DR和BDR。根据网络类型的不同气更新时间间隔也有不同。NBMA和点到点是30S。而其他类型是10S。dead interval是hello interval的4倍。
hello包主要包括:router-id、area-id、hello/dead interval、neighbor、router priority、DR和BDR的ipaddress、stub area flag、authentication password(只有横线中的相同才能建立邻居关系
2、DBD(t=2):数据库描述信息,用于描述数据库链路状态摘要,其内容是发送LSA头部信息。
3、LSR:链路状态请求报文-单播方式发送
4、lsu:链路状态更新报文-单播方式发送
5、LSACK:报文确认-单播方式发送。
七状态:down、init(NBMA另外还会在down后进入attemp,此时用hello interval代替poll interval)。exstart、exchange、loading、full。
poll interval:在dead后没收到hello包则,每60秒向处于down的邻居发hello包,这是由于NBMA的非广播需要手工配置(在其余的网络里当在dead后没收到hello包则认为邻居失效)
七状态:
1.down state:路由器还末收到邻居发来的HELLO包.(NBMA另外还会在down后进入attemp,就是为NBMA网络中的一个正常过滤状态,即我发送了HELLO等待对方的回应,如果对方不回应则一直滞留在此状态。此时用hello interval代替poll interval)。poll interval:在dead后没收到hello包则,每60秒向处于down的邻居发hello包,这是由于NBMA的非广播需要手工配置(在其余的网络里当在dead后没收到hello包则认为邻居失效)
2.init state:路由器收到邻居发来的HELLO包,但在邻居阶段中看不到自己的ROUTER-ID
5.exchange state:主从协商完成后,进行DBD的同步
1.R1的接口上启用了OSPF后,会向外组播发送OSPF的HELLO报文。R2也开始发送组播,并且当R1和R2都接到对方发送的hello包后进入init状态。随后对接受到的hello包进行回复,R1接受到R2的回复信息中发现自己的router-id则转为two-way状态,R2在接收到R1的hello包中发现自己的router-id也转为twoway状态。[color=rgb(85,]R2的mtu不匹配则无影响,因为这时不用再进入[color=rgb(85,]
R2收到R1发来的DBD中的LSA头部信息,同时向R1发送DBD报文,携带LSA的头部。(I=0,M=1,MS=1)不为第一个包,后面还有包,为主,序列号+1 为1191。同时R2先知道自己的数据库是否同步,所以发送LSR,请求没同步的LSA,R1收到R2发过来的BDB,要发送DBD的确认给DBD的主路由器也就R2,同时R1没有DBD的包了,所以M=0,表示为最后一个DBD包。(但如果主再发DBD包过来,从还是要发DBD进行确认,这叫隐式确认)此时,R1也知道自己的数据库哪些末同步,也向R2发送LSR请求末同步的LSA,也就是一些LSA的头部信息在发送LSR时就进入了loading状态。最后R1和R2的LSA完全同步了,进入FULL状态,R1和R2建立邻接关系,每隔10s发送HELLO报文,运行SPF算法计算路由,把最最佳路由加入到全局路由表中。
今天先写到这边,要睡觉了,明天继续补,后面写得不详细,明天做完实验在另作修改,纯属个人总结。。。
该贴已经同步到 luckychao的微博 |
|