**协议**
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部
**AD值**
思科OSPF的协议管理距离是110
华为OSPF的协议管理距离是150
**链路状态**
链路式路由器接口的另一种说法,因此OSPF也称为接口状态路由协议;OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表
**原理**
#建立邻接表
#同步数据库
#计算路由表
**区域分类**
骨干:0区域
非骨干:不是0区域的
**Hello协议的目的**
1.用于发现邻居
2.在成为邻居之前,必须对Hello包里的一些参数协商成功
3.Hello包在邻居之间扮演着keepalive的角色
4.允许邻居之间的双向通信
5.它在NBMA(Nonbroadcast Multi-access(非广播地址))网络上选举DR和BDR
**建立邻居影响因素**
1、RID不能相同;
router ospf 1
router-id x.x.x.x
clear ip ospf process
2、区域ID必须相同;
3、认证必须成功(认证类型必须相同,并且密码必须相同)
4、子网掩码必须相同(特殊情况下)
5、hello时间必须相同;
interface fas0/0
ip ospf hello-interval {value}
6、dead时间必须相同;
interface fas0/0
ip ospf dead-interval {value}
7、特殊标记位必须相同;
8、优先级必须不能全为0(特殊情况下)
9、3层MTU必须相同,否则会卡在Exatart状态
Interface fas0/0
Ip mtu +num(如1499)
**OSPF状态**
1.Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组是,使用组播地址224.0.0.5。
2.Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发 送Hello包.
3.Init:初始化收到了Hello包,但是2-Way通信仍然没有建立起来.
4.two-way: 双向会话建立,而 RID 彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。
5.ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,路由器ID大的的成为Master.
6.Exchange: 信息交换状态:本地路由器和邻居交换一个或多个DBD分组(也叫DDP) 。DBD包含有关LSDB中LSA条目的摘要信息)。
7.Loading: 信息加载状态:收到DBD后,使用LSACK分组确认已收到DBD.将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则想对方发送一个LSR,用于请求新的LSA 。
8.Full: 完全邻接状态,该状态表示双方的数据库完全同步
**DR与BDR的选取原则**
1.优先级为0的不参与选举
2.优先级高的路由器为DR
3.优先级相同时,以router ID 大为DR。router ID 以回环接口中最大ip为准。若无回环接口,以真实接口最大ip为准。
4.缺省条件下,优先级为1
**OSPF定义的5种网路类型**
类型 | 2层 | Hello与dead | DR/BDR | 是否主动发包 |
broadcast :广播 (MA , multi-access) | 当2层协议为ethernet时, 对应的是广播网络类型; | hello是10s; dead是40s | 需要选举DR/BDR | 端口主动发包,发包方式为组播(224.0.0.5/6) |
non-broadcast : 非广播。(NBMA)
| 当2层协议为Frame-relay时, 对应的是非广播网络类型; | hello是30s; dead是120s | 需要选举DR/BDR; | 端口不主动发包,发包方式为单播; 【OSPF实现单播:neighbor x.x.x.x】 |
point-to-point 点到点(P2P) | 当2层协议为HDLC\PPP时, 对应的是点到点网络类型; | hello是10s; dead是40s | 不需要选举DR/BDR; | 端口主动发包,发包方式为组播(224.0.0.5) |
point-to-Multipoint: 点到多点(p2mp) | hello是30s; dead是120s; | 不需要选举DR/BDR; | 端口主动发包,发包方式为组播(224.0.0.5)
| |
point-to-Multipoint non-broadcast: 点到多点(p2mp-NB) | hello是30s; dead是120s; | 不需要选举DR/BDR; | 端口不主动发包,发包方式为单播 |
**LSA类型**
1类LSA:router LSA | 任何一个路由器,都会在任何一个区域中产生一个 1类LSA ; 可以将1类LSA理解为“自我介绍”,用于说明本身有哪些链路进入了该区域,并且是连接着哪些设备,是如何连接的;到对方的距离是多少; 1类LSA只能在一个区域内部进行传输 | link-id:路由器的RID adv:路由器的RID 传输范围:只能在一个区域内部 ADV是否变化:不变化 |
2类LSA:net Link state | 这种类型的 LSA ,只有在选举DR的网络环境中才会有。 只有DR才有资格产生 2 类 LSA | link-id:表示的是 DR 的接口IP地址; ADV:DR的 RID ; 传输范围:一个区域内部 ADV是否变化:不变化;
// 基于 LSDB 中的1类LSA 或者 1和2类LSA,就可以计算出一个区域内部的路由,叫做 O 的路由; |
3类LSA:summary net link state | 在不同的区域之间传输路由信息; 这种类型的LSA,仅有 ABR 可以产生。 3类LSA被ABR产生以后,首先进入到 OSPF 区域0,然后再转发到其他区域。 | ABR: 1、可以将非0区域中的“域内-O”路由,转变成3类LSA,发送到0区域;
2、可以将0区域中的“域内-O”路由,转变成3类LSA,发送到非0区域;也可以将0区域中的“域间-OIA”路由,转变成新的3类LSA,发送到其他的非0区域中; 3、一定不可以将非0区域中的3类LSA转发到0区域; link-id:表示的是路由的前缀; adv:ABR的RID; 传输范围:一个区域内部 ADV是否变化:是; |
4类LSA:summary ASB link state | 专门是为了辅助5类LSA计算路由而生的; 传递的信息是 ASBR 的 RID ; 是由与 ASBR在同一个区域的 ABR 产生的; 传递过程中每经过一个ABR,ADV都会变化一次。 | link-id:表示的是 ASBR的 RID; adv:ABR 传输范围:同一个区域内部; ADV是否变化:是的; |
5类LSA:external LSA | 表示的是OSPF的外部路由,没有任何区域概念; 可以在OSPF网络中畅通无阻。 哪里有OSPF,哪里就有5类LSA。 | link-id:表示的是外部路由前缀; adv:ASBR的 RID ; 传输范围:没有限制; ADV是否变化:否 |