BGP—Support for iBGP Local-AS

Prior to the BGP—Support for iBGP Local-AS feature, the neighbor local-as command was used on a BGP speaker to change the AS negotiated for an eBGP neighbor and to modify the AS_PATH sent and/or received. The neighbor local-as command can now be used to do the same on an iBGP session. AS negotiation creates an iBGP session and we enable sending iBGP attributes (LOCAL_PREF, ORIGINATOR_ID, and CLUSTER_LIST) over it, and accept this attributes when received from this session. This functionality is useful when merging two autonomous systems into one.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.

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.

Restrictions for Support for iBGP Local-AS

  • This feature is not supported for a peer that belongs to a confederation.

  • Nonlocal-AS iBGP neighbors that are in a single AS are put into a separate update group from iBGP neighbors that are configured with the iBGP Local-AS feature.

  • Two iBGP neighbors that are in two different autonomous systems and that are configured as iBGP Local-AS neighbors are put into separate update groups.

Information About Support for iBGP Local-AS

Support for iBGP Local-AS

Prior to the Support for iBGP Local-AS feature, when a peer (or peer group) was configured with the neighbor local-as command and the neighbor remote-as command that specified the same AS number, the session would be negotiated as an iBGP session (this happens when the advertised ASes in both OPEN messages are the same). However, updates were propagated as in an eBGP session (LOCAL_PREF, ORIGINATOR_ID and CLUSTER_LIST were not propagated), and could cause errors if they were received via this session. Thus, iBGP local-AS was not fully supported.

The Support for iBGP Local-AS feature means all those iBGP attributes are propogated. Additionally, as in any iBGP session, the AS is not prepended in AS_PATH attribute when advertising routes to an iBGP local-as session.

The figure below illustrates a scenario where this feature is being used to facilitate the merging of two autonomous systems. The route reflector R3 and R4 belong to AS 1000; R1 and R6 belong to AS 3000. The RR is configured with neighbor local-as 3000 and neighbor remote-as 3000 commands. Even though the routers belong to two different autonomous systems, attributes like the LOCAL_PREF are preserved in the updates from R6 to R4 and R6 to R1 (as show in the figure), and also in the updates from R4 to R1 and R4 to R6 (not shown in the figure).

Figure 1. Support for iBGP Local-AS to Preserve iBGP Policies Between Two Autonomous Systems

Benefits of iBGP Local-AS

This feature is used when merging two ISPs that have different autonomous system numbers. It is desirable to preserve attributes that are considered internal (LOCAL_PREF, ORIGINATOR_ID, and CLUSTER_LIST) in the routes that are being propogated to other autonomous system.

How to Configure iBGP Local-AS

Configuring iBGP Local-AS

Configure the iBGP Local-AS feature on a BGP speaker for a given neighbor when you want that session to behave as a full iBGP session. This configuration is typically performed on a route reflector, but not exclusively on it. In a route reflector you can optionally configure changing iBGP attributes sent to a neighbor via the command allow-policy (this command is not exclusive for this feature and can be used on any RR).

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ipv6 unicast-routing
  4. router bgp autonomous-system-number
  5. neighbor peer-group-name peer-group
  6. neighbor {ip-address | ipv6-address} peer-group peer-group-name
  7. neighbor {ip-address | ipv6-address | peer-group} remote-as as-number
  8. neighbor {ip-address | ipv6-address | peer-group} local-as as-number
  9. neighbor {ip-address | ipv6-address | peer-group} route-reflector-client
  10. address-family vpnv4
  11. neighbor {ip-address | ipv6-address | peer-group} allow-policy
  12. exit
  13. address-family vpnv6
  14. neighbor {ip-address | ipv6-address | peer-group} allow-policy
  15. end
  16. show ip bgp vpnv4 all neighbors {ip-address | ipv6-address} policy
  17. show ip bgp vpnv4 all update-group update-group
  18. show ip bgp vpnv4 all neighbors {ip-address | ipv6-address}

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:

Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 3

ipv6 unicast-routing

Example:

Device(config)# ipv6 unicast-routing

Enables the forwarding of IPv6 unicast datagrams.

Step 4

router bgp autonomous-system-number

Example:

Device(config)# router bgp 1000 

Enters router configuration mode to create or configure a BGP routing process.

Step 5

neighbor peer-group-name peer-group

Example:

Device(config-router)# neighbor rr-client-ab peer-group

(Optional) Identifies a peer group.

Step 6

neighbor {ip-address | ipv6-address} peer-group peer-group-name

Example:

Device(config-router)# neighbor 192.168.3.3 peer-group rr-client-ab

(Optional) Configures a BGP neighbor to be a member of a peer group.

Step 7

neighbor {ip-address | ipv6-address | peer-group} remote-as as-number

Example:

Device(config-router)# neighbor rr-client-ab remote-as 3000 

Identifies the AS of the neighbor or peer group.

Step 8

neighbor {ip-address | ipv6-address | peer-group} local-as as-number

Example:

Device(config-router)# neighbor rr-client-ab local-as 3000 

Configures the local-AS feature for the neighbor or peer group.

Step 9

neighbor {ip-address | ipv6-address | peer-group} route-reflector-client

Example:

Device(config-router)# neighbor rr-client-ab route-reflector-client 

Configures the local device to be a route reflector and configures the neighbor or peer group to be its client.

Step 10

address-family vpnv4

Example:

Device(config-router)# address-family vpnv4 

(Optional) Places the router in VPNv4 address family configuration mode.

Step 11

neighbor {ip-address | ipv6-address | peer-group} allow-policy

Example:

Device(config-router-af)# neighbor rr-client-ab allow-policy 

(Optional) Allows the RR to be configured to change iBGP attributes for the specified neighbor or peer group.

Step 12

exit

Example:

Device(config-router-af)# exit 

Exits address family configuration mode and enters router configuration mode.

Step 13

address-family vpnv6

Example:

Device(config-router)# address-family vpnv6 

(Optional) Places the router in VPNv6 address family configuration mode.

Step 14

neighbor {ip-address | ipv6-address | peer-group} allow-policy

Example:

Device(config-router-af)# neighbor rr-client-ab allow-policy 

(Optional) Allows the RR to be configured to change iBGP attributes for the specified neighbor or peer group.

Step 15

end

Example:


Device(config-router-af)# end 

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

Step 16

show ip bgp vpnv4 all neighbors {ip-address | ipv6-address} policy

Example:

Device# show ip bgp vpnv4 all neighbors 192.168.3.3 policy

(Optional) Displays the locally configured policies of the neighbor.

  • The output includes the phrase “allow-policy” if the neighbor allow-policy command was configured for that neighbor.

Step 17

show ip bgp vpnv4 all update-group update-group

Example:

Device# show ip bgp vpnv4 all update-group 2 

(Optional) Displays the information for the update group.

  • The output includes the phrase “Allow-policy” if the neighbor allow-policy command was configured for neighbors in the update group.

Step 18

show ip bgp vpnv4 all neighbors {ip-address | ipv6-address}

Example:

Device# show ip bgp vpnv4 all neighbors 192.168.3.3

(Optional) Displays information about the neighbor.

  • The output includes the remote AS and local AS, which will indicate the same AS number when the Support for iBGP Local-AS feature is configured.

Configuration Examples for iBGP Local-AS

Example: Configuring iBGP Local-AS

The example configures a route reflector (RR) in AS 4000 to treat BGP sessions with the peer group rr-client-2 in AS 2500 as iBGP sessions. That is, iBGP attributes (LOCAL_PREF, ORIGINATOR_ID, and CLUSTER_LIST) will not be dropped from routes in advertisements to and from the neighbors belonging to the peer group; the attributes will be passed unmodified. AS 2500 will not be prepended to the AS_PATH attribute in routes to or from the peer group.

Additionally, the neighbor allow-policy command configures that the network administrator can configure iBGP policies on the RR. That is, an outbound route map can be configured to change attributes that are sent to the downstream peers. In this example, the command is applied to VPNv4 and VPNv6 address families.


router bgp 4000 
 neighbor rr-client-2 peer-group
 neighbor 192.168.1.1 peer-group rr-client-2
 neighbor 192.168.4.1 peer-group rr-client-2
 neighbor rr-client-2 remote-as 2500 
 neighbor rr-client-2 local-as 2500
 neighbor rr-client-2 route-reflector-client
 address-family vpnv4
  neighbor rr-client-2 allow-policy
!
 address-family vpnv6
  neighbor rr-client-2 allow-policy

Additional References for Support for iBGP Local-AS

Related Documents

Related Topic

Document Title

Cisco IOS commands

Cisco IOS Master Commands List, All Releases

BGP commands

Cisco IOS IP Routing: BGP Command Reference

Migration of autonomous systems

“BGP Support for Dual AS Configuration for Network AS Migrations” module in the IP Routing: BGP Configuration Guide, Cisco IOS XE Release 3S

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—Support for iBGP Local-AS

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—Support for iBGP Local-AS

Feature Name

Releases

Feature Information

BGP—Support for iBGP Local-AS

Prior to the BGP—Support for Local-AS feature, the neighbor local-as command was used on a route reflector to customize AS_PATH attributes for routes received from an eBGP neighbor. The neighbor local-as command can now be used to enable the sending of the iBGP attributes (LOCAL_PREF, ORIGINATOR_ID, CLUSTER_ID, and CLUSTER_LIST) over an iBGP local-AS session. This functionality is useful when merging two autonomous systems, when it is advantageous to keep the iBGP attributes in routes.

Prior to the BGP—Support for iBGP Local-AS feature, the RR should not have been configured to change iBGP attributes. With the introduction of this feature, the RR can be configured to change iBGP attributes, providing more flexibility.

The following command was introduced:

  • neighbor allow-policy

The following commands were modified:

  • neighbor local-as
  • show ip bgp vpnv4