OSPF:开放式最短路径优先协议 无类别链路状态型路由协议
无类别(携带掩码)链路状态型(基于拓扑)IGP(AS内部)协议
公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6(DR/BDR)
触发更新、周期更新(30min);
1.如何解决为了在中大型网络中生存,路由更新量大的为题?
需要结构化的部署:区域划分 地址规划
一、OSPF协议的数据包:
- 数据包结构
- 数据包种类
Hello:用于邻居、邻接关系的发现、建立、周期保活 hello time 默认10s或30s
DBD:数据库描述包
LSR:链路状态请求
LSU:链路状态更新 --携带具体的LSA信息
LSack:链路状态确认
二、状态机
Down:一旦本地发出hello包进入下一个状态
Init:初始化 收到的hello包若存在本地的RID进入下一个状态
2way:双向通讯 邻居关系建立的标志
条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;
Exstart:预启动 使用不携带信息的DBD包进行主从关系选举,RID数值大为主,优先进入
下一个状态机;
Exchange 准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
Loading 加载 使用LSR/LSU/LSAck来获取未知的LSA信息;
Full转发 邻接关系建立的标志
LSA:链路状态通告,在不同的网络条件下将产生不同类别的LSA信息来代表拓扑或者路由条目;
LSDB:链路状态数据库 装载和存储所有各种类别的LSA;
三、OSPF的工作过程
启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表:
之后进行条件的匹配,匹配失败的邻居将保持为邻居关系,仅hello包周期保活即可;匹配成功的邻居间,将进行邻接关系的建立;
过程中先使用DBD进行目录交互,在使用LSR/LSU/LSack来获取本地未知的LSA信息;最终完成邻接关系间的LSDB同步;生成数据库表;
再然后,本地基于LSDB,生成有向图—>树型结构—>最短选路 SPF算法 基于树形结构计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
收敛完成,hello包周期保活;每30min邻居间再周期比对DBD包;
四、结构突变:
- 新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
- 断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
- 无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由条目;
五、OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号,仅具有本地意义
建议配置RID—全网唯一—手工配置—本地环回接口最大数值---物理接口最大数值
[r1-ospf-1]
[r1-ospf-1]area 0 进入对应的区域进行宣告,宣告时必须携带反掩码
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
【1】OSPF的区域划分规则:
- 星型拓扑—非骨干区域需要连接骨干区域
- 必须存在ABR—区域边界路由器—区域间必须存在一个边界设备
启动配置完成后,邻居间收发hello包,建立邻居关系,生成邻居表:
Hello包携带的参数:
邻居间在进行邻居关系建立时,hello包有几个参数必须完全一致,否则无法建立邻居关系:
Hello time和dead time ---OSPF接口网络类型相关
区域ID(ABR) ---要求区域间必须存在ABR
认证字段 ---更新安全
末梢区域标记 ---特殊区域
华为设备还要求邻居间建立邻居的接口ip地址子网掩码必须一致;
[r2]display ospf peer 查看邻居表
[r2]display ospf peer brief 查看邻居表的简表
OSPF Process 1 with Router ID 2.2.2.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 1.1.1.1 Full
0.0.0.1 GigabitEthernet0/0/1 3.3.3.3 Full
邻居关系建立后,进行条件的匹配;匹配失败将保持为邻居关系,仅hello包周期保活;
匹配成功将可以建立为邻接关系:
首先使用DBD进行主从关系选举,在使用DBD进行数据库目录的交互:
关于DBD包的几个参数:
1.MTU OSPF协议会在DBD包中携带与邻居直连接口的MTU值;要求邻居的MTU值必须完全一致,否则将卡在exstart状态机;默认华为设备间不检测这个MTU值;
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable 在于邻居间直连的接口上开启MTU检测;若一端开启,另一端也必须开启;
2.隐性确认 一台设备使用和另一台设备一样的序列号来确认对端的数据 OSPF中从来对
进行隐性确认;
3.描述字段 I为1标识本地发出的第一个DBD M为0本地发出的最后一个DBD MS 为1 代表主 S为0代表从
在使用DBD相互交互完数据库目录后,再使用LSR/LSU/LSack来获取未知的LSA信息;
最终实现所有设备的LSDB一致;生成数据库表:
<r1>display ospf lsdb ---查看数据库表
[r2]display ospf peer ---查看邻居表
[r2]display ospf peer brief ---查看邻居简表
当数据库同步完成后,OSPF将基于本地的LSDB,计算为有向图—>树型结构—>最短路径加载于路由表中:
- 字母
Cisco O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
O 同一区域内,本地通过拓扑计算所得
O IA 域间路由,ABR通过其他区域的拓扑计算所得路由,然后共享到另一个区域;本地区域另一区域
O E1/2 域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议
O N1/2 NSSA域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议,同时学习到这条路由的设备处于ospf的一种NSSA的特殊区域中
华为设备优先级默认10;
<r1>display ospf routing 查看本地所有与OSPF相关路由,发出+接收的
度量为cost值=开销值=参考带宽/接口带宽
OSPF选择整段路径cost值之和最小为最短路径;默认参考带宽100M
若接口带宽大于参考带宽,cost值为1;可能导致选路不佳
可以修改设备的参考带宽:
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
切记:若进行修改,整个网络中所有设备需要修改为一致;
六、OSPF从邻居关系建立为邻接关系的条件
【1】关注网络类型
- 点到点网络 邻居正常必然成为邻接关系
- MA网络中 由于OSPF不支持接口的水平分割;故若两两设备间均为邻接关系,将导致大量的重复更新;因此必须进行DR/BDR选举,DR/BDR使用组播224.0.0.6;在该网段内的非DR/BDR设备间只能建立为邻居关系;
选举规则:先比较参选接口的优先级0-255 数值大优,为0标识不参选
默认为1;若优先级相同,比较参选设备的RID值,数值大优;
修改接口优先级可以干涉选举:
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 2 参选接口修改优先级
注:DR选举为非抢占行为;故修改优先级需要重启的OSPF进程
<r1>reset ospf process ----重启进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
七、ospf的接口网络类型 -- ospf的协议在不同网路类型的接口上,其工作方式不同
<r1>display ospf interface GigabitEthernet 0/0/1 查看OSPF协议在该接口的工作方式
网络类型 ospf的工作方式
【1】LoopBack 显示P-2-P,实际为环回专用工作方式 无hello包 32位主机路由传递
【2】点到点(串线HDLC/PPP) P-2-P hello time10s 不选DR/BDR 自动建立邻居关系
【3】BMA(以太网) Broadcast hello time 10s 选DR/BDR 自动建立邻居关系
【4】NBMA(帧中继) nbma hello time 10s 选DR/BDR 手动建立邻居关系
【5】NBAM(MGRE) 默认接口工作方式为p2p,该工作方式仅允许建立一个邻居关系;
导致在MGRE环境中无法建立所有的邻居关系;
可以通过修改接口的工作方式来解决:
修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;
- 同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;
- 若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置;或者将所有接口的工作方式修改为点到多点工作方式;
Ospf的点到多点工作方式:只能手工配置,适用于部分网状结构拓扑;
Hello time30s,不选DR/BDR,自动建立邻居关系;
拓扑结构:
中心到站点(轴辐状-星型结构) DR必须定在中心站点,没有BDR
部分网状结构 基于实际环境关注是否固定DR;
全连网状结构 --- DR/BDR选举正常
八、OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不能进行区域间路由的共享
- 远离了骨干的非骨干区域
- 不连续骨干
解决方案:
【1】在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
缺点:1、周期更新、保活,触发更新对中间穿越区域产生资源占用
2.选路不佳 -- 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;
Tunnel区域应该宣告在同一个区域
【2】虚链路 --- 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;
使得非法ABR可以进行区域间路由的共享;
因为并没有增添新的路径,故不存在选路不佳的问题;
[r2-ospf-1]area 1 两台ABR共同所在的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
Cisco为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为;---不可靠
华为在虚链路上依然保持周期的保活、更新 --- 对中间区域的资源占用
【3】多进程双向重发布(推荐)
多进程--- 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
[r2]ospf 1
[r2-ospf-1]import-route ospf 2
[r2-ospf-1]q
[r2]ospf 2
[r2-ospf-2]import-route ospf 1
九、OSPF的各种LSA --- 数据库表
<r1>display ospf lsdb ---查看数据库表
<r1>display ospf lsdb router 1.1.1.1
类别名 link-id(在目录中的编号)
所有类别的LSA,均携带以下信息
Type : Router 类别名 此处为1类
Ls id : 1.1.1.1 link-id 在目录中的编号
Adv rtr : 1.1.1.1 通告者 --- 该LSA的更新源设备的RID
Ls age : 1359 老化时间 1800s周期刷新为0 触发更新归0 最大3609s
Len : 48
Options : E
seq# : 8000000c 序列号
chksum : 0x818c 校验码
OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条
什么情况下LSA会更新:
1、1800到期会周期更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
类别名 传播范围 通告者 携带的信息
1类LSA-router 本区域内 本区域内的每台路由器 该区域每台设备的直连拓扑
2类LSA-Network 本区域内 该网段的DR 该网段的拓扑
3类LSA-summary 整个OSPF域 ABR O IA 域间路由
4类LSA-asbr 除ASBR所在区域外的 ABR ASBR的位置
整个ospf域;ASBR所在区域使用
1类标记位置
5类LSA-ase 整个OSPF域 ASBR O E 域外路由
7类LSA-nssa 单个的NSSA区域内 ASBR O N 域外路由
类别名 link-id 通告者
1类LSA-router 通告者的RID 本区域内的每台路由器
2类LSA-Network DR接口的ip地址 每个MA网段中的DR
3类LSA-summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改为新的ABR
4类LSA-asbr ASBR的RID ABR,在经过下一台ABR时,修改为新的ABR
5类LSA-ase 域外路由的目标网络号 ASBR 在ospf内部传递时不变
7类LSA-nssa 域外路由的目标网络号 ASBR