BGP NSF Awareness

Nonstop Forwarding (NSF) awareness allows a device to assist NSF-capable neighbors to continue forwarding packets during a Stateful Switchover (SSO) operation. The BGP NSF Awareness feature allows an NSF-aware device that is running BGP to forward packets along routes that are already known for a device that is performing an SSO operation. This capability allows the BGP peers of the failing device to retain the routing information that is advertised by the failing device and continue to use this information until the failed device has returned to normal operating behavior and is able to exchange routing information. The peering session is maintained throughout the entire NSF operation.

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 BGP NSF Awareness

On Cisco Catalyst 3650 Series Switches, virtual routing and forwarding (VRF) instances are not supported for the BGP NSF Awareness feature.

Information About BGP NSF Awareness

Cisco NSF Routing and Forwarding Operation

Cisco NSF is supported by the BGP, EIGRP, OSPF, and IS-IS protocols for routing and by Cisco Express Forwarding (CEF) for forwarding. Of the routing protocols, BGP, EIGRP, OSPF, and IS-IS have been enhanced with NSF capability and awareness, which means that devices running these protocols can detect a switchover and take the necessary actions to continue forwarding network traffic and to recover route information from the peer devices.

In this module, a networking device is said to be NSF-aware if it is running NSF-compatible software. A device is said to be NSF-capable if it has been configured to support NSF; therefore, it rebuilds routing information from NSF-aware or NSF-capable neighbors.

Each protocol depends on CEF to continue forwarding packets during switchover while the routing protocols rebuild the Routing Information Base (RIB) tables. Once the routing protocols have converged, CEF updates the Forwarding Information Base (FIB) table and removes stale route entries. CEF then updates the line cards with the new FIB information.

Cisco Express Forwarding for NSF

A key element of NSF is packet forwarding. In a Cisco networking device, packet forwarding is provided by CEF. CEF maintains the FIB and uses the FIB information that was current at the time of the switchover to continue forwarding packets during a switchover. This feature reduces traffic interruption during the switchover.

During normal NSF operation, CEF on the active RP synchronizes its current FIB and adjacency databases with the FIB and adjacency databases on the standby RP. Upon switchover of the active RP, the standby RP initially has FIB and adjacency databases that are mirror images of those that were current on the active RP. For platforms with intelligent line cards, the line cards will maintain the current forwarding information over a switchover; for platforms with forwarding engines, CEF will keep the forwarding engine on the standby RP current with changes that are sent to it by CEF on the active RP. In this way, the line cards or forwarding engines will be able to continue forwarding after a switchover as soon as the interfaces and a data path are available.

As the routing protocols start to repopulate the RIB on a prefix-by-prefix basis, the updates in turn cause prefix-by-prefix updates for CEF, which it uses to update the FIB and adjacency databases. Existing and new entries will receive the new version (epoch) number, indicating that they have been refreshed. The forwarding information is updated on the line cards or forwarding engine during convergence. The RP signals when the RIB has converged. The software removes all FIB and adjacency entries that have an epoch older than the current switchover epoch. The FIB now represents the newest routing protocol forwarding information.

The routing protocols run only on the active RP, and they receive routing updates from their neighbor routers. Routing protocols do not run on the standby RP. After a switchover, the routing protocols request that the NSF-aware neighbor devices send state information to help rebuild the routing tables.


Note


For NSF operation, the routing protocols depend on CEF to continue forwarding packets while the routing protocols rebuild the routing information.


BGP Graceful Restart for NSF

When an NSF-capable router begins a BGP session with a BGP peer, it sends an OPEN message to the peer. Included in the message is a declaration that the NSF-capable or NSF-aware router has graceful restart capability. Graceful restart is the mechanism by which BGP routing peers avoid a routing flap after a switchover. If the BGP peer has received this capability, it is aware that the device sending the message is NSF-capable. Both the NSF-capable router and its BGP peer(s) (NSF-aware peers) need to exchange the graceful restart capability in their OPEN messages, at the time of session establishment. If both peers do not exchange the graceful restart capability, the session will not be graceful restart capable.

If the BGP session is lost during the RP switchover, the NSF-aware BGP peer marks all the routes associated with the NSF-capable router as stale; however, it continues to use these routes to make forwarding decisions for a set period of time. This functionality means that no packets are lost while the newly active RP is waiting for convergence of the routing information with the BGP peers.

After an RP switchover occurs, the NSF-capable router reestablishes the session with the BGP peer. In establishing the new session, it sends a new graceful restart message that identifies the NSF-capable router as having restarted.

At this point, the routing information is exchanged between the two BGP peers. Once this exchange is complete, the NSF-capable device uses the routing information to update the RIB and the FIB with the new forwarding information. The NSF-aware device uses the network information to remove stale routes from its BGP table. Following that, the BGP protocol is fully converged.

If a BGP peer does not support the graceful restart capability, it will ignore the graceful restart capability in an OPEN message but will establish a BGP session with the NSF-capable device. This functionality will allow interoperability with non-NSF-aware BGP peers (and without NSF functionality), but the BGP session with non-NSF-aware BGP peers will not be graceful restart capable.

BGP NSF Awareness

BGP support for NSF requires that neighbor routers are NSF-aware or NSF-capable. NSF awareness in BGP is also enabled by the graceful restart mechanism. A router that is NSF-aware functions like a router that is NSF-capable with one exception: an NSF-aware router is incapable of performing an SSO operation. However, a router that is NSF-aware is capable of maintaining a peering relationship with an NSF-capable neighbor during an NSF SSO operation, as well as holding routes for this neighbor during the SSO operation.

The BGP Nonstop Forwarding Awareness feature provides an NSF-aware router with the capability to detect a neighbor that is undergoing an SSO operation, maintain the peering session with this neighbor, retain known routes, and continue to forward packets for these routes. The deployment of BGP NSF awareness can minimize the effects of Route Processor (RP) failure conditions and improve the overall network stability by reducing the amount of resources that are normally required for reestablishing peering with a failed router.

NSF awareness for BGP is not enabled by default. The bgp graceful-restart command is used to globally enable NSF awareness on a router that is running BGP. NSF-aware operations are also transparent to the network operator and to BGP peers that do not support NSF capabilities.


Note


NSF awareness is enabled automatically in supported software images for Interior Gateway Protocols, such as EIGRP, IS-IS, and OSPF. In BGP, global NSF awareness is not enabled automatically and must be started by issuing the bgp graceful-restart command in router configuration mode.


How to Configure BGP NSF Awareness

Configuring BGP Nonstop Forwarding Awareness Using BGP Graceful Restart

The tasks in this section show how configure BGP Nonstop Forwarding (NSF) awareness using the BGP graceful restart capability.
  • The first task enables BGP NSF globally for all BGP neighbors and suggests a few troubleshooting options.

  • The second task describes how to adjust the BGP graceful restart timers, although the default settings are optimal for most network deployments.

  • The next three tasks demonstrate how to enable or disable BGP graceful restart for individual BGP neighbors, including peer session templates and peer groups.

  • The final task verifies the local and peer router configurations of BGP NSF.

Enabling BGP Global NSF Awareness Using BGP Graceful Restart

Perform this task to enable BGP NSF awareness globally for all BGP neighbors. BGP NSF awareness is part of the graceful restart mechanism and BGP NSF awareness is enabled by issuing the bgp graceful-restart command in router configuration mode. BGP NSF awareness allows NSF-aware routers to support NSF-capable routers during an SSO operation. NSF-awareness is not enabled by default and should be configured on all neighbors that participate in BGP NSF.


Note


The configuration of the restart and stale-path timers is not required to enable the BGP graceful restart capability. The default values are optimal for most network deployments, and these values should be adjusted only by an experienced network operator.



Note


Configuring both Bidirectional Forwarding Detection (BFD) and BGP graceful restart for NSF on a device running BGP may result in suboptimal routing.


SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    router bgp autonomous-system-number

    4.    bgp graceful-restart [restart-time seconds] [stalepath-time seconds]

    5.    end


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 router bgp autonomous-system-number


    Example:
    Device(config)# router bgp 45000
     

    Enters router configuration mode and creates a BGP routing process.

     
    Step 4 bgp graceful-restart [restart-time seconds] [stalepath-time seconds]


    Example:
    Device(config-router)# bgp graceful-restart
     

    Enables the BGP graceful restart capability and BGP NSF awareness.

    • If you enter this command after the BGP session has been established, you must restart the session for the capability to be exchanged with the BGP neighbor.

    • Use this command on the restarting router and all of its peers (NSF-capable and NSF-aware).

     
    Step 5 end


    Example:
    Device(config-router)# end
     

    Exits router configuration mode and enters privileged EXEC mode.

     

    Troubleshooting Tips

    To troubleshoot the NSF feature, use the following commands in privileged EXEC mode, as needed:

    • debug ip bgp —Displays open messages that advertise the graceful restart capability.

    • debug ip bgp event —Displays graceful restart timer events, such as the restart timer and the stalepath timer.

    • debug ip bgp updates —Displays sent and received EOR messages. The EOR message is used by the NSF-aware router to start the stalepath timer, if configured.

    • show ip bgp —Displays entries in the BGP routing table. The output from this command displays routes that are marked as stale by displaying the letter “S” next to each stale route.

    • show ip bgp neighbor —Displays information about the TCP and BGP connections to neighbor devices. When enabled, the graceful restart capability is displayed in the output of this command.

    What to Do Next

    After the peer session template is created, the configuration of the peer session template can be inherited or applied by another peer session template with the inherit peer-session or neighbor inherit peer-session command.

    Configuring BGP NSF Awareness Timers

    Perform this task to adjust the BGP graceful restart timers. There are two BGP graceful restart timers that can be configured. The optional restart-time keyword and seconds argument determine how long peer routers will wait to delete stale routes before a BGP open message is received. The default value is 120 seconds. The optional stalepath-time keyword and seconds argument determine how long a router will wait before deleting stale routes after an end of record (EOR) message is received from the restarting router. The default value is 360 seconds.


    Note


    The configuration of the restart and stale-path timers is not required to enable the BGP graceful restart capability. The default values are optimal for most network deployments, and these values should be adjusted only by an experienced network operator.


    SUMMARY STEPS

      1.    enable

      2.    configure terminal

      3.    router bgp autonomous-system-number

      4.    bgp graceful-restart [restart-time seconds]

      5.    bgp graceful-restart [stalepath-time seconds]

      6.    end


    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 router bgp autonomous-system-number


      Example:
      Device(config)# router bgp 45000
       

      Enters router configuration mode and creates a BGP routing process.

       
      Step 4 bgp graceful-restart [restart-time seconds]


      Example:
      Device(config-router)# bgp graceful-restart restart-time 130 
       

      Enables the BGP graceful restart capability and BGP NSF awareness.

      • The restart-time argument determines how long peer routers will wait to delete stale routes before a BGP open message is received.

      • The default value is 120 seconds. The range is from 1 to 3600 seconds.

      Note   

      Only the syntax applicable to this step is used in this example. For more details, see the Cisco IOS IP Routing: BGP Command Reference.

       
      Step 5 bgp graceful-restart [stalepath-time seconds]


      Example:
      Device(config-router)# bgp graceful-restart stalepath-time 350 
       

      Enables the BGP graceful restart capability and BGP NSF awareness.

      • The stalepath-time argument determines how long a router will wait before deleting stale routes after an end of record (EOR) message is received from the restarting router.

      • The default value is 360 seconds. The range is from 1 to 3600 seconds.

      Note   

      Only the syntax applicable to this step is used in this example. For more details, see the Cisco IOS IP Routing: BGP Command Reference.

       
      Step 6 end


      Example:
      Device(config-router)# end
       

      Exits router configuration mode and enters privileged EXEC mode.

       

      What to Do Next

      If the bgp graceful-restart command has been issued after the BGP session has been established, you must reset by issuing the clear ip bgp * command or by reloading the router before graceful restart capabilities will be exchanged. For more information about resetting BGP sessions and using the clear ip bgp command, see the “Configuring a Basic BGP Network” module.

      Enabling and Disabling BGP Graceful Restart Using BGP Peer Session Templates

      Perform this task to enable and disable BGP graceful restart for BGP neighbors using peer session templates. In this task, a BGP peer session template is created, and BGP graceful restart is enabled. A second peer session template is created, and this template is configured to disable BGP graceful restart.

      In this example, the configuration is performed at Router B in the figure below, and two external BGP neighbors—Router A and Router E—are identified. The first BGP peer at Router A is configured to inherit the first peer session template, which enables BGP graceful restart, whereas the second BGP peer at Router E inherits the second template, which disables BGP graceful restart. Using the optional show ip bgp neighbors command, the status of the BGP graceful restart capability is verified for each BGP neighbor configured in this task.

      Figure 1. Network Topology Showing BGP Neighbors

      The restart and stale-path timers can be modified only using the global bgp graceful-restart command. The restart and stale-path timers are set to the default values when BGP graceful restart is enabled for BGP neighbors using peer session templates.


      Note


      A BGP peer cannot inherit from a peer policy or session template and be configured as a peer group member at the same. BGP templates and BGP peer groups are mutually exclusive.


      SUMMARY STEPS

        1.    enable

        2.    configure terminal

        3.    router bgp autonomous-system-number

        4.    template peer-session session-template-name

        5.    ha-mode graceful-restart [disable]

        6.    exit-peer-session

        7.    template peer-session session-template-name

        8.    ha-mode graceful-restart [disable]

        9.    exit-peer-session

        10.    bgp log-neighbor-changes

        11.    neighbor ip-address remote-as autonomous-system-number

        12.    neighbor ip-address inherit peer-session session-template-number

        13.    neighbor ip-address remote-as autonomous-system-number

        14.    neighbor ip-address inherit peer-session session-template-number

        15.    end

        16.    show ip bgp template peer-session [session-template-number]

        17.    show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [detail]]]


      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 router bgp autonomous-system-number


        Example:
        Device(config)# router bgp 45000
         

        Enters router configuration mode and creates a BGP routing process.

         
        Step 4 template peer-session session-template-name


        Example:
        Device(config-router)# template peer-session S1
         

        Enters session-template configuration mode and creates a peer session template.

        • In this example, a peer session template named S1 is created.

         
        Step 5 ha-mode graceful-restart [disable]


        Example:
        Device(config-router-stmp)# ha-mode graceful-restart
         

        Enables the BGP graceful restart capability and BGP NSF awareness.

        • Use the disable keyword to disable BGP graceful restart capability.

        • If you enter this command after the BGP session has been established, you must restart the session in order for the capability to be exchanged with the BGP neighbor.

        • In this example, the BGP graceful restart capability is enabled for the peer session template named S1.

         
        Step 6 exit-peer-session


        Example:
        Device(config-router-stmp)# exit-peer-session
         

        Exits session-template configuration mode and returns to router configuration mode.

         
        Step 7 template peer-session session-template-name


        Example:
        Device(config-router)# template peer-session S2
         

        Enters session-template configuration mode and creates a peer session template.

        • In this example, a peer session template named S2 is created.

         
        Step 8 ha-mode graceful-restart [disable]


        Example:
        Device(config-router-stmp)# ha-mode graceful-restart disable
         

        Enables the BGP graceful restart capability and BGP NSF awareness.

        • Use the disable keyword to disable BGP graceful restart capability.

        • If you enter this command after the BGP session has been established, you must restart the session in order for the capability to be exchanged with the BGP neighbor.

        • In this example, the BGP graceful restart capability is disabled for the peer session template named S2.

         
        Step 9 exit-peer-session


        Example:
        Device(config-router-stmp)# exit-peer-session
         

        Exits session-template configuration mode and returns to router configuration mode.

         
        Step 10 bgp log-neighbor-changes


        Example:
        Device(config-router)# bgp log-neighbor-changes
         

        Enables logging of BGP neighbor status changes (up or down) and neighbor resets.

        • Use this command for troubleshooting network connectivity problems and measuring network stability. Unexpected neighbor resets might indicate high error rates or high packet loss in the network and should be investigated.

         
        Step 11 neighbor ip-address remote-as autonomous-system-number


        Example:
        Device(config-router)# neighbor 192.168.1.2 remote-as 40000
         

        Configures peering with a BGP neighbor in the specified autonomous system.

        • In this example, the BGP peer at 192.168.1.2 is an external BGP peer because it has a different autonomous system number from the router where the BGP configuration is being entered (see Step 3).

         
        Step 12 neighbor ip-address inherit peer-session session-template-number


        Example:
        Device(config-router)# neighbor 192.168.1.2 inherit peer-session S1
         

        Inherits a peer session template.

        • In this example, the peer session template named S1 is inherited, and the neighbor inherits the enabling of BGP graceful restart.

         
        Step 13 neighbor ip-address remote-as autonomous-system-number


        Example:
        Device(config-router)# neighbor 192.168.3.2 remote-as 50000
         

        Configures peering with a BGP neighbor in the specified autonomous system.

        • In this example, the BGP peer at 192.168.3.2 is an external BGP peer because it has a different autonomous system number from the router where the BGP configuration is being entered (see Step 3).

         
        Step 14 neighbor ip-address inherit peer-session session-template-number


        Example:
        Device(config-router)# neighbor 192.168.3.2 inherit peer-session S2
         

        Inherits a peer session-template.

        • In this example, the peer session template named S2 is inherited, and the neighbor inherits the disabling of BGP graceful restart.

         
        Step 15 end


        Example:
        Device(config-router)# end
         

        Exits router configuration mode and enters privileged EXEC mode.

         
        Step 16 show ip bgp template peer-session [session-template-number]


        Example:
        Device# show ip bgp template peer-session
         

        (Optional) Displays locally configured peer session templates.

        • The output can be filtered to display a single peer policy template by using the session-template-name argument. This command also supports all standard output modifiers.

         
        Step 17 show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [detail]]]


        Example:
        Device# show ip bgp neighbors 192.168.1.2
         

        (Optional) Displays information about TCP and BGP connections to neighbors.

        • “Graceful Restart Capability: advertised” will be displayed for each neighbor that has exchanged graceful restart capabilities with this router.

        • In this example, the output is filtered to display information about the BGP peer at 192.168.1.2.

         

        Examples

        The following example shows partial output from the show ip bgp neighbors command for the BGP peer at 192.168.1.2 (Router A in the figure above). Graceful restart is shown as enabled. Note the default values for the restart and stale-path timers. These timers can be set only by using the bgp graceful-restart command.

        Device# show ip bgp neighbors 192.168.1.2
        
        BGP neighbor is 192.168.1.2,  remote AS 40000, external link
         Inherits from template S1 for session parameters
          BGP version 4, remote router ID 192.168.1.2
          BGP state = Established, up for 00:02:11
          Last read 00:00:23, last write 00:00:27, hold time is 180, keepalive intervals
          Neighbor sessions:
            1 active, is multisession capable
          Neighbor capabilities:
            Route refresh: advertised and received(new)
            Address family IPv4 Unicast: advertised and received
            Graceful Restart Capability: advertised
            Multisession Capability: advertised and received
        !
        Address tracking is enabled, the RIB does have a route to 192.168.1.2
          Connections established 1; dropped 0
          Last reset never
          Transport(tcp) path-mtu-discovery is enabled
          Graceful-Restart is enabled, restart-time 120 seconds, stalepath-time 360 secs
        Connection state is ESTAB, I/O status: 1, unread input bytes: 0 
        

        The following example shows partial output from the show ip bgp neighbors command for the BGP peer at 192.168.3.2 (Router E in the figure above). Graceful restart is shown as disabled.

        Device# show ip bgp neighbors 192.168.3.2
        
        BGP neighbor is 192.168.3.2,  remote AS 50000, external link
         Inherits from template S2 for session parameters
          BGP version 4, remote router ID 192.168.3.2
          BGP state = Established, up for 00:01:41
          Last read 00:00:45, last write 00:00:45, hold time is 180, keepalive intervals
          Neighbor sessions:
            1 active, is multisession capable
          Neighbor capabilities:
            Route refresh: advertised and received(new)
            Address family IPv4 Unicast: advertised and received
        !
        Address tracking is enabled, the RIB does have a route to 192.168.3.2
          Connections established 1; dropped 0
          Last reset never
          Transport(tcp) path-mtu-discovery is enabled
          Graceful-Restart is disabled
        Connection state is ESTAB, I/O status: 1, unread input bytes: 0 

        Enabling BGP Graceful Restart for an Individual BGP Neighbor

        Perform this task on Router B in the figure above to enable BGP graceful restart on the internal BGP peer at Router C in the figure above. Under the IPv4 address family, the neighbor at Router C is identified, and BGP graceful restart is enabled for the neighbor at Router C with the IP address 172.21.1.2. To verify that BGP graceful restart is enabled, the optional show ip bgp neighbors command is used.

        SUMMARY STEPS

          1.    enable

          2.    configure terminal

          3.    router bgp autonomous-system-number

          4.    address-family ipv4 [unicast | multicast | vrf vrf-name]

          5.    neighbor ip-address remote-as autonomous-system-number

          6.    neighbor ip-address activate

          7.    neighbor ip-address ha-mode graceful-restart [disable]

          8.    end

          9.    show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [detail]]]


        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 router bgp autonomous-system-number


          Example:
          Device(config)# router bgp 45000
           

          Enters router configuration mode and creates a BGP routing process.

           
          Step 4 address-family ipv4 [unicast | multicast | vrf vrf-name]


          Example:
          Device(config-router)# address-family ipv4 unicast
           

          Specifies the IPv4 address family and enters address family configuration mode.

          • The unicast keyword specifies the IPv4 unicast address family. By default, the router is placed in address family configuration mode for the IPv4 unicast address family if the unicast keyword is not specified.

          • The multicast keyword specifies IPv4 multicast address prefixes.

          • The vrf keyword and vrf-name argument specify the name of the VRF instance to associate with subsequent IPv4 address family configuration mode commands.

           
          Step 5 neighbor ip-address remote-as autonomous-system-number


          Example:
          Device(config-router-af)# neighbor 172.21.1.2 remote-as 45000
           

          Configures peering with a BGP neighbor in the specified autonomous system.

          • In this example, the BGP peer at 172.21.1.2 is an internal BGP peer because it has the same autonomous system number as the router where the BGP configuration is being entered (see Step 3).

           
          Step 6 neighbor ip-address activate


          Example:
          Device(config-router-af)# neighbor 172.21.1.2 activate
           

          Enables the neighbor to exchange prefixes for the IPv4 address family with the local router.

          • In this example, the internal BGP peer at 172.21.1.2 is activated.

           
          Step 7 neighbor ip-address ha-mode graceful-restart [disable]


          Example:
          Device(config-router-af)# neighbor 172.21.1.2 ha-mode graceful-restart
           

          Enables the BGP graceful restart capability for a BGP neighbor.

          • Use the disable keyword to disable BGP graceful restart capability.

          • If you enter this command after the BGP session has been established, you must restart the session in order for the capability to be exchanged with the BGP neighbor.

          • In this example, the BGP graceful restart capability is enabled for the neighbor at 172.21.1.2.

           
          Step 8 end


          Example:
          Device(config-router-af)# end
           

          Exits address family configuration mode and returns to privileged EXEC mode.

           
          Step 9 show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [detail]]]


          Example:
          Device# show ip bgp neighbors 172.21.1.2
           

          (Optional) Displays information about TCP and BGP connections to neighbors.

          • “Graceful Restart Capability: advertised” will be displayed for each neighbor that has exchanged graceful restart capabilities with this router.

          • In this example, the output is filtered to display information about the BGP peer at 172.21.1.2.

           

          Examples

          The following example shows partial output from the show ip bgp neighbors command for the BGP peer at 172.21.1.2. Graceful restart is shown as enabled. Note the default values for the restart and stale-path timers. These timers can be set using only the global bgp graceful-restart command.

          Device# show ip bgp neighbors 172.21.1.2
          
          BGP neighbor is 172.21.1.2,  remote AS 45000, internal link
            BGP version 4, remote router ID 172.22.1.1
            BGP state = Established, up for 00:01:01
            Last read 00:00:02, last write 00:00:07, hold time is 180, keepalive intervals
            Neighbor sessions:
              1 active, is multisession capable
            Neighbor capabilities:
              Route refresh: advertised and received(new)
              Address family IPv4 Unicast: advertised and received
              Graceful Restart Capability: advertised
              Multisession Capability: advertised and received
          !
            Address tracking is enabled, the RIB does have a route to 172.21.1.2
            Connections established 1; dropped 0
            Last reset never
            Transport(tcp) path-mtu-discovery is enabled
            Graceful-Restart is enabled, restart-time 120 seconds, stalepath-time 360 secs
          Connection state is ESTAB, I/O status: 1, unread input bytes: 0 

          Disabling BGP Graceful Restart for a BGP Peer Group

          Perform this task to disable BGP graceful restart for a BGP peer group. In this task, a BGP peer group is created and graceful restart is disabled for the peer group. A BGP neighbor, Router D at 172.16.1.2 in the figure above, is then identified and added as a peer group member. It inherits the configuration associated with the peer group, which, in this example, disables BGP graceful restart.

          SUMMARY STEPS

            1.    enable

            2.    configure terminal

            3.    router bgp autonomous-system-number

            4.    address-family ipv4 [unicast | multicast | vrf vrf-name]

            5.    neighbor peer-group-name peer-group

            6.    neighbor peer-group-name remote-as autonomous-system-number

            7.    neighbor peer-group-name ha-mode graceful-restart [disable]

            8.    neighbor ip-address peer-group peer-group-name

            9.    end

            10.    show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [ detail]]]


          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 router bgp autonomous-system-number


            Example:
            Device(config)# router bgp 45000
             

            Enters router configuration mode and creates a BGP routing process.

             
            Step 4 address-family ipv4 [unicast | multicast | vrf vrf-name]


            Example:
            Device(config-router)# address-family ipv4 unicast
             

            Specifies the IPv4 address family and enters address family configuration mode.

            • The unicast keyword specifies the IPv4 unicast address family. By default, the router is placed in address family configuration mode for the IPv4 unicast address family if the unicast keyword is not specified.

            • The multicast keyword specifies IPv4 multicast address prefixes.

            • The vrf keyword and vrf-name argument specify the name of the VRF instance to associate with subsequent IPv4 address family configuration mode commands.

             
            Step 5 neighbor peer-group-name peer-group


            Example:
            Device(config-router-af)# neighbor PG1 peer-group
             

            Creates a BGP peer group.

            • In this example, the peer group named PG1 is created.

             
            Step 6 neighbor peer-group-name remote-as autonomous-system-number


            Example:
            Device(config-router-af)# neighbor PG1 remote-as 45000
             

            Configures peering with a BGP peer group in the specified autonomous system.

            • In this example, the BGP peer group named PG1 is added to the IPv4 multiprotocol BGP neighbor table of the local router.

             
            Step 7 neighbor peer-group-name ha-mode graceful-restart [disable]


            Example:
            Device(config-router-af)# neighbor PG1 ha-mode graceful-restart disable
             

            Enables the BGP graceful restart capability for a BGP neighbor.

            • Use the disable keyword to disable BGP graceful restart capability.

            • If you enter this command after the BGP session has been established, you must restart the session for the capability to be exchanged with the BGP neighbor.

            • In this example, the BGP graceful restart capability is disabled for the BGP peer group named PG1.

             
            Step 8 neighbor ip-address peer-group peer-group-name


            Example:
            Device(config-router-af)# neighbor 172.16.1.2 peer-group PG1
             

            Assigns the IP address of a BGP neighbor to a peer group.

            • In this example, the BGP neighbor peer at 172.16.1.2 is configured as a member of the peer group named PG1.

             
            Step 9 end


            Example:
            Device(config-router-af)# end
             

            Exits address family configuration mode and returns to privileged EXEC mode.

             
            Step 10 show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [ detail]]]


            Example:
            Device# show ip bgp neighbors 172.16.1.2
             

            (Optional) Displays information about TCP and BGP connections to neighbors.

            • In this example, the output is filtered to display information about the BGP peer at 172.16.1.2 and the “Graceful-Restart is disabled” line shows that the graceful restart capability is disabled for this neighbor.

             

            Examples

            The following example shows partial output from the show ip bgp neighbors command for the BGP peer at 172.16.1.2. Graceful restart is shown as disabled. Note the default values for the restart and stale-path timers. These timers can be set using only the global bgp graceful-restart command.

            Device# show ip bgp neighbors 172.16.1.2
            
            BGP neighbor is 172.16.1.2,  remote AS 45000, internal link
             Member of peer-group PG1 for session parameters
              BGP version 4, remote router ID 0.0.0.0
              BGP state = Idle
              Neighbor sessions:
                0 active, is multisession capable
            !
            Address tracking is enabled, the RIB does have a route to 172.16.1.2
              Connections established 0; dropped 0
              Last reset never
              Transport(tcp) path-mtu-discovery is enabled
              Graceful-Restart is disabled

            Verifying the Configuration of BGP Nonstop Forwarding Awareness

            Use the following steps to verify the local configuration of BGP NSF awareness on a router and to verify the configuration of NSF awareness on peer routers in a BGP network.

            SUMMARY STEPS

              1.    enable

              2.    show running-config [options]

              3.    show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [detail]]]


            DETAILED STEPS
              Step 1   enable

              Enables privileged EXEC mode. Enter your password if prompted.



              Example:
              Device> enable
              
              Step 2   show running-config [options]

              Displays the running configuration on the local router. The output will display the configuration of the bgp graceful-restart command in the BGP section. Repeat this command on all BGP neighbor routers to verify that all BGP peers are configured for BGP NSF awareness. In this example, BGP graceful restart is enabled globally and the external neighbor at 192.168.1.2 is configured to be a BGP peer and will have the BGP graceful restart capability enabled.



              Example:
              Device# show running-config
              .
              .
              .
              router bgp 45000
               bgp router-id 172.17.1.99
               bgp log-neighbor-changes
               bgp graceful-restart restart-time 130
               bgp graceful-restart stalepath-time 350
               bgp graceful-restart
               timers bgp 70 120
               neighbor 192.168.1.2 remote-as 40000
               neighbor 192.168.1.2 activate
              .
              .
              .
              
              Step 3   show ip bgp neighbors [ip-address [received-routes | routes | advertised-routes | paths [regexp] | dampened-routes | flap-statistics | received prefix-filter | policy [detail]]]

              Displays information about TCP and BGP connections to neighbors. “Graceful Restart Capability: advertised” will be displayed for each neighbor that has exchanged graceful restart capabilities with this router.


              Configuration Examples for BGP NSF Awareness

              Example: Enabling BGP Global NSF Awareness Using Graceful Restart

              The following example enables BGP NSF awareness globally on all BGP neighbors. The restart time is set to 130 seconds, and the stale path time is set to 350 seconds. The configuration of these timers is optional, and the preconfigured default values are optimal for most network deployments.

              configure terminal
               router bgp 45000
               bgp graceful-restart
               bgp graceful-restart restart-time 130
               bgp graceful-restart stalepath-time 350
               end

              Examples: Enabling and Disabling BGP Graceful Restart per Neighbor

              The ability to enable or disable the BGP graceful restart capability for an individual BGP neighbor, peer group, or peer session template was introduced. The following example is configured on Router B in the figure below and enables the BGP graceful restart capability for the BGP peer session template named S1 and disables the BGP graceful restart capability for the BGP peer session template named S2. The external BGP neighbor at Router A (192.168.1.2) inherits peer session template S1, and the BGP graceful restart capability is enabled for this neighbor. Another external BGP neighbor at Router E (192.168.3.2) is configured with the BGP graceful restart capability disabled after inheriting peer session template S2.

              Figure 2. Network Topology Showing BGP Neighbors for BGP Graceful Restart

              The BGP graceful restart capability is enabled for an individual internal BGP neighbor, Router C at 172.21.1.2, whereas the BGP graceful restart is disabled for the BGP neighbor at Router D, 172.16.1.2, because it is a member of the peer group PG1. The disabling of BGP graceful restart is configured for all members of the peer group, PG1. The restart and stale-path timers are modified, and the BGP sessions are reset.

              router bgp 45000
               template peer-session S1
               remote-as 40000
               ha-mode graceful-restart
               exit-peer-session
               template peer-session S2
               remote-as 50000         
               ha-mode graceful-restart disable
               exit-peer-session               
               bgp log-neighbor-changes
               bgp graceful-restart restart-time 150
               bgp graceful-restart stalepath-time 400
               address-family ipv4 unicast
               neighbor PG1 peer-group
               neighbor PG1 remote-as 45000
               neighbor PG1 ha-mode graceful-restart disable
               neighbor 172.16.1.2 peer-group PG1
               neighbor 172.21.1.2 remote-as 45000
               neighbor 172.21.1.2 activate
               neighbor 172.21.1.2 ha-mode graceful-restart
               neighbor 192.168.1.2 remote-as 40000
               neighbor 192.168.1.2 inherit peer-session S1
               neighbor 192.168.3.2 remote-as 50000        
               neighbor 192.168.3.2 inherit peer-session S2
               end
              clear ip bgp *
              

              To demonstrate how the last configuration instance of the BGP graceful restart capability is applied, the following example initially enables the BGP graceful restart capability globally for all BGP neighbors. A BGP peer group, PG2, is configured with the BGP graceful restart capability disabled. An individual external BGP neighbor, Router A at 192.168.1.2 in the figure above, is then configured to be a member of the peer group, PG2. The last graceful restart configuration instance is applied, and, in this case, the neighbor, 192.168.1.2, inherits the configuration instance from the peer group PG2, and the BGP graceful restart capability is disabled for this neighbor.

              router bgp 45000
               bgp log-neighbor-changes
               bgp graceful-restart
               address-family ipv4 unicast
               neighbor PG2 peer-group
               neighbor PG2 remote-as 40000
               neighbor PG2 ha-mode graceful-restart disable
               neighbor 192.168.1.2 peer-group PG2
               end
              clear ip bgp *

              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

              Enabling BGP MIB support

              “BGP MIB Support” module in the IP Routing: BGP Configuration Guide

              Configuring SNMP Support

              SNMP Configuration Guide in the Cisco IOS Network Management Configuration Guide Library

              SNMP Commands

              Cisco IOS SNMP Support Command Reference

              Standards

              Standard

              Title

              None

              MIBs

              MIB

              MIBs Link

              To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

              http:/​/​www.cisco.com/​go/​mibs

              RFCs

              RFC

              Title

              RFC 1657

              BGP-4 MIB

              RFC 1771

              A Border Gateway Protocol 4 (BGP-4)

              RFC 2547

              BGP/MPLS VPNs

              RFC 2858

              Multiprotocol Extensions for BGP-4

              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 NSF Awareness

              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 NSF Awareness

              Feature Name

              Releases

              Feature Information

              BGP NSF Awareness

              Cisco IOS XE Release 3.2SE

              Cisco IOS XE Release 3.3SE

              Cisco IOS XE Release 3.6E

              Nonstop Forwarding (NSF) awareness allows a device to assist NSF-capable neighbors to continue forwarding packets during a Stateful Switchover (SSO) operation. The BGP Nonstop Forwarding Awareness feature allows an NSF-aware device that is running BGP to forward packets along routes that are already known for a device that is performing an SSO operation. This capability allows the BGP peers of the failing device to retain the routing information that is advertised by the failing device and continue to use this information until the failed device has returned to normal operating behavior and is able to exchange routing information. The peering session is maintained throughout the entire NSF operation.

              In Cisco IOS XE Release 3.3SE, support was added for the Cisco Catalyst 3650 Series Switches and Cisco Catalyst 3850 Series Switches.

              The following commands were introduced or modified: bgp graceful-restart, show ip bgp, show ip bgp neighbors.

              In Cisco IOS XE Release 3.6E, this feature is supported on Cisco Catalyst 3850 Series Switches.