Hi Team,
I am trying to setup BGP ECMP in my test scenario before implementing it in production scenario. I really failed to understand why ECMP is not being setup in my scenario? Can someone pls help? Here is my scenario and config
R1 Config
set interfaces ethernet eth0 address '10.10.20.10/24'
set interfaces ethernet eth0 hw-id '00:0c:29:d4:6e:9e'
set interfaces ethernet eth1 address '10.10.30.10/24'
set interfaces ethernet eth1 hw-id '00:0c:29:d4:6e:a8'
set interfaces ethernet eth2 address '10.10.40.10/24'
set interfaces ethernet eth2 hw-id '00:0c:29:d4:6e:b2'
set interfaces ethernet eth3 address '10.44.44.10/24'
set interfaces ethernet eth3 hw-id '00:0c:29:d4:6e:bc'
set interfaces loopback lo
set policy route-map AS65004 rule 10 action 'permit'
set policy route-map AS65004 rule 10 set as-path-prepend '65004'
set protocols bgp 65001 address-family ipv4-unicast maximum-paths ebgp '3'
set protocols bgp 65001 address-family ipv4-unicast network 10.44.44.0/24
set protocols bgp 65001 neighbor 10.10.20.20 remote-as '65002'
set protocols bgp 65001 neighbor 10.10.20.20 update-source '10.10.20.10'
set protocols bgp 65001 neighbor 10.10.30.20 remote-as '65003'
set protocols bgp 65001 neighbor 10.10.30.20 update-source '10.10.30.10'
set protocols bgp 65001 neighbor 10.10.40.20 remote-as '65005'
set protocols bgp 65001 neighbor 10.10.40.20 update-source '10.10.40.10'
R2 Config
set interfaces ethernet eth0 address '10.10.20.20/24'
set interfaces ethernet eth0 hw-id '00:0c:29:1a:64:0f'
set interfaces ethernet eth1 address '192.168.20.20/24'
set interfaces ethernet eth1 hw-id '00:0c:29:1a:64:19'
set interfaces loopback lo
set protocols bgp 65002 neighbor 10.10.20.10 remote-as '65001'
set protocols bgp 65002 neighbor 10.10.20.10 update-source '10.10.20.20'
set protocols bgp 65002 neighbor 192.168.20.10 remote-as '65004'
set protocols bgp 65002 neighbor 192.168.20.10 update-source '192.168.20.20'
R3 Config
set interfaces ethernet eth0 address '10.10.30.20/24'
set interfaces ethernet eth0 hw-id '00:0c:29:b5:16:c7'
set interfaces ethernet eth1 address '192.168.30.20/24'
set interfaces ethernet eth1 hw-id '00:0c:29:b5:16:d1'
set interfaces loopback lo
set protocols bgp 65003 neighbor 10.10.30.10 remote-as '65001'
set protocols bgp 65003 neighbor 10.10.30.10 update-source '10.10.30.20'
set protocols bgp 65003 neighbor 192.168.30.10 remote-as '65004'
set protocols bgp 65003 neighbor 192.168.30.10 update-source '192.168.30.20'
R4 config
set interfaces ethernet eth0 address '10.10.40.20/24'
set interfaces ethernet eth0 hw-id '00:0c:29:ef:bb:2c'
set interfaces ethernet eth1 address '192.168.40.20/24'
set interfaces ethernet eth1 hw-id '00:0c:29:ef:bb:36'
set interfaces loopback lo
set protocols bgp 65005 neighbor 10.10.40.10 remote-as '65001'
set protocols bgp 65005 neighbor 10.10.40.10 update-source '10.10.40.20'
set protocols bgp 65005 neighbor 192.168.40.10 remote-as '65004'
set protocols bgp 65005 neighbor 192.168.40.10 update-source '192.168.40.20'
R5 Config
set interfaces ethernet eth0 address '192.168.20.10/24'
set interfaces ethernet eth0 hw-id '00:0c:29:e3:b7:c7'
set interfaces ethernet eth1 address '192.168.30.10/24'
set interfaces ethernet eth1 hw-id '00:0c:29:e3:b7:d1'
set interfaces ethernet eth2 address '192.168.40.10/24'
set interfaces ethernet eth2 hw-id '00:0c:29:e3:b7:db'
set interfaces ethernet eth3 address '172.28.7.10/24'
set interfaces ethernet eth3 hw-id '00:0c:29:e3:b7:e5'
set interfaces loopback lo
set policy route-map AS65001 rule 10 action 'permit'
set policy route-map AS65001 rule 10 set as-path-prepend '65001'
set protocols bgp 65004 address-family ipv4-unicast maximum-paths ebgp '3'
set protocols bgp 65004 address-family ipv4-unicast network 172.28.7.0/24
set protocols bgp 65004 neighbor 192.168.20.20 remote-as '65002'
set protocols bgp 65004 neighbor 192.168.20.20 update-source '192.168.20.10'
set protocols bgp 65004 neighbor 192.168.30.20 remote-as '65003'
set protocols bgp 65004 neighbor 192.168.30.20 update-source '192.168.30.10'
set protocols bgp 65004 neighbor 192.168.40.20 remote-as '65005'
set protocols bgp 65004 neighbor 192.168.40.20 update-source '192.168.40.10'
R1 Routing Table
vyos@R1# run show ip bgp
BGP table version is 3, local router ID is 10.44.44.10, vrf id 0
Default local pref 100, local AS 65001
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.44.44.0/24 0.0.0.0 0 32768 i
* 172.28.7.0/24 10.10.40.20 0 65005 65004 i
* 10.10.30.20 0 65003 65004 i
*> 10.10.20.20 0 65002 65004 i
R5 Routing Table
vyos@R5# run show ip bgp
BGP table version is 2, local router ID is 192.168.40.10, vrf id 0
Default local pref 100, local AS 65004
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 10.44.44.0/24 192.168.40.20 0 65005 65001 i
*> 192.168.20.20 0 65002 65001 i
* 192.168.30.20 0 65003 65001 i
*> 172.28.7.0/24 0.0.0.0 0 32768 i
**********************
vyos@R5# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
B>* 10.44.44.0/24 [20/0] via 192.168.20.20, eth0, weight 1, 02:21:41
C>* 172.28.7.0/24 is directly connected, eth3, 02:39:34
C>* 192.168.20.0/24 is directly connected, eth0, 02:34:18
C>* 192.168.30.0/24 is directly connected, eth1, 02:39:35
C>* 192.168.40.0/24 is directly connected, eth2, 02:39:34