关于OSPF+BGP的特殊场景中的研究
某一天,我的朋友给我出了这样一道题。
我给出的答案是:
1.环路是AR14-AR15产生。
2.AR15先引入了OSPF的路由,那么AR13上OSPF外部优先级150就会在全局路由表中顶掉255优先级的BGP,所以AR13上无法再引入OSPF到BGP。
朋友也认同这种说法。
但是事情还没有完,远远没有想象的这么简单......
在实验中,发现AR13访问1.1.1.1并没有出现环路。AR15只有request报文,没有replay报文。
首先BGP默认不会把IBGP的路由引入到IGP里面,所以需要 import-route bgp permit-ibgp type 1特殊执行
然后是华为的告警信息,告诫我们此操作可能会引发环路。
[r4-ospf-1] import-route bgp permit-ibgp type 1
Info: This configuration may result in loops. Please do not perform this configu
ration if not necessary.
但是在实验中,此操作并没有发生环路。
第一步,检查AR3的路由表
-----------------------------------------------------------------------------------
10.1.23.0/24 Direct 0 0 D 10.1.23.3 GigabitEthernet0/0/1
10.1.23.3/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
10.1.23.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
10.1.34.0/24 Direct 0 0 D 10.1.34.3 GigabitEthernet0/0/0
10.1.34.3/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
10.1.34.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
-----------------------------------------------------------------------------------
可以发现此时AR3上没有1.1.1.1的路由,原本以为会指向AR15的G0/0/0。
第二步,检查AR3的5类LSA
-----------------------------------------------------------------------------------
<r3>dis ospf lsdb ase
OSPF Process 1 with Router ID 10.1.34.3
Link State Database
Type : External
Ls id : 1.1.1.1
Adv rtr : 10.1.34.4
Ls age : 828
Len : 36
Options : E
seq# : 80000001
chksum : 0x44a7
Net mask : 255.255.255.255
TOS 0 Metric: 1
E type : 1
Forwarding Address : 10.1.34.3
Tag : 1
Priority : Medium
-----------------------------------------------------------------------------------
此时发现FA地址成了AR3自己的接口ip,FA地址的作用是为了防止产生次优路径,此时指向了自身接口ip。
AR3上的5类LSA的FA地址为自身接口ip。AR3没有将此路由加入到自身全局路由表中。
至此,看来FA地址为自己接口ip时,这条5类LSA不会加入到全局路由表中。
要想此题成立,IGP路由需要换为RIP。
常见的环路也就是错误的路由引入(单向)、路由重分发(双向)、路由聚合等引起的,但是排查过程大致为以下办法:
1、先使用最简单的办法tracert查看路由环路经过哪些节点,之后画出这样的拓扑以备后续排查(把环路现象锁定在局部范围的节点上)。
2、 查看拓扑中所涉及到的设备的路由协议相关的配置。
3、结合拓扑和配置理清路由走向,排除问题所在。局部节点可以缩小规模,做一个模拟实验。
2021.9.12
更新
事情还没有完...
后续与朋友讨论和做实验验证中发现了如果将AR3和AR4网络类型改为P2P的时候,根据FA地址特性,网络类型为P2P时,FA地址为0.0.0.0,这个时候环路就真正产生了。
那么在此基础不表的情况下,怎么解决此环路现象呢。
1.在AR2上改变EBGP的优先级为120,那么这个时候就可以将EBGP路由引入到OSPF中,此时AR3上根据OSPF选路会比较开销值,下一跳就会更新为AR2,此环路就解决了。
2.AR2到AR3到AR4建立MPLS隧道,此时解决了BGP的路由黑洞问题,那么也就不看IGP的路由了,IGP的路由再怎么环路都没事了。但是默认情况下只给32位主机路由分发标签,需要在MPLS进程下敲lsp-trigger all给所以路由分发标签。就可以全网通了。