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 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.

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.
  • 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 with the same iBGP Local-AS number 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, the neighbor local-as command was used to customize AS_PATH attributes for routes received from an eBGP neighbor. 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, that peer acted as an iBGP local-AS client, causing the local-AS number to be prepended to routes from that neighbor. However, the connection with the neighbor was not an iBGP connection, which meant that some attributes were not preserved in outgoing updates. Updates were propagated as if the peer were an eBGP peer, and therefore the LOCAL_PREF, ORIGINATOR_ID, CLUSTER_ID, and CLUSTER_LIST attributes were not added to the route during re-advertisement because those attributes apply to iBGP.

There can be scenarios where the network administrator wants those attributes to be passed unmodified, typically to facilitate the merging of two autonomous systems. The Support for iBGP Local-AS feature causes BGP to treat an iBGP local-AS connection as an iBGP connection and pass those four attributes unmodified.

In such a scenario, an RR is in one AS; the routers in the other AS become RR clients and keep their existing AS number. The RR is configured with the neighbor remote-as command and the neighbor local-as command that specify that neighbor (client) or peer group and its AS number. The session with that neighbor is treated as iBGP when the RR advertises routes received in the session to iBGP peers that have no neighbor local-as command configured. The RR transparently passes BGP updates to and from the client routers in the other AS, passing the LOCAL_PREF, ORIGINATOR_ID, CLUSTER_ID, and CLUSTER_LIST attributes unmodified instead of dropping them.

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 the neighbor local-as command and the neighbor remote-as command, both specifying AS 3000. Even though the routers belong to two different autonomous systems, the local preference value is preserved in the updates from the client (R6) to the RR, and out to the other clients.

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

Prior to the 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. This flexibility is achieved by configuring the neighbor allow-policy command on the RR, and configuring an outbound route map to send attributes downstream to peers.

Benefits of iBGP Local-AS

  • One use case for this feature is when merging two ISPs that have different autonomous system numbers. It is desirable to preserve attributes that are considered internal (LOCAL_PREF, ORIGINATOR_ID, CLUSTER_ID, and CLUSTER_LIST) in the routes that are being passed to a different autonomous system. Configuring this feature causes these iBGP attributes in the advertised routes to be passed on to the second AS rather than dropped.

  • 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. This flexibility is achieved by configuring the neighbor allow-policy command on the RR, and configuring an outbound route map to send iBGP attributes downstream to peers.

How to Configure iBGP Local-AS

Configuring iBGP Local-AS

Configure the iBGP Local-AS feature on a route reflector when you want iBGP attributes to be preserved in updates to a neighbor or peer group in another AS. Optionally, you can enable the route reflector to change iBGP attributes sent to a neighbor.


Note


This task includes the optional neighbor allow-policy command that enables you to configure the route reflector to change iBGP attributes, but it does not include the route map that actually changes iBGP attributes.
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 ActionPurpose
    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 5neighbor peer-group-name peer-group


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

    (Optional) Identifies a peer group.

     
    Step 6neighbor {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, CLUSTER_ID, and CLUSTER_LIST) will not be dropped from routes in advertisements to and from the peer group; the attributes will be passed unmodified. AS 2500 will be prepended to the AS_PATH attribute in routes to and 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 feature 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 website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

    To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

    Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

    http:/​/​www.cisco.com/​support

    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

    Cisco IOS XE Release 3.9S

    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