组网及说明
组网大致如下:
两台交换机建立IBGP邻居关系
告警信息
告警信息不涉及
问题描述
如上图中,1和2之间建立IBGP邻居,两台设备都配置相同网段和掩码(20.1.0.0/16)的静态路由,本地该网段地址是20.1.1.0/24位地址,设置该静态路由优先级是255,然后BGP的ipv4地址族下又network了该网段,IBGP路由设置优先级为100,具体配置如下:
1设备:
#
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
#
address-family ipv4 unicast
preference 10 100 100
network 20.1.0.0 255.255.0.0
peer 2.2.2.2 enable
#
ip route-static 20.1.0.0 16 NULL0 preference 255
2设备:
#
bgp 200
peer 1.1.1.1 as-number 200
peer 1.1.1.1 connect-interface LoopBack0
#
address-family ipv4 unicast
preference 10 100 100
network 20.1.0.0 255.255.0.0
peer 1.1.1.1 enable
#
ip route-static 20.1.0.0 16 NULL0 preference 255
配置后发现,全局路由表下并未按照预期将BGP从对端学到的BGP路由进行加表,而是将低优先级的静态路由进行了加表
过程分析
分析路由在加全局路由表前,会比较各个协议间路由的优先级,但是在此之前协议内也需要进行选择,查看BGP路由表发现,20.1.0.0/16网段路由有两条,分别如下:
[H3C]dis bgp routing-table ipv4 unicast 20.1.1.0 16
BGP local router ID: 1.1.1.1
Local AS number: 200
Paths: 2 available, 1 best
BGP routing table information of 20.1.0.0/16:
Imported route.
Original nexthop: 0.0.0.0
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : (null)
Origin : igp
Attribute value : MED 0, pref-val 32768
State : valid, local, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
Tunnel policy : NULL
Rely tunnel IDs : N/A
From : 2.2.2.2 (2.2.2.2)
Rely nexthop : 10.1.1.2
Original nexthop: 2.2.2.2
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0xffffffff
AS-path : (null)
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0
State : valid, internal
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
Tunnel policy : NULL
Rely tunnel IDs : N/A
因为操作顺序的原因,先配置了静态路由,后面邻居才建立。BGP邻居还没有建立起来时,静态路由先加表,因为BGP配置network20.1.0.0/16网段,将静态路由向BGP路由表中进行了发布,两个20.1.1.0/16的路由,这一个的首选值(Preferred-value)更大,先优选这个引入的静态路由,所以最终静态加全局路由表
<H3C>dis ip routing-table
Destinations : 19 Routes : 19
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
1.1.1.1/32 O_INTRA 10 1 10.1.1.1 Vlan10
2.2.2.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan10
10.1.1.0/32 Direct 0 0 10.1.1.2 Vlan10
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.2 Vlan10
20.1.0.0/16 Static 255 0 0.0.0.0 NULL0
解决方法
(1)将静态路由删除重新创建,这样原始路由表中无静态路由,BGP路由表中不会将该静态路由加表,只存在从对端邻居学到的路由;
(2)通过配置路由策略,对该网段路由匹配后,修改更大首选之后,使其成为best
(3)在BGP视图下配置flush suboptimal-route跳过BGP选路,该修改影响范围比较大