Cheers Steve. This is what I thought would have to happen. Much appreciated. Although the example here uses the next-hop self for the eBGP router at the edge of the AS. That is a given for that router to have a next-hop self command. The example does not show a next-hop self there, only a continuation or redistribution of the iBGP routes. I will give this a go and see what the results are and post here.
Original Message:
Sent: 01-26-2025 19:54
From: spuluka
Subject: Next hop for route-reflected routes
By default a route reflector or confederation does not change the next hop of a route from the original one received by the originating BGP peer. If this is not a valid next hop for the receiver the route is not usable.
In those cases you need to add the term next-hop-self to the export policy on the RR facing those clients. This will then have the RR interface to that client as the next hop for those matching routes.
You can see an example policy in this kb article.
https://supportportal.juniper.net/s/article/Best-practices-for-route-reflector-configuration-with-regard-to-next-hop-self
------------------------------
Steve Puluka BSEET - Juniper Ambassador
IP Architect - DQE Communications Pittsburgh, PA (Metro Ethernet & ISP - Retired)
http://puluka.com/home
Original Message:
Sent: 01-26-2025 15:13
From: Clive Gwyther
Subject: Next hop for route-reflected routes
I have 4 nodes as follows:
Dummy --> R1 --> R2 (route-reflector) --> R3
Dummy - Just has a loopback and a static stating all routes to R1
R1 - iBGP connectivity to R2(route-reflector)
R2 is the route reflector
R3 Is the receiver of the routes
R3 can see the loopback network of the dummy node, so I know all of that part is configured correctly. I think what is missing is that the reflected advertised route of 10.10.10.0/24 (aggregate) to R3 has the next-hop still labelled as R1 (especially as I also cannot see the R1 to Dummy connected interfaces either on R3).
Question: If the route-reflector cannot change the "next-hop" attribute when forwarding the routes, how will R3 ever know how to get to the loopback address on the dummy when the current next-hop for that network is R1?
Can I change the next-hop at the reflector?
What is the best way to achieve the connectivity?
Here is the basic configs of each system (and it is basic):
DUMMY:
set interfaces ge-0/0/1 description to-router1-ge-0/0/1
set interfaces ge-0/0/1 unit 0 family inet address 172.16.10.1/24
set interfaces lo0 description dummy-address
set interfaces lo0 unit 0 family inet address 10.10.10.1/24
set routing-options static route 0.0.0.0/0 next-hop 172.16.10.2
R1:
set interfaces ge-0/0/0 description to-rr
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30
set interfaces ge-0/0/1 description to-dummy-ge-0/0/1
set interfaces ge-0/0/1 unit 0 family inet address 172.16.10.2/24
set interfaces lo0 unit 0 family inet address 192.168.1.254/32
set routing-options static route 192.168.50.250/32 next-hop 192.168.1.2
set routing-options static route 10.10.10.1/32 next-hop 172.16.10.1
set routing-options aggregate route 10.10.10.0/24
set routing-options autonomous-system 44009
set protocols bgp group internal-peers type internal
set protocols bgp group internal-peers local-address 192.168.1.254
set protocols bgp group internal-peers log-updown
set protocols bgp group internal-peers export export-route
set protocols bgp group internal-peers peer-as 44009
set protocols bgp group internal-peers neighbor 192.168.50.250
set policy-options policy-statement export-route term 1 from protocol static
set policy-options policy-statement export-route term 1 from protocol aggregate
set policy-options policy-statement export-route term 1 then accept
R2 (route-reflector):
set interfaces ge-0/0/0 description to-router-1
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30
set interfaces ge-0/0/1 description to-router-2
set interfaces ge-0/0/1 unit 0 family inet address 192.168.1.6/30
set interfaces lo0 unit 0 family inet address 192.168.50.250/32
set routing-options static route 192.168.1.254/32 next-hop 192.168.1.1
set routing-options static route 192.168.10.252/32 next-hop 192.168.1.5
set routing-options autonomous-system 44009
set protocols bgp group internal-peers type internal
set protocols bgp group internal-peers local-address 192.168.50.250
set protocols bgp group internal-peers log-updown
set protocols bgp group internal-peers cluster 192.168.50.250
set protocols bgp group internal-peers peer-as 44009
set protocols bgp group internal-peers neighbor 192.168.1.254
set protocols bgp group internal-peers neighbor 192.168.10.252
R3:
set interfaces ge-0/0/1 description to-rr-ge-0/0/1
set interfaces ge-0/0/1 unit 0 family inet address 192.168.1.5/30
set interfaces lo0 unit 0 family inet address 192.168.10.252/32
set routing-options static route 192.168.50.250/32 next-hop 192.168.1.6
set routing-options static route 0.0.0.0/0 next-hop 192.168.1.6
set routing-options autonomous-system 44009
set protocols bgp group internal-peers type internal
set protocols bgp group internal-peers local-address 192.168.10.252
set protocols bgp group internal-peers log-updown
set protocols bgp group internal-peers peer-as 44009
set protocols bgp group internal-peers neighbor 192.168.50.250
R2 (route-reflector) - Advertised routes to R3:
Prefix Nexthop MED Lclpref AS path
* 10.10.10.0/24 192.168.1.254 100 I
And you see the next-hop is R1
------------------------------
Clive Gwyther
------------------------------