1 路由反射器简介
路由反射器(RR)的作用主要是为了简化IBGP邻居配置,使用反射器后允许反射器将来自IBGP邻居的路由信息发给另一个或一组IBGP邻居。路由器让被配置为路由反射器的路由器向其他IBGP对等体传输由IBGP所学到的路由来修改BGP的横向隔离规则,也就不再需要全互连的IBGP对等体。
1.1 BGP反射器RR的相关角色
- 路由反射器:是被配置为允许它把通过IBGP所学到的路由通告(或反射)到其他IBGP对等体的路由器;
- 客户:是和路由反射器有IBGP对等关系并配置成反射邻居关系的路由器;
- 非客户:不是路由反射器的客户的其他IBGP的对等体;
- originator(始发者)ID:是被路由反射器创建,这个属性带有本AS内部路由始发者的路由ID;
- 集群:路由反射器及其客户集合(cluster id);
- 路由反射器集群表:路由报经过的集群ID序列(cluster list)。
originator(始发者)ID、集群ID和集群表有助于在路由反射器配置中防止产生路由环路。
1.2 BGP反射器反射规则
路由反射器会依次在客户机之间反射信息。路由反射器和它的所有客户机构成一个群。一个群内允许有多个路由反射器,一个路由反射器可以把别的路由反射器配置成它的客户机或非客户机。路由反射器在它的客户机和非客户机之间传送路由更新的规则:
- 如果路由更新是从非客户机收到的,仅反射给客户机,不会再反射给非客户机;
- 如果路由更新是从客户机收到的,反射给所有非客户机以及客户机,除了这个路由更新的始发者;
- 如果路由更新是从EBGP相邻体收到的,反射给所有的客户机和非客户机
- 默认情况下RR只会传递最优选的路由,但这个可以在BGP里配置additional-paths select-best N,传递N条等价路由给IBGP客户机与非客户机;
1.3 应用场景
场景一:最简单的IBGP对等体场景
B、C、D组成一个AS域,之间建立IBGP邻居,RTD作为路由反射器在IBGP对等体内反射路由给客户机。
实例1:公网BGP路由传递过程
从RTC经过路由反射器传递一条路由给RTA路由器,RTA的router id为1.1.1.1、RTB的router id为2.2.2.2、RTD的router id为3.3.3.3、RTC的router id为4.4.4.4。
RTC发布一条路由4.4.4.4/32给IBGP反射器。反射器RTD学习到该条路由,并把这条路由4.4.4.4/32反射客户机RTB。下面是各设备上显示的该路由的路由表项:
<RTD>dis bgp routing-table 4.4.4.4
BGP local router ID : 3.3.3.3
Local AS number : 100
Path: 1 available, 1 best
BGP routing table entry information of 4.4.4.4/32
RR-client route
From : 30.0.0.2 (4.4.4.4)
Relay Nexthop : 0.0.0.0
Original nexthop : 30.0.0.2
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Advertised to such 1 peers:
20.0.0.1
<RTB>dis bgp routing-table 4.4.4.4
BGP local router ID : 2.2.2.2
Local AS number : 100
Path: 1 available, 1 best
BGP routing table entry information of 4.4.4.4/32
RR-client route
From : 20.0.0.2 (3.3.3.3)
Relay Nexthop : 20.0.0.2
Original nexthop : 30.0.0.2
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Originator : 4.4.4.4
Cluster list : 3.3.3.3
Advertised to such 1 peers:
10.0.0.1
<RTA>dis bgp routing-table 4.4.4.4
BGP local router ID : 1.1.1.1
Local AS number : 200
Path: 1 available, 1 best
BGP routing table entry information of 4.4.4.4/32
From : 10.0.0.2 (2.2.2.2)
Original nexthop : 10.0.0.2
AS-path : 100
Origin : incomplete
Attribute value :pref-val 0, pre 255
State : valid, external, best,
Not advertised to any peers yet
这样路由反射器成功屏蔽BGP的横向隔离规则,把路由传递给RTA路由器。
实例2:公网路由BGP反射器嵌套路由传递过程
从RTE传递一条路由5.5.5.5/32给RTA路由器,RTA的router id为1.1.1.1、RTB的router id为2.2.2.2、RTC的router id为3.3.3.3、RTD的router id为4.4.4.4、RTE的router id为5.5.5.5;其中RTB和RTD为一级反射器、RTC为二级反射器。
在各设备上查看5.5.5.5/32路由表项:
<RTD>dis bgp routing-table 5.5.5.5 32
BGP local router ID : 4.4.4.4
Local AS number : 100
Path: 1 available, 1 best
BGP routing table entry information of 5.5.5.5/32
RR-client route
From : 40.0.0.2 (5.5.5.5)
Relay Nexthop : 0.0.0.0
Original nexthop : 40.0.0.2
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Advertised to such 1 peers:
30.0.0.1
<RTC>dis bgp routing-table 5.5.5.5 32
BGP local router ID : 3.3.3.3
Local AS number : 100
Path: 1 available, 1 best
BGP routing table entry information of 5.5.5.5/32
RR-client route
From : 30.0.0.2 (4.4.4.4)
Relay Nexthop : 30.0.0.2
Original nexthop : 40.0.0.2
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Originatror : 5.5.5.5
Cluster list : 4.4.4.4
Advertised to such 1 peers:
20.0.0.1
<RTB>dis bgp routing-table 5.5.5.5 32
BGP local router ID : 2.2.2.2
Local AS number : 100
Path: 1 available, 1 best
BGP routing table entry information of 5.5.5.5/32
From : 20.0.0.2 (3.3.3.3)
Relay Nexthop :20.0.0.2
Original nexthop : 40.0.0.2
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Originatror : 5.5.5.5
Cluster list : 3.3.3.3, 4.4.4.4
Advertised to such 1 peers:
10.0.0.1
<RTA>dis bgp routing-table 5.5.5.5 32
BGP local router ID : 1.1.1.1
Local AS number : 100
Path: 1 available, 1 best
BGP routing table entry information of 5.5.5.5/32
From : 10.0.0.2 (2.2.2.2)
Relay Nexthop :10.0.0.2
Original nexthop : 40.0.0.2
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Originatror : 5.5.5.5
Cluster list : 2.2.2.2, 3.3.3.3, 4.4.4.4
Not advertised to any peers yet
在多反射器的存在或反射器嵌套的网络里,路由在被反射时,会添加反射器的ID,这样该路由经过的反射器就被有效的记录下来。这时当反射器收到一条路由的Cluster list中,包含自己的反射器ID时,反射器就不会反射该路由,这样就可以有效的防止路由环路。
实例3:私网路由BGP路由传递
RTB、RTD和RTC组网MPLS VPN网络,RTB和RTC为PE设备,使RTD配置成VPNv4 路由反射器。从RTC经过路由反射器传递一条VPN路由44.44.44.44/32给RTB路由器, RTB的router id为2.2.2.2、RTD的router id为3.3.3.3、RTC的router id为4.4.4.4。
[RTD]dis bgp vpn vpn routing-table 44.44.44.44
BGP local router ID : 3.3.3.3
Local AS number : 100
Paths: 1 available, 1 best
BGP routing table entry information of 44.44.44.44/32:
RR-client route
From : 4.4.4.4 (4.4.4.4)
Relay Nexthop : 0.0.0.0
Original nexthop : 4.4.4.4
Ext-Community :<RT: 100:1>
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Not advertised to any peers yet
[RTB]dis bgp vpn vpn routing-table 44.44.44.44
BGP local router ID : 2.2.2.2
Local AS number : 100
Paths: 1 available, 1 best
BGP routing table entry information of 44.44.44.44/32:
From : 3.3.3.3 (3.3.3.3)
Relay Nexthop : 0.0.0.0
Original nexthop : 4.4.4.4
Ext-Community :<RT: 100:1>
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal, best,
Originatror : 4.4.4.4
Cluster list : 3.3.3.3
Not advertised to any peers yet
这样路由反射器成功屏蔽BGP的横向隔离规则,把路由传递给RTA路由器。
实例4:路由反射器的过滤
相对比较复杂的是VPNv4的路由过滤,这种过滤的在反射器上的过滤需要使用的参数一般会包括Ext-Community即RT。VPNv4的路由过滤功能一般均把RT和具体路由进行结合的过滤方式。下面以一个MPLS VPN的组网举例进行讲解。
RTB、RTD和RTC组网MPLS VPN网络,RTB和RTC为PE设备,使RTD配置成VPNv4路由反射器。RTC和RTB上均配置两个VPN,并设置RT分别为100:1和200:1。从RTC经过路由反射器同一个VPN内传递两条VPN路由44.44.44.44/32、55.55.55.55/32和66.66.66.66/32、77.77.77.77/32给RTB路由器, RTB的router id为2.2.2.2、RTD的router id为3.3.3.3、RTC的router id为4.4.4.4。
过滤全部路由方法:
- 在RTD上配置策略,针对发给RTB的路由根据RT值进行进行匹配;
- 在BGP中针对RTB的PEER应用路由策略进行发布路由;
过滤特定路由方法:
- 在RTD上配置策略,针对发给RTB的路由根据RT值与对应的路由网段进行进行匹配;
- 在BGP中针对RTB的PEER应用路由策略进行发布路由;
1.4 反射器AS内部的环路避免
Originator ID属性:路由反射器的客户收到反射器发来的路由后自动携带Originator ID属性,在属性域指示出发布这条路由的始发者路由器ID,这样接收者就可以知道在反射器群内这条路由从哪个路由器始发,如果是自己始发则不接收,可以避免在路由反射器群内的环路。
Cluster ID List属性:路由反射器的客户收到反射器发来的路由后自动携带Cluster ID List属性(是由经过的RR的router id组成),在属性域内指示出所经过的反射器群列表(反射器群ID缺省是反射器的路由器ID,可以配置),这样接收者就可以知道该路由在AS内部传播时经过了哪些反射器群,从而避免环路。具体实现方式请参考路由反射过程的范例2。