OSPF(开放式最短路径优先协议)
- rip存在的问题:
- 适用范围比较小
- 收敛速度慢,被动计时器。
- 次优路径,对于选路的衡量方式很单一。
- 路由协议的由来:节省配置量,动态维护路由表。
- 路由协议分为:1、距离适量:不知道整张网络的top 2、链路状态:知道整张网络的top,SPF算法使用累积式来计算路由条目开销。
- OSPF的五个步骤:
- 建立邻居,hello
- 传递LSA(链路状态通告)
- LSDB同步
- SPF算法计算最短路径
- 将计算出的内容加表(OSPF表、ip表)
- OSPF的cost值的计算:
公式:参考带宽/实际带宽
参考: 10^8bit = 100M
实际:100M(1)、1000M(1)当实际带宽的值超过参考带宽后cost值都为1,所以实际带宽大时可以手动修改cost。
- OSPF报文
- 封装在ip之上,协议号89
- 报文类型:
(1)hello:建立和维护邻居关系。DR/BDR的选举
(2)DD:数据库描述,描述当前数据库里的LSA简要信息。
(3)LSR:链路状态请求,请求LSA
(4)LSU:链路状态更新,真正包含LSA的报文
(5)LSACK:确认LSA收到。
- OSPF涉及到的网络类型:(链路类型默认情况下由二层链路协议类型决定)
(1)MA:多路访问
带广播MA-----BMA
不带广播MA---NBMA
(2)P2P:点到点
P2P:点到点
P2MP:点到多点
二层协议类型 | 网络类型 |
Eth_|| | BMA |
PPP、HDLC | P2P |
FR 、ATM | NBMA |
null | P2MP(必须手动配置,修改二层协议为空) |
- DR/BDR的选举:使用hello报文参数
参数:
- 优先级: 范围0-255
默认优先级:1 数值越大优先级越高
0 该路由器不参与该MA链路的选举
2. RID :RID越大越优
注意:DR/BDR不抢占,就算有更优的也不取代DR/BDR
- BDR如何感知到DR失效:根据hello时间
hello类型 | 链路类型 | 时间 |
Hello interval | BMA/P2P NBMA/P2MP | 10s 30s |
Dead time | BMA/P2P NBMA/P2MP | 4*hello=40s 4*hello=120s |
注:当邻居达到死亡时间任没有收到hello消息,则认为邻居关系失败。
- DD报文:
DD报文中存在的比特位:
(1)I :init初始化 置1表示为第一个DD报文
(2)M :more更多位 置1表示还有LSA的描述信息需要发送
(3)M/S :Master Slave 主从位 置1表示宣称自己为主
- OSPF不同的角色可以监听不同的地址:
所有OSPF路由器都可以监听224.0.0.5
DR/BDR单独监听224.0.0.6,用于DR与BDR之间的同步。
- 选举DR等待时间 wait time = 4 * hello
- 所有的路由器中,只和DR/BDR建立连接。其他路由器(DR other)之间建立邻居关系。(MA链路)
P2P类型中,所有的路由器之间都是邻接关系。
- OSPF状态:
- down:未收到任何hello消息
- Init :收到了hello消息但是hello消息里没有自己的RID
- 2way:在hello消息中看到了自己的RID(选举DR)--邻居
- exstart:进入主从选举
- exchange:通过DD报文来获取LSR的请求列表
- loading:加载状态,可以通过LSR报文来获取真正的LSA详细信息。
- full:数据库已经同步,完全建立了邻接关系。
特殊状态:attempt(尝试状态),NBMA中存在。
================================================================================================
- OSPF的域内路由:
LSA类型:LSA1;LSA2;LSA3;LSA4;LSA5;LSA7;
- OSPF中所有LSA中,都有共同的LSA头部。
LSA type : 当前的LSA类型 router---1 ,network---2
LSA ID :不同的LSA表达的意义不同。
Advertise Router:该LSA产生者的RID。
LSA1 :LSA-ID---该LSA产生者的RID
LSA2 :LSA-ID---DR接口ip地址
- 只在单区域内传递的LSA:LSA1、LSA2
LSA1 :Router-LSA,由每一台路由器产生,每台路由器都会产生一份表达的是当前这台路由器所连接的链路(link)。
Link type | Link id | Link data | Metric |
P2P link | 接口对端路由器RID | 本接口ip地址 | 接口metric |
Transnet link | MA中DR接口ip | 本接口ip地址 | 接口metric |
Subnet link | 接口ip子网 | 子网mask | 接口metric |
Virtual link | 接口对端路由器RID | 本接口ip地址 | 累积metric |
P2P link :P2P接口网络类型
Transnet link :接口网络类型MA
Subnet link :接口P2P,或者链接的是一个末梢网络。
Virtual link:当使用OSPF虚链接时。
LSA2 :Network-LSA ,由DR产生,每个DR在一条MA链路上产生一份。
- MA链路的MASk。
- Attached router:MA链路中有多少台路由器。每一台路由器用RID表示。
- OSPF多区域,OSPF域间路由
好处:可以节省OSPF路由器在计算OSPF-TOP图以及路由器的性能消耗。
LSA3:传递的是一个路由信息,由ABR产生,在区域内传递。
LSA type:network-summary
LS-ID:目的网段地址(网络号)
ADV-router: ABR-RID
Mask:目的网段的子网掩码
Metric:ABR路由表的开销值(到达目的网段的开销值)
注:当一台路由器收到LSA3后,在计算路由时,使用LSA3开销+该路由器去往该区域ABR的开销只和为路由的开销。
- 区域边界路由器作为区域之间通信的连接者,同时维护所连接的多个区域的链路状态数据库。
- ABR将一个区域内的链路状态信息转化成路由信息,然后发布到邻居区域。
- 链路状态信息转换成路由信息其实就是将一类和二类LSA转化成三类LSA的过程。注:域间路由信息在ABR上是双向传递的。
- OSPF划分的区域区域分割在路由器做分割。
- Area0区域分割的情况:使用Vlink
OSPF-vlink配置:
(1)在把area0分割的区域上配置(在骨干区域分割场景)。
(2)需要在两个端点路由器上配置。
(3)area x
(4)vlink-peer 4.4.4.4 #指定对方的router-id
- OSPF外部路由:AS外的
应用场景:收购了一家公司,需要把该公司的网络接入进来。
LSA5:ASBR产生描述如何从ASBR到达外部目的地,描述的外部路由信息(子网号,子网掩码,metric),metric-type 、FA、tag
LSA-type:AS-External-LSA
LS-id:目的网段地址(网络号)
adv-router:产生LSA的ASBR的router-id
mask:网络掩码
metric:开销值 默认值为1(可以修改)
metric-type:type1、type2(默认)
type2:不累计OSPF内部开销
type1:累积OSPF内部开销
LSA4:由ABR产生,描述ASBR的RID 告知相同区域内其他路由器到ASBR怎么走。只会在本区域内传递。
LSA-type:ASBR-summary-LSA
LS-id:ASBR的route-id
Adv-router:产生四类LSA的ABR的router-id
Metric:从该ABR到达ASBR的OSPF开销值。
注:当接入外部网络时,自治系统边界路由器(ASBR)会产生一条描述外部目的地址的LSA5,然后ASBR向各个区域泛洪LSA5,各区域的ABR收到LSA5后会同时生成一条LSA4在本区域内泛洪,用来描述怎么到达ASBR。
================================================================================================