- 中转AS中的IBGP问题
- 路由反射器角色
- 路由反射规则
- 反射规则示例
- RR场景下的路由防环
- Originator ID
- 路由反射簇 (Cluster)
- Cluster_List
- RR应用举例
- 配置介绍
- 配置案例
IBGP水平分割规则用于防止AS内部产生环路,在很大程度上杜绝了IBGP路由产生环路的可能性,但是同时也带来了新的问题:BGP路由在AS内部只能传递一跳,如果建立IBGP对等体全互联模型又会加重设备的负担。
本文将会介绍路由反射器的相关知识。
中转AS中的IBGP问题
由于水平分割的原因,为了保证中转AS200所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联。然而实现IBGP全互联存在诸多短板:
路由器需维护大量的TCP及BGP连接,尤其在路由器数量较多时;
AS内BGP网络的可扩展性较差。
为此可以采用路由反射器技术。
路由反射器角色
引入路由反射器之后存在两种角色:
RR(Route Reflector):路由反射器
Client:RR客户端
RR会将学习的路由反射出去,从而使得IBGP路由
在AS内传播无需建立IBGP全互联。
将一台BGP路由器指定为RR的同时,还需要指定其Client。至于Client本身,无需做任何配置,它并不知晓网络中存在RR。
路由反射规则
RR在接收BGP路由时:
如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则它会将该路由反射给所有客户
如果路由反射器从自己的客户学习到一条IBGP路由,则它会将该路由反射给所有非客户,以及除了该客户之外的其他所有客户
如果路由学习自EBGP对等体,则发送给所有客户、非客户IBGP对等体。
“非非不传”
反射规则示例
注意此处“反射”和“发送”的区别。“发送”指的是传统情况下(相当于RR不存在的场景下)的BGP路由传递行为,而“反射”指的是遵循路由反射规则的情况下,RR执行的路由传递动作,被反射出去的路由会被RR插入特殊的路径属性。
RR场景下的路由防环
RR的设定使得IBGP水平分割原则失效,这就可能导致环路的产生,为此RR会为BGP路由添加两个特殊的路径属性来避免出现环路:
Originator_ID
Cluster_List
Originator_ID、Cluster_List属性都属于可选过渡类型。
Originator ID
R3收到来自R2的BGP路由10.0.2.0/24,在反射给R1时会添加上Originator_ID:10.0.2.2,R1收到之后再次反射给其客户端R2时携带Originator_ID属性,R2收到之后查看Originator_ID属性值存在自身的Router ID,忽略该路由更新。
RR将一条BGP路由进行反射时会在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router ID。
若AS内存在多个RR,则Originator_ID属性由第一个RR创建,并且不被后续的RR(若有)所更改。
当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新。
路由反射簇 (Cluster)
路由反射簇包括反射器RR及其Client。一个AS内允许存在多个路由反射簇(如下图)。
每一个簇都有唯一的簇ID(Cluster_ID,缺省时为RR的BGP Router ID )。
当一条路由被反射器反射后,该RR(该簇)的Cluster_ID就会被添加至路由的Cluster_list属性中。
当RR收到一条携带Cluster_list属性的BGP路由,且该属性值中包含该簇的Cluster_ID时,RR认为该条路由存在环路,因此将忽略关于该条路由的更新。
Cluster_List
R2发送给R1的路由,经过R1反射给R3时除了添加Originator_ID之外还会添加Cluster_List:10.0.1.1。R3再次反射给R4时, Cluster_List值为:10.0.3.3 10.0.1.1,R4再次反射给R1时Cluster_List值为:10.0.4.410.0.3.3 10.0.1.1。
当R4将路由反射给R1时,R1发现Cluster_List包含了自身Cluster_ID,判断存在环路,从而忽略该路由更新。
RR应用举例
R1向BGP发布了10.0.1.0/24路由,R2会从R1学习到该路由并且将其通告给R3,但是R3从R2学习到的这条IBGP路由由于水平分割规则的存在故而不能够再被通告给R4及R5,为此可以将R3设置为RR,R4、R5作为其客户端,这样R4、R5即可正常学习到BGP路由10.0.1.0/24。
配置介绍
- 配置路由反射器及其客户端
[Huawei-bgp] peer {group-name | ipv4-address } reflect-client
缺省情况下,BGP未配置路由反射器及其客户。 - 配置路由反射器的集群ID
[Huawei-bgp] reflector cluster-id cluster-id
缺省情况下,每个路由反射器使用自己的Router ID作为集群ID。
配置案例
所有设备Loopback0地址为10.0.x.x/32,其中x为设备编号,所有设备都使用Loopback0地址作为BGP Router ID。
R1、R2、R3属于AS100,AS100内运行OSPF,将所有直连接口宣告进OSPF。
AS100内使用环回口作为发送IBGP报文的源接口,R2作为路由反射器,R3为其客户端。
R4属于AS200,与R3使用互联接口地址建立EBGP对等体,R4将10.4.4.0/24宣告进BGP。
R1的配置如下:
[R1] bgp 100
[R1-bgp] router-id 10.0.1.1
[R1-bgp] peer 10.0.2.2 as-number 100
[R1-bgp] peer 10.0.2.2 connect-interface LoopBack0
R2的配置如下:
[R2] bgp 100
[R2-bgp] router-id 10.0.2.2
[R2-bgp] peer 10.0.1.1 as-number 100
[R2-bgp] peer 10.0.1.1 connect-interface LoopBack0
[R2-bgp] peer 10.0.3.3 as-number 100
[R2-bgp] peer 10.0.3.3 connect-interface LoopBack0
[R2-bgp] peer 10.0.3.3 reflect-client
R3的配置如下:
[R3] bgp 100
[R3-bgp] router-id 10.0.3.3
[R3-bgp] peer 10.0.2.2 as-number 100
[R3-bgp] peer 10.0.2.2 connect-interface LoopBack0
[R3-bgp] peer 10.0.34.4 as-number 200
R4的配置如下:
[R4] bgp 200
[R4-bgp] router-id 10.0.4.4
[R4-bgp] peer 10.0.34.3 as-number 100
[R4-bgp] network 10.4.4.0 24
分别在R3、R1查看BGP路由10.4.4.0/24。
[R3-bgp]display bgp routing-table 10.4.4.0 24
BGP local router ID : 10.0.3.3
Local AS number : 100
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 10.4.4.0/24:
From: 10.0.34.4 (10.0.4.4)
Route Duration: 00h04m36s
Direct Out-interface: GigabitEthernet0/0/1
Original nexthop: 10.0.34.4
Qos information : 0x0
AS-path 200, origin igp, MED 0, pref-val 0, valid, external, best,
select, active, pre 255
Advertised to such 1 peers:10.0.2.2
[R1]display bgp routing-table 10.4.4.0 24……….
BGP routing table entry information of 10.4.4.0/24:
From: 10.0.2.2 (10.0.2.2) #来自R2
Route Duration: 00h00m19s
Relay IP Nexthop: 10.0.12.2
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 10.0.34.4 #下一跳地址未改变
Qos information : 0x0
AS-path 200, origin igp, MED 0, localpref 100, pref-val 0, valid,
internal, best, select, active, pre 255, IGP cost 3
Originator: 10.0.3.3 #路由来自10.0.3.3
Cluster list: 10.0.2.2 #Cluster_ID为R2的Router ID
Not advertised to any peer yet