OSPF
开放式最短路径优先协议:
目前使用范围最广泛的IGP协议;无类别链路状态路由协议;
OSPF协议最大的缺点,在于基于拓扑收敛产生巨大的更新量;
故设计者在设计ospf协议过程中,使用了很多的机制来减少更新量-----结构的部署
- 区域划分—单区域内传递拓扑 用于每台路由器本地计算到达所有未知网段的最短路径 区域间传递计算完成后的路由条目信息
- 合理的IP地址规划—一个区域可以汇总成一个网段为最佳
- 特殊区域
- 30min周期的更新
数据包类型
- hallo包:发现、建立、周期保活邻居、邻接关系
- DBD包 – 数据库描述包:本地数据库的目录(照耀)
- LSR包 – 链路状态查询:基于DBD包中的位置信息进行查询
- LSU包 – 链路状态更新:用于答复对端的LSR,携带各种LSA
- LSAck – 链路状态确认:确认包,保证可靠性
状态机
- down:一旦进行hello的手法,进入下一状态
- Init初始化:接收到的hello包中存在本地的route-id,进入下一状态
- 2way双向通信:邻居关系建立的标志
- 条件匹配:
- 若匹配失败保持为邻居关系,仅hello包周期保活即可;
- 若匹配成功,则进入下一状态
- exstart预启动:使用类似hello包的DBD进行主从选举,利用HELLO报文中的ID和优先权来进行选举,不允许抢占,DR没了,DBDR才能上;DR优先进入下一状态
- exchange准交换:使用真正的DBD包进行数据库目录的共享;
- loading 加载:使用LSR/LSU/LSack来获取未知的LSA信息;
- full转发:邻接关系建立的标志
LSA
Router-LSA(一类LSA):
Type | Link ID | Data |
---|---|---|
P2P | 邻居的Router ID | 该网段上本地接口的IP地址 |
TransNet | DR的接口IP | 该网段上本地接口的IP地址 |
StubNet | 该Stub网段的IP地址 | 该Stub网段的网络掩码 |
Virtual | 虚链路邻居的Router ID | 始发路由器的虚链路接口的IP地址 |
Network-LSA(二类LSA):
- 功能:藐视MA网络中所存在的所有路由器,该MA网络的网络掩码是多少。
- 范围:在本区域内传输,终止于ABR
- Link ID:MA网络中DR的接口地址
- ADV:DR接口所属路由器的router-id
- Mask:该网络上使用的地址或者子网的掩码
Network-Summary-LSA(三类LSA):由ABR产生
- 功能:用于在不同区域内传递路由信息,不含拓扑信息
- 传播范围:在区域内传递(进入其他区域市必须由新的ABR重新产生)
- Link-ID:传递路由的网络号
- ADV:默认为本区域ABR的router-id,在穿越不同区域时改变
- Mask:所通告的网络的子网掩码
ASBR-Summary-LSA(四类LSA):外部LSA
- 功能:用于宣告ASBR的位置
- 传播范围:整个OSPF域间传递(进行重发布路由器所在的区域除外)
- link-id:ASBR-router-id
- ADV:ASBR所属区域的ABR的router-id(穿越不同区域是发生改变)
- Mask:0.0.0.0,无实际意义
External-LSA(五类LSA):外部LSA
- 功能:将外部路由引入OSPF域中
- 传播范围:整个OSPF域
- link-id:通告的外部路由网络号
- ADV:ASBR router-id
- mask:通告网络的子网掩码
- E:指定该条路由使用的外部度量的类型。E=1,则是E2;E=0,则是E1
- FA地址:达到所通告的目的地的数据包应该被转发到的地址。若FA为0.0.0.0,则会被默认转发到ASBR上
汇总
LSA类别 | 传播范围 | 通告者 | 携带信息 | link-id | 通告者 |
---|---|---|---|---|---|
LSA-1 router | 本地设备所在区域 | 该区域每台设备的RID | 每台设备本地所在区域的直连拓扑 | 通告者的RID | 本区域内每台设备必须发送 |
LSA-2 Network | 本地设备所在区域 | DR | 单个MA网段的拓扑 | DR的接口ip地址 | 每个MA网段中的DR |
LSA-3 summary | 整个OSPF域 | ABR | 域间路由 | 域间路由目标网络号 | ABR,在经过下一台ABR时,修改为新的ABR的RID |
LSA-4 asbr | 除ASBR所在的区域外的整个ospf域; asbr所在区域基于1类交代位置 | ABR | ASBR位置 | ASBR的RID | 和ASBR同一区域的ABR,在经过下一台ABR时,修改为新的ABR的RID |
LSA-5 external | 整个OSPF域 | ASBR | 域外路由 | 域外路由目标网络号 | ASBR |
LSA-7 NSSA | 本地的NSSA区域 | ASBR | 域外路由 | 域外路由目标网络号 | ASBR; 离开本地NSSA区域时转换为5类 |
特殊区域
ospf的特殊区域是为了减少非骨干区域的更新量 – 不能时骨干区域,不能窜在虚链路
-
不能存在ASBR
-
末梢区域 stub:拒绝4/5类的LSA;
生成一条3类的缺省路由指向骨干区域;
切记:该区域所有设备均需要定义为末梢区域;
-
完全末梢区域:在末梢区域的基础上,进一步拒绝3的lsa,仅保留一条3类的缺省;
先将该区域配置为末梢,区域然后仅在abr上定义完全即可;
-
-
存在ASBR
-
NSSA 非完全末梢区域—该区域拒绝其他区域的ASBR产生的4/5LSA;
本地区域内ASBR产生的5类LSA,以7类在本区域传播,从本区域进入骨干区域时由ABR(新的ASBR)转换为5类;
同时自动产生一条7的缺省指向骨干区域
本区域内所有设备均需配置
-
完全NSSA –在NSSA的基础上,进一步拒绝3的LSA;
生成一条3类缺省指向骨干区域;先将该区域配置为NSSA区域,然后仅在ABR上定义完全即可
切记:
考虑到ISP连接网络后,产生的缺省路由与OSPF特殊区域产生的缺省可能导致环路;
ISP连接到的哪个区域,那么该区域不能设定为任何的特殊区域;
-
接口类型
网络类型 | 接口封装 | OSPF工作方式(接口网络类型) |
---|---|---|
环回 | 虽然查看为点到点工作方式,但实际没有hello包收发;环回默认传递为32位主机路由; | |
点到点 | 串行PPP/HDLC | 点到点工作方式,hello time10s;自动建邻,不选DR/BDR |
BMA | 以太网 | Broadcast工作方式,hello time 10s;自动建邻,DR/BDR |
NBMA | MGRE | 默认和普通GRE一样为点到点的工作方式 该方式仅允许两个节点,故多节点将无法正常通讯; 修改接口工作的方式可以进行解决; |
注:若该NBMA网络工作在较小的网络环境下,建议修改为broadcast工作方式;
但若在较大的网络环境中工作,因为所有的数据库同步实际通过了tunnel传递,消耗大量的硬件和带宽资源,建议修改为点到多点工作方式:
- hello time 30s
- 不选DR/BDR
- 分支站点间不再进行LSA同步,所有路由的下一跳和LSA的学习全部指向中心站点;
- 管理员还需要将各个分支站点的路由条目进行汇总,最终减少整个网段的更新量;
- 还应该进行多中心站点的部署;
切记:在NBMA网络中,若使用broadcast工作方式,必须保证该网段所有设备定义的DR为同一台设备;
选路规则
- 拓扑优于路由:1/2LSA计算所得路由优于3/4/5/7类计算所得
- 内部优于外部: 3类优于4/5/7类
- 类型1优于类型2:E1优于E2,N1优于N2,E1优于N2,N1优于E2;
- E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类