1 Introduction to route reflector
The role of routing reflector (RR) is mainly to simplify the configuration of IBGP neighbors. After using the reflector, the reflector is allowed to send the routing information from IBGP neighbors to another or a group of IBGP neighbors. The router allows the router configured as a routing reflector to transmit the route learned by IBGP to other IBGP peers, and modifies the horizontal isolation rules of BGP, so that there is no need for fully interconnected IBGP peers.
1.1 relevant roles of BGP reflector RR
- Routing reflector: a router configured to allow it to advertise (or reflect) the routes learned through IBGP to other IBGP peers;
- Client: it is a router with IBGP peer-to-peer relationship with routing reflector and configured to reflect neighbor relationship;
- Non clients: peers of other IBGP that are not clients of routing reflectors;
- Originator ID: it is created by the route reflector. This attribute has the route ID of the internal route originator of the AS;
- Cluster: routing reflector and its customer set (cluster id);
- Routing reflector cluster table: the cluster ID sequence (cluster list) through which the routing message passes.
originator ID, cluster ID and cluster table help prevent routing loops in routing reflector configuration.
1.2 BGP reflector reflection rules
Routing reflectors in turn reflect information between clients. The routing reflector and all its clients form a group. Multiple routing reflectors are allowed in a group. One routing reflector can configure other routing reflectors as its clients or non clients. Rules for routing reflectors to transmit routing updates between its clients and non clients:
- If the route update is received from a non client, it is only reflected to the client;
- If the route update is received from the client, it is reflected to all non clients and clients, except the originator of the route update;
- If the route update is received from EBGP neighbors, it is reflected to all clients and non clients
- By default, RR will only deliver the most preferred route, but you can configure additional paths select best N in BGP to deliver N equivalent routes to IBGP clients and non clients;
1.3 application scenarios
Scenario 1: the simplest IBGP peer scenario
B, C and D form an AS domain and establish IBGP neighbors between them. RTD acts AS a routing reflector to reflect routes to clients in IBGP peers.
Example 1: public network BGP routing delivery process
A route is transmitted from RTC to RTA router through routing reflector. The router id of RTA is 1.1.1.1, that of RTB is 2.2.2.2, that of RTD is 3.3.3.3, and that of RTC is 4.4.4.4.
Route 32.4/4 to IBC. The reflector RTD learns the route and reflects the route 4.4.4.4/32 to the client RTB. The following are the routing table entries of the route displayed on each device:
<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
In this way, the route reflector successfully shields the horizontal isolation rules of BGP and passes the route to RTA router.
Example 2: public network routing BGP reflector nested routing transmission process
Send a route 5.5.5.5/32 from RTE to RTA router. The router id of RTA is 1.1.1.1, that of RTB is 2.2.2.2, that of RTC is 3.3.3.3, that of RTD is 4.4.4, and that of RTE is 5.5.5.5; RTB and RTD are primary reflectors and RTC is secondary reflector.
Check the 5.5.5.5/32 routing table item on each device:
<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
In the presence of multiple reflectors or the network with nested reflectors, the ID of the reflector will be added when the route is reflected, so that the reflector passed by the route will be effectively recorded. At this time, when the reflector receives a route whose Cluster list contains its own reflector ID, the reflector will not reflect the route, which can effectively prevent the routing loop.
Example 3: private network routing BGP routing delivery
RTB, RTD and RTC network MPLS VPN network. RTB and RTC are PE devices, so RTD is configured as VPNv4 routing reflector. A VPN route 44.44.44/32 is transmitted from RTC to RTB router through routing reflector. The router id of RTB is 2.2.2.2, that of RTD is 3.3.3.3 and that of RTC is 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
In this way, the route reflector successfully shields the horizontal isolation rules of BGP and passes the route to RTA router.
Example 4: filtering of route reflector
Relatively complicated is the route filtering of VPNv4. The parameters required for filtering on the reflector of this kind of filtering generally include ext community, i.e. RT. The route filtering function of VPNv4 generally combines RT with specific routes. The following is an example of MPLS VPN networking.
RTB, RTD and RTC network MPLS VPN network. RTB and RTC are PE devices, so RTD is configured as VPNv4 routing reflector. Two VPNs are configured on RTC and RTB, and RT is set to 100:1 and 200:1 respectively. Two VPN routes 44.44.44/32, 55.55.55.55/32, 66.66.66/32 and 77.77.77.77/32 are transmitted from RTC to RTB router in the same VPN through route reflector. The router id of RTB is 2.2.2.2, that of RTD is 3.3.3.3 and that of RTC is 4.4.4.4.
Filter all routing methods:
- Configure the policy on RTD and match the route sent to RTB according to RT value;
- Apply routing policy to PEER of RTB in BGP to publish routing;
Filter specific routing methods:
- Configure the policy on RTD and match the route sent to RTB with the corresponding route network segment according to the RT value;
- Apply routing policy to PEER of RTB in BGP to publish routing;
1.4 loop avoidance inside reflector AS
Originator ID attribute: after receiving the route from the reflector, the customer of the route reflector automatically carries the originator ID attribute, indicating the originator router ID of the route in the attribute field, so that the receiver can know which router in the reflector group the route originates from. If it originates by itself, it will not be received, Loops within the routing reflector group can be avoided.
Cluster ID List attribute: after receiving the route sent by the reflector, the customer of the route reflector will automatically carry the Cluster ID List attribute, indicating the list of reflector groups in the attribute field (the reflector group ID is the router ID of the reflector by default, which can be configured), so that the receiver can know which reflector groups the route passes through when propagating within the AS, This avoids looping. Please refer to example 2 of route reflection process for specific implementation.