HCIE笔记-第六天

OSPF协议详解

OPSF协议基本概念

ospf:开放式最短路径优先协议,属于无类别的链路状态型协议。
公有协议:跨层封装到IP报头,协议号89;组播更新:224.0.0.5、225.0.0.6
触发更新、周期更新(30min)
需要做到结构化的部署:IP地址规划、区域划分
一、ospf协议数据包
1、数据包结构
5中ospf数据包都有的部分:版本号、类型、包长度、Router ID、Area ID、校验和、认证类型、认证、Data
HCIE笔记-第六天_第1张图片
2、数据包种类
Hello:用于邻居、邻接的发现、建立、保活。 Hello time默认为10s或30s
DBD:数据库描述包
LSR:链路状态请求
LSU:线路状态更新
LSACK:链路状态确认
注:在这5这种数据包中,只有Hello包是不需要进行确认的,因为Hello是周期发送的。而其余的四种数据包都需要进行确认。DBD包使用隐性确认进行可靠保障(从使用主的序列号来确认收到主的DBD,收集完所有的DBD后在本地生成LSDB),LSR使用LSU进行确认,LSU使用LSAck进行确认,LSACK使用隐性确认方式。
二、状态机
Down:一旦本地发出hello包进入下一个状态
Init:初始化 收到的hello包若存在本地的RID进入下一个状态
2way:双向通讯 邻居关系建立的标志
Exstart:预启动 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态
Exchange 准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
Loading 加载 使用LSR/LSU/LSAck来获取未知的LSA信息;
Full转发 邻接关系建立的标志
三、ospf工作过程
OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.0.0.5发送hello包;本地hello包中携带本地的全网唯一的router-id;
之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的routerid,那么A/B建立为邻居关系;生成邻居表;
邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;
条件匹配成功可以开始建立邻接关系:
邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;
之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;
该过程完成后,生成数据库表;
再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致;
注:邻居、邻接关系的发现、建立、保活均依赖hello包进行;
Hello包中邻居间必须完全一致的参数:任意参数不同,均导致邻居关系无法建立
1、子网掩码(华为)发送hello包接口的源ip地址其掩码
2、Hello dead time – OSPF接口网络类型相关
3、认证字段 – 更新安全
4、区域ID – 要求区域间存在ABR
5、末梢区域标记 --特殊区域
DR/BDR选举在2-way状态
主从关系选举在Estart 状态—选举主从关系原因,主优先进入下一阶段,减少数据发送过程的失误,保证只有一个路由器在发送数据。
结构突变:
1、新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
2、断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
3、无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;
四、关于ospf中DBD包的几个知识点
1、DBD包默认携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态。
华为默认没有开启MTU检测功能
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable
2、隐性确认——不适用确认包,而是从主设备复制主设备的序列号来确认收到主的DBD
3、OSPF标记位 I M MS I为1本地发出的第一个DBD包
M为0,表示本地发出的最后一个DBD; MS为1代表主,为0代表从;
数据库建立后,本地基于SPF选路规则,计算到达未知网段最短路径加载于路由表中;
五、ospf协议成为邻接关系的条件
在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;—在每一个MA网络中均需要进行一次选举;
选举规则:
1、优先级 数值大优,默认为1; 若为0为放弃选举;
2、优先级一致,比较参选接口所有设备的router-id,数值大优;
[r1-GigabitEthernet0/0/1]ospf dr-priority 2
修改参选接口的优先级
切记:DR选举非抢占 ,故在修改优先级后,必须重启参选设备ospf进程来重新选举

ospf协议的各种LSA——数据库表

HCIE笔记-第六天_第2张图片
LSA的头部信息,除了Hello包外。其他ospf报文都携带了LSA 信息。
(1)LS age:此字段表示LSA已经生存的时间,单位是秒。
(2)option:此字段指出了部分ospf域中LSA能够支持的可选性能。
option字段所包含的信息:
DN:用于避免在MPLS VPN中出现环路。当PE设备向CE发送3、5、7类LSA时需要设置DN位,其他的PE从CE处收到此类LSA时,默认不会使用该条LSA
O:该字段指出首发路由器支持opaque LSA(类型9、10、11)
DC:当始发路由器支持按需链路上的ospf功能时,该位将被置位
EA:当始发路由器具有转发和接收8类LSA的能力时,将被置位
N:只用在hello包中。N=1表示路由器支持七类LSA。N=0表示路由器将不接收和发送NSSA LSA
P:只用在NSSA LSA。该位将告诉NSSA区域的ABR路由器将七类LSA转换为五类LSA
MC:当始发路由器支持转发组播数据包的能力时,该位将被置位。
MT:表示始发路由器支持多拓扑ospf
(3)LS type:此字段标识LSA的格式和功能,常见的LSA有5种。
(4)Link State ID:根据LSA的不同而不同。
(5)Advertising ID:始发LSA的路由器的ID。
(6)Sequence Number:当LSA每次新的实例产生时,这个序列号就会增加,这个更新可以帮助其他路由器识别最新的LSA实例。
(7)Checksum:是关于LSA全部信息的校验和。
(8)Length:是一个包含LSA头部在内的LSA长度。
一、各类LSA简介
类别名 传播范围 通告者 携带的信息
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 E 域外路由

类别名 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内部传递时不变

二、LSA的优化
汇总
1)域间路由汇总—ABR将本地直连的A区域1/2类LSA计算所得路由,再通过3类LSA共享到其它本地所直连的B区域时;
*如果要对区域0进行汇总,则需要在和区域0相连的每个ABR上进行汇总
[r1]ospf 1
[r1-ospf-1]area 1 明细路由所在区域
[r1-ospf-1-area-0.0.0.1]abr-summary 3.3.2.0 255.255.254.0

2)域外路由汇总—在ASBR上操作,将5类/7类LSA向OSPF发布时进行汇总;
[r2]ospf 1
[r2-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
注:切记华为设备默认设备不会在进行汇总配置的设备上,自动生成空接口防环路由;

特殊区域 不能是骨干区域,不能存在虚链路;
「1」同时不存在ASBR
1)末梢区域—该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR设备,向区域内发送一条3类的缺省路由;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub
注:该区域内所有设备均需要定义,否则无法建立邻居关系;
2)完全末梢区域,在末梢区域的基础上进一步拒绝3类的LSA;仅保留一条3类的缺省路由;
先将该区域配置为末梢区域,然后仅在ABR上定义完全末梢即可;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub no-summary

「2」同时存在ASBR
1)NSSA 非完全末梢区域—拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类;
在cisco设备中为了避免环路的出现,OSPF协议在NSSA区域配置完成后,不会自动产生缺省路由;而是由管理员在缺省网络无环的前提下,手工添加;
在华为的设备中让由该区域连接骨干0的ABR自动下发一下7类缺省;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa
注:该区域内所有设备均需要定义,否则无法建立邻居关系;

2)完全NSSA – 完全的非完全末梢区域;在普通NSSA的基础上,近一步拒绝3类的LSA,由ABR产生一条3类缺省
先将该区域配置为普通的NSSA,然后仅在ABR上定义完全NSSA即可
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa no-summary
三、在ospf中做路由的过滤
1、域间路由过滤(在ABR上做)
在这里插入图片描述
2、可以在ABR上对区域路由进行汇总的时候,后面加上参数not-advertise。相当于对汇总的路由不进行通告。同时,汇总后又不会下发明细路由,从而达到路由过滤的目的。
3、filter-policy:只能过滤本地路由表中的路由,只能用在入向,可以用来控制某些路由是否进入路由表。
4、全局下在p2mp类型里面过滤某个特定邻居的特定类型LSA filter-lsa-out
在这里插入图片描述
5、在接口模式下,也可以使用 filter-lsa-out

ospf在MPLS VPN下的应用

一、HUb-spoke
HCIE笔记-第六天_第3张图片
拓扑简介:如图所示,中间的绿色区域为MPLS VPN域,要求,R1可以接收R3和R4传来的路由;R2可以接收R3和R4传来的路由;R3只能接收R1传来的路由;R4只能接收R2传来的路由;三个蓝色的区域为总部和分部。要求总部之间可以实现相互通信。
配置步骤:
1、配置骨干区域IGP——OSPF
2、配置底层BGP
3、配置MP BGP
4、MPLS
5、MPLS VPN
6、配置ospf
7、路由引进(ospf 和BGP双向重发布)
配置完成后。可以发现在R6找不到R5上的网段路由。这是由于OSPF的防环机制,DN位导致的。所以需要在R3和R4上将ospf的DN位检测关闭了。命令为dn-bit-check disabled summary,后面跟的参数使可以变化的,分别可以 是ase、summary、nssa。
做完这个后,在R6上就可以看见R5的环回了。但看不见R5的链路网段,dn-bit-check disabled ase后也看不到,这是由于oSPF的另一个防环机制tag位引起的,当ospf的的五类、七类路由重发布到BGP环境中时,会在自己的tag位中携带BGP的AS相关信息。当再次进入到BGP环境中时,会查看自己 的tag位中信息是否与当前AS信息相同,如果相同,那么将不会进行传递。同样,我们可以关闭tag位的检测,命令:router-tag disabled。敲了这条命令后,在R6上就可以看见R5的链路路由了。
二、sham-link
在上图的前提下,对拓扑进行改进:
HCIE笔记-第六天_第4张图片
如图所示,将原本的区域1变为区域0,并且在R5和R7之间加了一条命链路。这条链路作用是做到备份。正常情况下,R5和R7通信,还是从R5–>R1–>R3–>R7,当链路故障时,走R5heR7之间的链路。
做法:可以将R5–>R1–>R3–>R7的这条链路本来的三类LSA转换为一类LSA。然后再在两条链路上做策略,可以直接增大R5和R7之间链路cost值。
配置如下:(两边配置一样)
1、起一个环回接口,并将接口挂载VPN下面,配置一个掩码32位的IP地址
interface LoopBack100
ip binding -instance a
ip address 100.1.1.1 255.255.255.255
2、将环回接口宣告在BGP的VPN-instance中
[r1]bgp 1
[r1-bgp]ipv4-family -instance a
[r1-bgp-a]network 100.1.1.1 255.255.255.255
3、配置sham-link
[r1]ospf 2
[r1-ospf-2]area 0
[r1-ospf-2-area-0.0.0.0]sham-link 100.1.1.1 100.1.1.2

你可能感兴趣的:(网络笔记)