1.1 概述
学习边界网关协议BGP的关键在于如何理解和应用协议的“属性”,因此,本期文章将向小伙伴总结分享BGP的第八个和第九个属性——Originator_ID和Cluster_List属性。
1.2 BGP组网案例-Originator_ID和Cluster_List属性
1.2.1 组网拓扑图-Cluster_List属性
组网拓扑图如下图所示。

1.2.2 组网拓扑图-Originator_ID属性

1.2.3 两种组网拓扑地址规划

1.2.4 组网设备基础配置
组网设备基础配置主要涉及设备命名、接口IP地址和OSPF相关配置。
#SW_1设备基础配置
[H3C]sysname SW_1
[SW_1]interface LoopBack0
[SW_1-LoopBack0] ip address 10.10.0.1 255.255.255.255
[SW_1-LoopBack0]interface LoopBack1
[SW_1-LoopBack1] ip address 172.16.10.1 255.255.255.255
[SW_1-LoopBack1]quit
[SW_1]interface GigabitEthernet1/0/2
[SW_1-GigabitEthernet1/0/2] port link-mode route
[SW_1-GigabitEthernet1/0/2] ip address 10.10.12.1 255.255.255.252
[SW_1-GigabitEthernet1/0/2]interface GigabitEthernet1/0/4
[SW_1-GigabitEthernet1/0/4] port link-mode route
[SW_1-GigabitEthernet1/0/4] ip address 10.10.14.1 255.255.255.252
[SW_1-GigabitEthernet1/0/4]quit
[SW_1]ip ttl-expires enable
[SW_1]ip unreachables enable
#SW_1设备OSPF相关配置
[SW_1]ospf 1 router-id 10.10.0.1
[SW_1-ospf-1] area 0.0.0.0
[SW_1-ospf-1-area-0.0.0.0] network 10.10.12.0 0.0.0.3
[SW_1-ospf-1-area-0.0.0.0] network 10.10.14.0 0.0.0.3
[SW_1-ospf-1-area-0.0.0.0]quit
[SW_1-ospf-1]quit
[SW_1]interface GigabitEthernet1/0/4
[SW_1-GigabitEthernet1/0/4] ospf cost 2
[SW_1-GigabitEthernet1/0/4]quit
#SW_2设备基础配置
[H3C]sysname SW_2
[SW_2]interface LoopBack0
[SW_2-LoopBack0] ip address 10.10.0.2 255.255.255.255
[SW_2-LoopBack0]quit
[SW_2]interface GigabitEthernet1/0/2
[SW_2-GigabitEthernet1/0/2] port link-mode route
[SW_2-GigabitEthernet1/0/2] ip address 10.10.12.2 255.255.255.252
[SW_2-GigabitEthernet1/0/2]quit
[SW_2]interface GigabitEthernet1/0/3
[SW_2-GigabitEthernet1/0/3] port link-mode route
[SW_2-GigabitEthernet1/0/3] ip address 10.10.23.1 255.255.255.252
[SW_2-GigabitEthernet1/0/3]quit
[SW_2]ip ttl-expires enable
[SW_2]ip unreachables enable
#SW_2设备OSPF相关配置
[SW_2]ospf 1 router-id 10.10.0.2
[SW_2-ospf-1] area 0.0.0.0
[SW_2-ospf-1-area-0.0.0.0] network 10.10.12.0 0.0.0.3
[SW_2-ospf-1-area-0.0.0.0] network 10.10.23.0 0.0.0.3
[SW_2-ospf-1-area-0.0.0.0]quit
[SW_2-ospf-1]quit
#SW_3设备基础配置
[H3C]sysname SW_3
[SW_3]interface LoopBack0
[SW_3-LoopBack0] ip address 10.10.0.3 255.255.255.255
[SW_3-LoopBack0]quit
[SW_3]interface GigabitEthernet1/0/3
[SW_3-GigabitEthernet1/0/3] port link-mode route
[SW_3-GigabitEthernet1/0/3] ip address 10.10.23.2 255.255.255.252
[SW_3-GigabitEthernet1/0/3]quit
[SW_3]interface GigabitEthernet1/0/5
[SW_3-GigabitEthernet1/0/5] port link-mode route
[SW_3-GigabitEthernet1/0/5] ip address 10.10.35.1 255.255.255.252
[SW_3-GigabitEthernet1/0/5]quit
[SW_3]ip ttl-expires enable
[SW_3]ip unreachables enable
#SW_3设备OSPF相关配置
[SW_3]ospf 1 router-id 10.10.0.3
[SW_3-ospf-1] area 0.0.0.0
[SW_3-ospf-1-area-0.0.0.0]network 10.10.23.0 0.0.0.3
[SW_3-ospf-1-area-0.0.0.0]network 10.10.35.0 0.0.0.3
[SW_3-ospf-1-area-0.0.0.0]quit
[SW_3-ospf-1]quit
[SW_3]#
#SW_4设备基础配置
[H3C]sysname SW_4
[SW_4]interface LoopBack0
[SW_4-LoopBack0] ip address 10.10.0.4 255.255.255.255
[SW_4-LoopBack0]quit
[SW_4]interface GigabitEthernet1/0/4
[SW_4-GigabitEthernet1/0/4] port link-mode route
[SW_4-GigabitEthernet1/0/4] ip address 10.10.14.2 255.255.255.252
[SW_4-GigabitEthernet1/0/4]quit
[SW_4]interface GigabitEthernet1/0/5
[SW_4-GigabitEthernet1/0/5] port link-mode route
[SW_4-GigabitEthernet1/0/5] ip address 10.10.45.1 255.255.255.252
[SW_4-GigabitEthernet1/0/5]quit
[SW_4]ip ttl-expires enable
[SW_4]ip unreachables enable
#SW_4设备OSPF相关配置
[SW_4]ospf 1 router-id 10.10.0.4
[SW_4-ospf-1] area 0.0.0.0
[SW_4-ospf-1-area-0.0.0.0] network 10.10.14.0 0.0.0.3
[SW_4-ospf-1-area-0.0.0.0] network 10.10.45.0 0.0.0.3
[SW_4-ospf-1-area-0.0.0.0]quit
[SW_4-ospf-1]quit
[SW_4]#
#SW_5设备基础配置
[H3C]sysname SW_5
[SW_5]interface LoopBack0
[SW_5-LoopBack0] ip address 10.10.0.5 255.255.255.255
[SW_5-LoopBack0]interface LoopBack1
[SW_5-LoopBack1] ip address 192.168.5.1 255.255.255.255
[SW_5-LoopBack1]quit
[SW_5]interface GigabitEthernet1/0/3
[SW_5-GigabitEthernet1/0/3] port link-mode route
[SW_5-GigabitEthernet1/0/3] ip address 10.10.35.2 255.255.255.252
[SW_5-GigabitEthernet1/0/3]quit
[SW_5]interface GigabitEthernet1/0/4
[SW_5-GigabitEthernet1/0/4] port link-mode route
[SW_5-GigabitEthernet1/0/4] ip address 10.10.45.2 255.255.255.252
[SW_5-GigabitEthernet1/0/4]quit
[SW_5]ip ttl-expires enable
[SW_5]ip unreachables enable
#SW_5设备OSPF相关配置
[SW_5]ospf 1 router-id 10.10.0.5
[SW_5-ospf-1] area 0.0.0.0
[SW_5-ospf-1-area-0.0.0.0] network 10.10.35.0 0.0.0.3
[SW_5-ospf-1-area-0.0.0.0] network 10.10.45.0 0.0.0.3
[SW_5-ospf-1-area-0.0.0.0]quit
[SW_5-ospf-1]quit
[SW_5]interface GigabitEthernet 1/0/4
[SW_5-GigabitEthernet1/0/4] ospf cost 3
[SW_5-GigabitEthernet1/0/4]quit
[SW_5]
1.2.5 组网设备BGP配置
#SW_1设备BGP配置
[SW_1]bgp 10
[SW_1-bgp-default] router-id 10.10.0.1
[SW_1-bgp-default] peer 10.10.12.2 as-number 10
[SW_1-bgp-default] peer 10.10.14.2 as-number 10
[SW_1-bgp-default] #
[SW_1-bgp-default] address-family ipv4 unicast
[SW_1-bgp-default-ipv4] network 172.16.10.1 255.255.255.255
[SW_1-bgp-default-ipv4] peer 10.10.12.2 enable
[SW_1-bgp-default-ipv4] peer 10.10.14.2 enable
[SW_1-bgp-default-ipv4]quit
[SW_1-bgp-default]quit
[SW_1]#
#SW_2设备BGP配置
[SW_2]bgp 10
[SW_2-bgp-default] router-id 10.10.0.2
[SW_2-bgp-default] peer 10.10.12.1 as-number 10
[SW_2-bgp-default] peer 10.10.23.2 as-number 10
[SW_2-bgp-default] #
[SW_2-bgp-default] address-family ipv4 unicast
[SW_2-bgp-default-ipv4] peer 10.10.12.1 enable
[SW_2-bgp-default-ipv4] peer 10.10.23.2 enable
[SW_2-bgp-default-ipv4]quit
[SW_2-bgp-default]quit
[SW_2]#
#SW_3设备BGP配置
[SW_3]bgp 10
[SW_3]bgp 10
[SW_3-bgp-default] router-id 10.10.0.3
[SW_3-bgp-default] peer 10.10.23.1 as-number 10
[SW_3-bgp-default] peer 10.10.35.2 as-number 10
[SW_3-bgp-default] #
[SW_3-bgp-default] address-family ipv4 unicast
[SW_3-bgp-default-ipv4] peer 10.10.35.2 enable
[SW_3-bgp-default-ipv4] peer 10.10.23.1 enable
[SW_3-bgp-default-ipv4]quit
[SW_3-bgp-default]quit
[SW_3]#
#SW_4设备BGP配置
[SW_4]bgp 10
[SW_4]bgp 10
[SW_4-bgp-default] router-id 10.10.0.4
[SW_4-bgp-default] peer 10.10.14.1 as-number 10
[SW_4-bgp-default] peer 10.10.45.2 as-number 10
[SW_4-bgp-default] #
[SW_4-bgp-default] address-family ipv4 unicast
[SW_4-bgp-default-ipv4] peer 10.10.14.1 enable
[SW_4-bgp-default-ipv4] peer 10.10.45.2 enable
[SW_4-bgp-default-ipv4]quit
[SW_4-bgp-default]quit
[SW_4]#
#SW_5设备BGP配置
[SW_5]bgp 10
[SW_5-bgp-default] router-id 10.10.0.5
[SW_5-bgp-default] peer 10.10.35.1 as-number 10
[SW_5-bgp-default] peer 10.10.45.1 as-number 10
[SW_5-bgp-default] #
[SW_5-bgp-default] address-family ipv4 unicast
[SW_5-bgp-default-ipv4] network 192.168.5.1 32
[SW_5-bgp-default-ipv4] peer 10.10.35.1 enable
[SW_5-bgp-default-ipv4] peer 10.10.45.1 enable
[SW_5-bgp-default-ipv4]quit
[SW_5-bgp-default]quit
[SW_5]#
1.3 SW_2、SW_3和SW_4配置路由反射器-Cluster_List属性
1.3.1 SW_2、SW_3和SW_4配置路由反射器
AS 10内部相邻的设备间建立IBGP邻居关系。其中SW_2做为一级RR,SW_3是其客户机;SW_3做为二级RR,SW_5是其客户机。SW_4也被配置成RR,SW_5是其客户机。
#SW_2配置路由反射器
[SW_2]bgp 10
[SW_2-bgp-default] address-family ipv4 unicast
[SW_2-bgp-default-ipv4] peer 10.10.23.2 reflect-client
[SW_2-bgp-default-ipv4]quit
[SW_2-bgp-default]quit
#SW_3配置路由反射器
[SW_3]bgp 10
[SW_3-bgp-default] address-family ipv4 unicast
[SW_3-bgp-default-ipv4] peer 10.10.35.2 reflect-client
[SW_3-bgp-default-ipv4]quit
[SW_3-bgp-default]quit
[SW_3]#
#SW_4配置路由反射器
[SW_4]bgp 10
[SW_4-bgp-default] address-family ipv4 unicast
[SW_4-bgp-default-ipv4] peer 10.10.45.2 reflect-client
[SW_4-bgp-default-ipv4]quit
[SW_4-bgp-default]quit
[SW_4]#
1.3.2 查看SW_1和SW_5设备的BGP、OSPF路由表-Cluster_List属性
1.3.2.1 查看SW_1设备的BGP和OSPF路由表
从SW_1设备BGP路由表可知:至目标192.168.5.1/32的最优路径,它的下一跳是10.10.45.2,备用路径的下一跳是10.10.35.2,如下图所示。
从SW_1设备OSPF路由表可知:至目标10.10.35.0/30的开销(Cost)是3,至目标10.10.45.0/30的开销(Cost)同样是3,如下图所示;
在SW_1设备上,具体查询BGP路由192.168.5.1发现:优选路由的“Cluster list”是10.10.0.4,而备用路由的“Cluster list”是10.10.0.2,10.10.0.3,如下图所示;
1.3.2.2 查看SW_5设备的BGP和OSPF路由表
从SW_5设备BGP路由表可知:至目标172.16.10.1/32的最优路由,它的下一跳是10.10.12.1,备用路由的下一跳是10.10.14.1,如下图所示。
从SW_5设备OSPF路由表可知:至目标10.10.12.0/30的开销(Cost)是3,至目标10.10.14.0/30的开销(Cost)却是4,如下图所示。
在SW_5设备上,具体查询BGP路由172.16.10.1发现:最优路由的“Cluster list”是10.10.0.3,10.10.0.2,而备用路由的“Cluster list”是10.10.0.4,如下图所示;
1.3.2.3 对比分析查看SW_1和SW_5设备的BGP、OSPF路由表
在“BGP的路由优选规则”中,先比较IGP Cost(数值小者优选),再比较Cluster_List(长度短者优选)。
在SW_1设备上,最终通过比选Cluster_List的长短,至目标192.168.5.1/32的最优路由的下一跳是10.10.45.2。
SW_1-TO-SW_5_G1/0/4:igp cost 3,Cluster_List 10.10.0.4—最终优选
SW_1-TO-SW_5_G1/0/3:igp cost 3,Cluster_List{10.10.0.2,10.10.0.3}
在SW_5设备上,最终通过比选IGP Cost的大小,至目标172.16.10.1/32的最优路由的下一跳是10.10.12.1。设备通过比选IGP Cost的大小已选出最优路由,因此不再比选Cluster_List的长短。
SW_5-TO-SW_1_G1/0/2:igp cost 3,Cluster_List {10.10.0.3,10.10.0.2}
—最终优选
SW_5-TO-SW_1_G1/0/4:igp cost 4,Cluster_List 10.10.0.4
1.4 SW_2和SW_4配置路由反射器-Originator_ID属性
1.4.1 SW_2和SW_4配置路由反射器
AS 10内部相邻的设备间建立IBGP邻居关系。其中SW_2配置成RR,SW_3是其客户机;SW_4配置成RR,SW_5是其客户机。
#SW_2配置成RR,SW_3是其客户机
[SW_2]bgp 10
#修改SW_2设备BGP的router-id
[SW_2-bgp-default]router-id 10.10.0.22
[SW_2-bgp-default] address-family ipv4 unicast
[SW_2-bgp-default-ipv4]peer 10.10.23.2 reflect-client
[SW_2-bgp-default-ipv4]quit
[SW_2-bgp-default]quit
[SW_2]#
#SW_4配置成RR,SW_5是其客户机
[SW_4]bgp 10
[SW_4-bgp-default] address-family ipv4 unicast
[SW_4-bgp-default-ipv4] peer 10.10.45.2 reflect-client
[SW_4-bgp-default-ipv4]quit
[SW_4-bgp-default]quit
[SW_4]#
#SW_1设备的G1/0/4接口去除ospf cost配置
[SW_1]interface GigabitEthernet1/0/4
[SW_1-GigabitEthernet1/0/4]undo ospf cost
[SW_1-GigabitEthernet1/0/4]quit
[SW_1]
# SW_3设备bgp引入路由10.10.35.0/30
[SW_3]bgp 10
[SW_3-bgp-default]address-family ipv4 unicas
[SW_3-bgp-default-ipv4]network 10.10.35.0 255.255.255.252
[SW_3-bgp-default-ipv4]quit
[SW_3-bgp-default]quit
[SW_3]#
# SW_5设备bgp引入路由10.10.35.0/30
[SW_5]bgp 10
[SW_5-bgp-default]address-family ipv4 unicas
#去除路由192.168.5.1/32的引入
[SW_5-bgp-default-ipv4]undo network 192.168.5.1 255.255.255.255
[SW_5-bgp-default-ipv4]network 10.10.35.0 255.255.255.252
[SW_5-bgp-default-ipv4]quit
[SW_5-bgp-default]quit
[SW_5]
1.4.2 查看SW_1设备的BGP和OSPF路由表- Originator_ID属性
从SW_1设备BGP路由表可知:至目标10.10.35.0/32的最优路径,它的下一跳是10.10.23.2,备用路径的下一跳是10.10.45.2,如下图所示。
从SW_1设备OSPF路由表可知:至目标10.10.23.0/30的开销(Cost)是2,至目标10.10.45.0/30的开销(Cost)同样是2,如下图所示;
在SW_1设备上,具体查询BGP路由10.10.35.0发现:最优路由的“Originator”是10.10.0.3、“Cluster list”是10.10.0.22,而备用路由的“Originator”是10.10.0.5、“Cluster list”是10.10.0.4,如下图所示;
在“BGP的路由优选规则”中,先比较IGP Cost(数值小者优选),再比较Cluster_List(长度短者优选),再比较Router ID(数值小者优选)。
在SW_1设备上,至目标10.10.35.0/32的路由,理应地比选方式;
SW_1-TO-SW_5:igp cost 2,Cluster_List 10.10.0.4,Router ID 10.10.0.4——应该被优选,而实际没有被优先
SW_1-TO-SW_3:igp cost 2,Cluster_List 10.10.0.22,Router ID 10.10.0.22
“实际上如果路由携带Originator_ID属性,则选路过程中将比较Originator ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。”
因此,在SW_1设备上,至目标10.10.35.0/32的路由,实际地比选方式;
SW_1-TO-SW_5:igp cost 2,Cluster_List 10.10.0.4,Originator_ID 10.100.0.5
SW_1-TO-SW_3:igp cost 2,Cluster_List 10.10.0.22,Originator_ID 10.100.0.3——实际优选的结果
来自SW_2(Router ID:10.10.0.22)的路由的Originator ID是10.10.0.3,而来自SW_4(Router ID:10.10.0.4)的路由的Originator ID是10.10.0.5,所以来自SW_2的路由成为优选路由。
1.5 总结
Cluster_List和Originator_ID属于同一种“可选非过渡”类型的属性。
1.5.1 Cluster_List属性
路由反射器(Route Reflector,简称RR)和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。
当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到Cluster List的前面。如果没有Cluster_List属性,RR就创建一个。
当RR接收到一条更新路由时,RR会检查Cluster List。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地Cluster ID,将其加入Cluster List,然后反射该更新路由。例如,在Cluster_List属性组网拓扑中,SW_1从SW_2设备收到的路由192.168.5.1/32,它的Cluster_List是10.10.0.2,10.10.0.3。
1.5.2 Originator_ID属性
Originator ID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。
当一条路由第一次被RR反射的时候,RR将Originator ID属性加入这条路由,标识这条路由的发起路由器。如果一条路由中已经存在了Originator ID属性,则RR将不会创建新的Originator ID。例如,在Originator ID属性组网拓扑中,SW_1从SW_2设备收到的路由10.10.35.0/30,它的Originator ID是10.10.0.3。
当其他BGP Speaker接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。