BGP Next Hop Unchanged

In an external BGP (eBGP) session, by default, the router changes the next hop attribute of a BGP route (to its own address) when the router sends out a route. The BGP Next Hop Unchanged feature allows BGP to send an update to an eBGP multihop peer with the next hop attribute unchanged.

Information About Next Hop Unchanged

BGP Next Hop Unchanged

In an external BGP (eBGP) session, by default, the router changes the next hop attribute of a BGP route (to its own address) when the router sends out a route. If the BGP Next Hop Unchanged feature is configured, BGP will send routes to an eBGP multihop peer without modifying the next hop attribute. The next hop attribute is unchanged.


Note


There is an exception to the default behavior of the router changing the next hop attribute of a BGP route when the router sends out a route. When the next hop is in the same subnet as the peering address of the eBGP peer, the next hop is not modified. This is referred to as third party next-hop.


The BGP Next Hop Unchanged feature provides flexibility when designing and migrating networks. It can be used only between eBGP peers configured as multihop. It can be used in a variety of scenarios between two autonomous systems. One scenario is when multiple autonomous systems are connected that share the same IGP, or at least the routers have another way to reach each other’s next hops (which is why the next hop can remain unchanged).

A common use of this feature is to configure Multiprotocol Label Switching (MPLS) inter-AS with multihop MP-eBGP for VPNv4 between RRs.

Another common use of this feature is a VPNv4 inter-AS Option C configuration, as defined in RFC4364, Section 10. In this configuration, VPNv4 routes are passed among autonomous systems between RR of different autonomous systems. The RRs are several hops apart, and have neighbor next-hop unchanged configured. PEs of different autonomous systems establish an LSP between them (via a common IGP or by advertising the next-hops--that lead to the PEs--via labeled routes among the ASBRs--routes from different autonomous systems separated by one hop). PEs are able to reach the next hops of the PEs in another AS via the LSPs, and can therefore install the VPNv4 routes in the VRF RIB.

Restriction

The BGP Next Hop Unchanged feature can be configured only between multihop eBGP peers. The following error message will be displayed if you try to configure this feature for a directly connected neighbor:


%BGP: Can propagate the nexthop only to multi-hop EBGP neighbor

How to Configure BGP Next Hop Unchanged

Configuring the BGP Next Hop Unchanged for an eBGP Peer

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. address-family {ipv4 | ipv6 | l2vpn | nsap | rtfilter | vpnv4 | vpnv6 }
  5. neighbor ip-address remote-as as-number
  6. neighbor ip-address activate
  7. neighbor ip-address ebgp-multihop ttl
  8. neighbor ip-address next-hop-unchanged
  9. end
  10. show ip bgp

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Router> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Router# configure terminal

Enters global configuration mode.

Step 3

router bgp as-number

Example:


Router(config)# router bgp 65535

Enters router configuration mode, and creates a BGP routing process using the specified AS number.

Step 4

address-family {ipv4 | ipv6 | l2vpn | nsap | rtfilter | vpnv4 | vpnv6 }

Example:


Router(config-router-af)# address-family vpnv4 

Enters address family configuration mode to configure BGP peers to accept address family specific configurations.

Step 5

neighbor ip-address remote-as as-number

Example:


Router(config-router-af)# neighbor 10.0.0.100 remote-as 65600

Adds an entry to the BGP neighbor table.

Step 6

neighbor ip-address activate

Example:


Router(config-router-af)# neighbor 10.0.0.100 activate 

Enables the exchange of information with the peer.

Step 7

neighbor ip-address ebgp-multihop ttl

Example:


Router(config-router-af)# neighbor 10.0.0.100 ebgp-multihop 255 

Configures the local router to accept and initiate connections to external peers that reside on networks that are not directly connected.

Step 8

neighbor ip-address next-hop-unchanged

Example:


Router(config-router-af)# neighbor 10.0.0.100 next-hop-unchanged 

Configures the router to send BGP updates to the specified BGP peer without modifying the next hop attribute.

Note

 

This command applies to iBGP routes, not eBGP routes. If you want to apply this setting to both iBGP and eBGP routes, use the neighbor ip-address next-hopunchanged allpaths command.

Step 9

end

Example:


Router(config-router-af)# end 

Exits address family configuration mode, and enters privileged EXEC mode.

Step 10

show ip bgp

Example:


Router# show ip bgp 

(Optional) Displays entries in the BGP routing table.

  • The output will indicate if the neighbor next-hop-unchanged command has been configured for the selected address.

Configuring BGP Next Hop Unchanged using Route-Maps

Configuring outbound route-map for eBGP neighbor

To define the route-map and apply outbound policy for neighbor, use set ip next-hop unchanged command. This command is applicable for both iBGP and eBGP neighbors and does not require the 'allpaths' option. The 'allpaths' is specifically needed in neighbor statement configurations for eBGP to advertise multiple paths.

In the following configuration the next-hop for prefix 1.1.1.1 is not changed while sending to the eBGP neighbor 15.1.1.2:
enable
config terminal 
router bgp 2
 bgp log-neighbor-changes
 neighbor 15.1.1.2 remote-as 3
 neighbor 15.1.1.2 ebgp-multihop 10 
 !
 address-family ipv4
  neighbor 15.1.1.2 activate 
  neighbor 15.1.1.2 route-map A out
  exit address-family
!
route-map A permit 10
 match ip address 1
 set ip next-hop unchanged
!
access-list 1 permit 1.1.1.1
end

Configuring next-hop unchanged for both iBGP and eBGP path prefixes while sending to eBGP neighbor

To configure next-hop unchanged for both iBGP and eBGP path prefixes while sending to eBGP neighbor, use next-hop-unchanged allpaths command.


Note


From Cisco IOS XE Denali 16.3 release, thenext-hop-unchanged allpaths command supports IPv4 and IPv6 address families along with VPNv4 and VPNv6 address families.


In the following configuration the next-hop is not changed for both iBGP and eBGP path prefixes while sending to eBGP neighbor 15.1.1.2:
enable
config terminal
router bgp 2
 bgp log-neighbor-changes
 neighbor 15.1.1.2 remote-as 3
 neighbor 15.1.1.2 ebgp-multihop 10  
!
address-family ipv4
 neighbor 15.1.1.2 activate 
 neighbor 15.1.1.2 next-hop-unchanged allpaths
 exit address-family
!
end

Configuration Example for BGP Next Hop Unchanged

Example: BGP Next Hop Unchanged for an eBGP Peer

The following example configures a multihop eBGP peer at 10.0.0.100 in a remote AS. When the local router sends updates to that peer, it will send them without modifying the next hop attribute.


router bgp 65535
 address-family ipv4
 neighbor 10.0.0.100 remote-as 65600
 neighbor 10.0.0.100 activate 
 neighbor 10.0.0.100 ebgp-multihop 255
 neighbor 10.0.0.100 next-hop-unchanged allpaths
 end

Note


All address families, such as IPv4, IPv6, VPNv4, VPNv6, L2VPN, and so on support the next-hop unchanged command. However, for the address family L2VPN BGP VPLS signaling, you must use the next-hop self command for its proper functioning.

Note


When configuring eBGP peers for scenarios that require the advertisement of eBGP routes without modifying the next hop attribute, ensure that the 'allpath' option is included as necessary.


Additional References

Related Documents

Related Topic

Document Title

Cisco IOS commands

Cisco IOS Master Command List, All Releases

BGP commands

Cisco IOS IP Routing: BGP Command Reference

BGP Outbound Route Map on Route Reflector to Set IP Next Hop for iBGP Peer

“Configuring Internal BGP Features” in the IP Routing: BGP Configuration Guide

Technical Assistance

Description

Link

The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.

http://www.cisco.com/cisco/web/support/index.html

Feature Information for BGP Next Hop Unchanged

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 1. Feature Information for BGP Next Hop Unchanged

Feature Name

Releases

Feature Information

BGP Next Hop Unchanged

Cisco IOS XE Release 2.1

The BGP Next Hop Unchanged feature allows BGP to send an update to an eBGP multihop peer with the next hop attribute unchanged.

The following command was added by this feature: neighbor next-hop-unchanged .

set ip next-hop unchanged/next-hop-unchanged allpaths IPv4/IPv6

Cisco IOS XE Denali 16.3.1

In Cisco IOS XE Denali 16.3 release, the set ip next-hop unchanged/next-hop-unchanged allpaths IPv4/IPv6 feature extends the support for BGP Next Hop Unchanged to IPv4 and IPv6 allpaths.

The set ip next-hop unchanged/next-hop-unchanged allpaths IPv4/IPv6 feature adds two new knobs to support BGP Next Hop Unchanged. The 'set ip next-hop unchanged' knob was added under the route-map and 'next-hop-unchanged allpaths' was added under the neighbor.

The following command was modified by this feature: set ip next-hop unchanged .