This article describes how route reflectors and confederations can work together within the same autonomous system (AS).
In a large autonomous system (AS), IBGP full-mesh scaling is usually solved through the configuration of Confederations or the configuration of Route Reflectors, but not both. However, IBGP full-mesh scaling in a large AS can also be addressed through a hybrid solution that involves both route reflectors and confederations.
R3@Router:R3# run show route protocol bgp inet.0: 26 destinations, 26 routes (26 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 102.13.144.0/20 *[BGP/170] 00:57:51, localpref 100, from 192.168.1.1 AS path: I, validation-state: unverified > to 172.16.13.1 via lt-0/0/0.31 172.16.24.0/24 *[BGP/170] 00:57:47, localpref 100, from 192.168.1.2 AS path: I, validation-state: unverified > to 172.16.23.2 via lt-0/0/0.32
edit] R1@Router:R1# run show route protocol bgp inet.0: 27 destinations, 27 routes (26 active, 0 holddown, 1 hidden) + = Active Route, - = Last Active, * = Both 172.16.24.0/24 *[BGP/170] 01:00:42, localpref 100, from 192.168.1.3 AS path: I, validation-state: unverified > to 172.16.12.2 via lt-0/0/0.12 [edit] R3@Router:R3# run show route protocol bgp inet.0: 26 destinations, 26 routes (26 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 102.13.144.0/20 *[BGP/170] 01:21:04, localpref 100, from 192.168.1.1 AS path: I, validation-state: unverified > to 172.16.13.1 via lt-0/0/0.31 [edit] R3@Router:R3#
Note that R1 is advertising 102.13.144.0/20, and R3 is advertising 172.16.24.0/24
In the output below, these prefixes are propagated to R7 in sub-as 65001:
[edit] R7@Router:R7# run show route protocol bgp 102.13.144.0/20 *[BGP/170] 01:04:31, localpref 100, from 192.168.1.5 AS path: (65000) I, validation-state: unverified > to 172.16.57.5 via lt-0/0/0.75 172.16.24.0/24 *[BGP/170] 01:04:28, localpref 100, from 192.168.1.5 AS path: (65000) I, validation-state: unverified > to 172.16.57.5 via lt-0/0/0.75 [edit] R7@Router:R7# inet.0: 26 destinations, 26 routes (26 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 102.13.144.0/20 *[BGP/170] 00:57:51, localpref 100, from 192.168.1.1 AS path: I, validation-state: unverified > to 172.16.13.1 via lt-0/0/0.31 172.16.24.0/24 *[BGP/170] 00:57:47, localpref 100, from 192.168.1.2 AS path: I, validation-state: unverified > to 172.16.23.2 via lt-0/0/0.32
edit] R1@Router:R1# show interfaces { lt-0/0/0 { unit 13 { encapsulation ethernet; peer-unit 31; family inet { address 172.16.13.1/24; } family mpls; } unit 81 { encapsulation ethernet; peer-unit 82; family inet { address 102.13.144.81/20; } } } lo0 { unit 1 { family inet { address 192.168.1.1/32; } } } } protocols { bgp { group IBGP { type internal; local-address 192.168.1.1; export [ NHS DIRECT ]; peer-as 65000; neighbor 192.168.1.3; } } ospf { area 0.0.0.0 { interface all; interface lt-0/0/0.81 { disable; } } } } policy-options { policy-statement DIRECT { term 1 { from { protocol direct; route-filter 102.0.0.0/8 orlonger; } then accept; } } policy-statement NHS { term 10 { from protocol bgp; then { next-hop self; } } term 20 { then next policy; } } } routing-options { router-id 192.168.1.1; autonomous-system 65000; confederation 17 members [ 65000 65001 ]; } [edit] R1@Router:R1#
[edit] R2@Router:R2# show interfaces { lt-0/0/0 { unit 23 { encapsulation ethernet; peer-unit 32; family inet { address 172.16.23.2/24; } } unit 24 { encapsulation ethernet; peer-unit 42; family inet { address 172.16.24.2/24; } } } lo0 { unit 22 { family inet { address 192.168.1.2/32; } } } } protocols { bgp { group IBGP { type internal; export [ NHS DIRECT ]; peer-as 65000; neighbor 192.168.1.3; } } ospf { area 0.0.0.0 { interface all; interface lt-0/0/0.24 { disable; } } } } policy-options { policy-statement DIRECT { term 1 { from { protocol direct; route-filter 172.16.24.0/24 orlonger; } then accept; } } policy-statement NHS { term 10 { from protocol bgp; then { next-hop self; } } } } routing-options { autonomous-system 65000; confederation 17 members [ 65000 65001 ]; } [edit] R2@Router:R2#
[edit] R3@Router:R3# show interfaces { lt-0/0/0 { unit 31 { encapsulation ethernet; peer-unit 13; family inet { address 172.16.13.3/24; } } unit 32 { encapsulation ethernet; peer-unit 23; family inet { address 172.16.23.3/24; } } unit 35 { encapsulation ethernet; peer-unit 53; family inet { address 172.16.35.3/24; } } } lo0 { unit 3 { family inet { address 192.168.1.3/32; } } } } protocols { bgp { cluster 192.168.1.3; group IBGP { type internal; local-address 192.168.1.3; peer-as 65000; neighbor 192.168.1.1; neighbor 192.168.1.2; inactive: neighbor 192.168.1.4; inactive: neighbor 192.168.1.6; } group SUB-65001 { type external; multihop; local-address 192.168.1.3; peer-as 65001; neighbor 192.168.1.5; } } ospf { area 0.0.0.0 { interface all; } } } routing-options { router-id 192.168.1.3; autonomous-system 65000; confederation 17 members [ 65000 65001 ]; } [edit] R3@Router:R3#
[edit] R5@Router:R5# show interfaces { lt-0/0/0 { unit 53 { encapsulation ethernet; peer-unit 35; family inet { address 172.16.35.5/24; } } unit 100 { encapsulation ethernet; peer-unit 75; family inet { address 172.16.57.5/24; } } } lo0 { unit 55 { family inet { address 192.168.1.5/32; } } } } protocols { bgp { group IBGP { type internal; local-address 192.168.1.5; export NHS; peer-as 65001; neighbor 192.168.1.7; } group SUB-65000 { type external; multihop; local-address 192.168.1.5; peer-as 65000; neighbor 192.168.1.3; } } ospf { area 0.0.0.0 { interface all; } } } policy-options { policy-statement NHS { term 10 { from protocol bgp; then { next-hop self; } } } } routing-options { autonomous-system 65001; confederation 17 members [ 65000 65001 ]; } [edit] R5@Router:R5#
R7@Router:R7# show interfaces { lt-0/0/0 { unit 75 { description link_to_R5; encapsulation ethernet; peer-unit 100; family inet { address 172.16.57.7/24; } } } lo0 { unit 7 { family inet { address 192.168.1.7/32; } } } } protocols { bgp { group Internal { type internal; local-address 192.168.1.7; export NHS; neighbor 192.168.1.5 { peer-as 65001; } } } ospf { area 0.0.0.0 { interface lt-0/0/0.75; interface lo0.7; } } } policy-options { policy-statement NHS { term 1 { from protocol bgp; then { next-hop self; } } } } routing-options { router-id 192.168.1.7; autonomous-system 65001; confederation 17 members [ 65000 65001 ]; } [edit] R7@Router:R7#