Implementing Multiprotocol BGP for IPv6

Information About Implementing Multiprotocol BGP for IPv6

This module describes how to configure multiprotocol Border Gateway Protocol (BGP) for IPv6. BGP is an Exterior Gateway Protocol (EGP) used mainly to connect separate routing domains that contain independent routing policies (autonomous systems). Connecting to a service provider for access to the Internet is a common use for BGP. BGP can also be used within an autonomous system and this variation is referred to as internal BGP (iBGP). Multiprotocol BGP is an enhanced BGP that carries routing information for multiple network layer protocol address families, for example, IPv6 address family and for IP multicast routes. All BGP commands and routing policy capabilities can be used with multiprotocol BGP.

Multiprotocol BGP Extensions for IPv6

Multiprotocol BGP is the supported Exterior Gateway Protocol (EGP) for IPv6. Multiprotocol BGP extensions for IPv6 supports many of the same features and functionality as IPv4 BGP. IPv6 enhancements to multiprotocol BGP include support for an IPv6 address family and Network Layer Reachability Information (NLRI) and next hop (the next device in the path to the destination) attributes that use IPv6 addresses.

IPv6 Multiprotocol BGP Peering Using a Link-Local Address

The IPv6 multiprotocol BGP can be configured between two IPv6 devices (peers) using link-local addresses. For this function to work, you must identify the interface for the neighbor by using the neighbor update-source command, and you must configure a route map to set an IPv6 global next hop.

Multiprotocol BGP for the IPv6 Multicast Address Family

The multiprotocol BGP for the IPv6 multicast address family feature provides multicast BGP extensions for IPv6 and supports the same features and functionality as IPv4 BGP. IPv6 enhancements to multicast BGP include support for an IPv6 multicast address family and network layer reachability information (NLRI) and next hop (the next router in the path to the destination) attributes that use IPv6 addresses.

Multicast BGP is an enhanced BGP that allows the deployment of interdomain IPv6 multicast. Multiprotocol BGP carries routing information for multiple network layer protocol address families; for example, IPv6 address family and for IPv6 multicast routes. The IPv6 multicast address family contains routes used for RPF lookup by the IPv6 PIM protocol, and multicast BGP IPv6 provides for interdomain transport of the same. Users must use multiprotocol BGP for IPv6 multicast when using IPv6 multicast with BGP because the unicast BGP learned routes will not be used for IPv6 multicast.

Multicast BGP functionality is provided through a separate address family context. A subsequent address family identifier (SAFI) provides information about the type of the network layer reachability information that is carried in the attribute. Multiprotocol BGP unicast uses SAFI 1 messages, and multiprotocol BGP multicast uses SAFI 2 messages. SAFI 1 messages indicate that the routes are usable only for IP unicast, not IP multicast. Because of this functionality, BGP routes in the IPv6 unicast RIB must be ignored in the IPv6 multicast RPF lookup.

A separate BGP routing table is maintained to configure incongruent policies and topologies (for example, IPv6 unicast and multicast) by using IPv6 multicast RPF lookup. Multicast RPF lookup is very similar to the IP unicast route lookup.

No MRIB is associated with the IPv6 multicast BGP table. However, IPv6 multicast BGP operates on the unicast IPv6 RIB when needed. Multicast BGP does not insert or update routes into the IPv6 unicast RIB.

Nonstop Forwarding and Graceful Restart for MP-BGP IPv6 Address Family

The graceful restart capability is supported for IPv6 BGP unicast, multicast, and VPNv6 address families, enabling Cisco nonstop forwarding (NSF) functionality for BGP IPv6. The BGP graceful restart capability allows the BGP routing table to be recovered from peers without keeping the TCP state.

NSF continues forwarding packets while routing protocols converge, therefore avoiding a route flap on switchover. Forwarding is maintained by synchronizing the FIB between the active and standby RP. On switchover, forwarding is maintained using the FIB. The RIB is not kept synchronized; therefore, the RIB is empty on switchover. The RIB is repopulated by the routing protocols and subsequently informs FIB about RIB convergence by using the NSF_RIB_CONVERGED registry call. The FIB tables are updated from the RIB, removing any stale entries. The RIB starts a failsafe timer during RP switchover, in case the routing protocols fail to notify the RIB of convergence.

The Cisco BGP address family identifier (AFI) model is designed to be modular and scalable, and to support multiple AFI and subsequent address family identifier (SAFI) configurations.

How to Implement Multiprotocol BGP for IPv6

Configuring an IPv6 BGP Routing Process and BGP Router ID

Perform this task to configure an IPv6 BGP routing process and an optional BGP router ID for a BGP-speaking device.

BGP uses a router ID to identify BGP-speaking peers. The BGP router ID is 32-bit value that is often represented by an IPv4 address. By default, the router ID is set to the IPv4 address of a loopback interface on the device. If no loopback interface is configured on the device, then the software chooses the highest IPv4 address configured to a physical interface on the device to represent the BGP router ID.

When configuring BGP on a device that is enabled only for IPv6 (that is, the device does not have an IPv4 address), you must manually configure the BGP router ID for the device. The BGP router ID, which is represented as a 32-bit value using an IPv4 address syntax, must be unique to the BGP peers of the device.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. no bgp default ipv4-unicast
  5. bgp router-id ip-address
  6. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Configures a BGP routing process, and enters router configuration mode for the specified routing process.

Step 4

no bgp default ipv4-unicast

Example:


Device(config-router)# no bgp default ipv4-unicast

Disables the IPv4 unicast address family for the BGP routing process specified in the previous step.

Note

 
Routing information for the IPv4 unicast address family is advertised by default for each BGP routing session configured with the neighbor remote-as command unless you configure the no bgp default ipv4-unicast command before configuring the neighbor remote-as command.

Step 5

bgp router-id ip-address

Example:


Device(config-router)# bgp router-id 192.168.99.70

(Optional) Configures a fixed 32-bit router ID as the identifier of the local device running BGP.

Note

 
Configuring a router ID using the bgp router-id command resets all active BGP peering sessions.

Step 6

end

Example:


Device(config-router)# end

Exits router configuration mode and returns to privileged EXEC mode.

Configuring IPv6 Multiprotocol BGP Between Two Peers

By default, neighbors that are defined using the neighbor remote-as command in router configuration mode exchange only IPv4 unicast address prefixes. To exchange other address prefix types, such as IPv6 prefixes, neighbors must also be activated using the neighbor activate command in address family configuration mode for the other prefix types, as shown for IPv6 prefixes.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]
  5. address-family ipv6 [unicast | multicast ]
  6. neighbor {ip-address | peer-group-name | ipv6-address % } activate
  7. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]

Example:


Device(config-router)# neighbor 2001:DB8:0:CC00::1 remote-as 64600

Adds the IPv6 address of the neighbor in the specified autonomous system to the IPv6 multiprotocol BGP neighbor table of the local device.

Step 5

address-family ipv6 [unicast | multicast ]

Example:


Device(config-router)# address-family ipv6

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

  • The unicast keyword specifies the IPv6 unicast address family. By default, the device is placed in configuration mode for the IPv6 unicast address family if a keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 6

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

Example:


Device(config-router-af)# neighbor 2001:DB8:0:CC00::1 activate

Enables the neighbor to exchange prefixes for the IPv6 address family with the local device.

Step 7

end

Example:


Device(config-router-af)# end

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

Configuring IPv6 Multiprotocol BGP Between Two Peers Using Link-Local Addresses

By default, neighbors that are defined using the neighbor remote-as command in router configuration mode exchange only IPv4 unicast address prefixes. To exchange other address prefix types, such as IPv6 prefixes, neighbors must also be activated using the neighbor activate command in address family configuration mode for the other prefix types, as shown for IPv6 prefixes.

By default, route maps that are applied in router configuration mode using the neighbor route-map command are applied to only IPv4 unicast address prefixes. Route maps for other address families must be applied in address family configuration mode using the neighbor route-map command, as shown for the IPv6 address family. The route maps are applied either as the inbound or outbound routing policy for neighbors under the specified address family. Configuring separate route maps under each address family type simplifies managing complicated or different policies for each address family.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp autonomous-system-number
  4. neighbor {ip-address | ipv6-address | peer-group-name } remote-as as-number
  5. neighbor {ip-address | ipv6-address | peer-group-name } update-source interface-type interface-number
  6. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6
  7. neighbor {ip-address | peer-group-name | ipv6-address } activate
  8. neighbor {ip-address | peer-group-name | ipv6-address } route-map map-name {in | out
  9. exit
  10. exit
  11. route-map map-tag [permit | deny ] [sequence-number ]
  12. match ipv6 address {prefix-list prefix-list-name | access-list-name
  13. set ipv6 next-hop ipv6-address [link-local-address ] [peer-address
  14. end

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

router bgp autonomous-system-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

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

Example:


Device(config-router)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 remote-as 64600

Adds the link-local IPv6 address of the neighbor in the specified remote autonomous system to the IPv6 multiprotocol BGP neighbor table of the local router.

  • The ipv6-address argument in the neighbor remote-as command must be a link-local IPv6 address in the form documented in RFC 2373 where the address is specified in hexadecimal using 16-bit values between colons.

Step 5

neighbor {ip-address | ipv6-address | peer-group-name } update-source interface-type interface-number

Example:


Device(config-router)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 update-source 
gigabitethernet 0/0/0

Specifies the link-local address over which the peering is to occur.

  • If there are multiple connections to the neighbor and you do not specify the neighbor interface by using the interface-type and interface-number arguments in the neighbor update-source command, a TCP connection cannot be established with the neighbor using link-local addresses.

Step 6

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6

Example:


Device(config-router)# address-family ipv6

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the router is placed in configuration mode for the IPv6 unicast address family if the unicast keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 7

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

Example:


Device(config-router-af)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 activate

Enables the neighbor to exchange prefixes for the IPv6 address family with the local router using the specified link-local addresses.

Step 8

neighbor {ip-address | peer-group-name | ipv6-address } route-map map-name {in | out

Example:


Device(config-router-af)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 route-map nh6 out

Applies a route map to incoming or outgoing routes.

Step 9

exit

Example:


Device(config-router-af)# exit

Exits address family configuration mode, and returns to router configuration mode.

Step 10

exit

Example:


Device(config-router)# exit

Exits router configuration mode, and returns to global configuration mode.

Step 11

route-map map-tag [permit | deny ] [sequence-number ]

Example:


Device(config)# route-map nh6 permit 10

Defines a route map and enters route-map configuration mode.

Step 12

match ipv6 address {prefix-list prefix-list-name | access-list-name

Example:


Device(config-route-map)# match ipv6 address prefix-list list1

Distributes any routes that have a destination IPv6 network number address permitted by a prefix list, or performs policy routing on packets.

Step 13

set ipv6 next-hop ipv6-address [link-local-address ] [peer-address

Example:


Device(config-route-map)# set ipv6 next-hop 2001:DB8::1

Overrides the next hop advertised to the peer for IPv6 packets that pass a match clause of a route map for policy routing.

  • The ipv6-address argument specifies the IPv6 global address of the next hop. It need not be an adjacent router.

  • The link-local-address argument specifies the IPv6 link-local address of the next hop. It must be an adjacent router.

Note

 

The route map sets the IPv6 next-hop addresses (global and link-local) in BGP updates. If the route map is not configured, the next-hop address in the BGP updates defaults to the unspecified IPv6 address (::), which is rejected by the peer. If you specify only the global IPv6 next-hop address (the ipv6-address argument) with the set ipv6 next-hop command after specifying the neighbor interface (the interface-type argument) with the neighbor update-source command in Step 5, the link-local address of the interface specified with the interface-type argument is included as the next-hop in the BGP updates. Therefore, only one route map that sets the global IPv6 next-hop address in BGP updates is required for multiple BGP peers that use link-local addresses.

Step 14

end

Example:


Device(config-route-map)# end

Exits route-map configuration mode and returns to privileged EXEC mode.

Troubleshooting Tips

If peering is not established by this task, it may be because of a missing route map set ipv6 next-hop command. Use the debug bgp ipv6 update command to display debugging information on the updates to help determine the state of the peering.

Configuring an IPv6 Multiprotocol BGP Peer Group

  • By default, neighbors that are defined using the neighbor remote-as command in router configuration mode exchange only IPv4 unicast address prefixes. To exchange other address prefix types, such as IPv6 prefixes, neighbors must also be activated using the neighbor activate command in address family configuration mode for the other prefix types, as shown for IPv6 prefixes.

  • By default, peer groups that are defined in router configuration mode using the neighbor peer-group command exchange only IPv4 unicast address prefixes. To exchange other address prefix types, such as IPv6 prefixes, you must activate peer groups using the neighbor activate command in address family configuration mode for the other prefix types, as shown for IPv6 prefixes.

  • Members of a peer group automatically inherit the address prefix configuration of the peer group.

  • IPv4 active neighbors cannot exist in the same peer group as active IPv6 neighbors. Create separate peer groups for IPv4 peers and IPv6 peers.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. neighbor peer-group-name peer-group
  5. neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]
  6. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6
  7. neighbor {ip-address | peer-group-name | ipv6-address % } activate
  8. neighbor ip-address | ipv6-address } send-label
  9. neighbor {ip-address | ipv6-address } peer-group peer-group-name
  10. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified BGP routing process.

Step 4

neighbor peer-group-name peer-group

Example:


Device(config-router)# neighbor group1 peer-group

Creates a multiprotocol BGP peer group.

Step 5

neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]

Example:


Device(config-router)# neighbor 2001:DB8:0:CC00::1 remote-as 64600

Adds the IPv6 address of the neighbor in the specified autonomous system to the IPv6 multiprotocol BGP neighbor table of the local router.

Step 6

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6

Example:


Device(config-router)# address-family ipv6 unicast

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the device is placed in configuration mode for the IPv6 unicast address family if the unicast keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 7

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

Example:


Device(config-router-af)# neighbor 2001:DB8:0:CC00::1 activate

Enables the neighbor to exchange prefixes for the specified family type with the neighbor and the local router.

  • To avoid extra configuration steps for each neighbor, use the neighbor activate command with the peer-group-name argument as an alternative in this step.

Step 8

neighbor ip-address | ipv6-address } send-label

Example:


Device(config-router-af)# neighbor 192.168.99.70 send-label 

Advertises the capability of the device to send MPLS labels with BGP routes.

  • In IPv6 address family configuration mode, this command enables binding and advertisement of aggregate labels when advertising IPv6 prefixes in BGP.

Step 9

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

Example:


Device(config-router-af)# neighbor 2001:DB8:0:CC00::1 peer-group group1

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

Step 10

end

Example:


Device(config-router-af)# end

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

Configuring a Route Map for IPv6 Multiprotocol BGP Prefixes

  • By default, neighbors that are defined using the neighbor remote-as command in router configuration mode exchange only IPv4 unicast address prefixes. To exchange other address prefix types, such as IPv6 prefixes, neighbors must also be activated using the neighbor activate command in address family configuration mode for the other prefix types, as shown for IPv6 prefixes.

  • By default, route maps that are applied in router configuration mode using the neighbor route-map command are applied to only IPv4 unicast address prefixes. Route maps for other address families must be applied in address family configuration mode using the neighbor route-map command, as shown for the IPv6 address family. The route maps are applied either as the inbound or outbound routing policy for neighbors under the specified address family. Configuring separate route maps under each address family type simplifies managing complicated or different policies for each address family.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]
  5. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]
  6. neighbor {ip-address | peer-group-name | ipv6-address % } activate
  7. neighbor {ip-address | peer-group-name | ipv6-address [% ]} route-map map-name {in | out }
  8. exit
  9. exit
  10. route-map map-tag [permit | deny ] [sequence-number ]
  11. match ipv6 address {prefix-list prefix-list-name | access-list-name }
  12. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]

Example:


Device(config-router)# neighbor 2001:DB8:0:cc00::1 remote-as 64600

Adds the link-local IPv6 address of the neighbor in the specified remote autonomous system to the IPv6 multiprotocol BGP neighbor table of the local device.

Step 5

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]

Example:


Device(config-router)# address-family ipv6

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the device is placed in configuration mode for the IPv6 unicast address family if the unicast keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 6

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

Example:


Device(config-router-af)# neighbor 2001:DB8:0:cc00::1 activate

Enables the neighbor to exchange prefixes for the IPv6 address family with the local device using the specified link-local addresses.

Step 7

neighbor {ip-address | peer-group-name | ipv6-address [% ]} route-map map-name {in | out }

Example:


Device(config-router-af)# neighbor 2001:DB8:0:cc00::1 route-map rtp in

Applies a route map to incoming or outgoing routes.

  • Changes to the route map will not take effect for existing peers until the peering is reset or a soft reset is performed. Using the clear bgp ipv6 command with the soft and in keywords will perform a soft reset.

Step 8

exit

Example:


Device(config-router-af)# exit

Exits address family configuration mode, and returns to router configuration mode.

Step 9

exit

Example:


Device(config-router)# exit

Exits router configuration mode, and returns to global configuration mode.

Step 10

route-map map-tag [permit | deny ] [sequence-number ]

Example:


Device(config)# route-map rtp permit 10

Defines a route map and enters route-map configuration mode.

  • Follow this step with a match command.

Step 11

match ipv6 address {prefix-list prefix-list-name | access-list-name }

Example:


Device(config-route-map)# match ipv6 address prefix-list list1

Distributes any routes that have a destination IPv6 network number address permitted by a prefix list, or performs policy routing on packets.

Step 12

end

Example:


Device(config-route-map)# end

Exits route-map configuration mode and returns to privileged EXEC mode.

Redistributing Prefixes into IPv6 Multiprotocol BGP

Redistribution is the process of redistributing, or injecting, prefixes from one routing protocol into another routing protocol. This task explains how to inject prefixes from a routing protocol into IPv6 multiprotocol BGP. Specifically, prefixes that are redistributed into IPv6 multiprotocol BGP using the redistribute router configuration command are injected into the IPv6 unicast database.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]
  5. redistribute bgp [process-id ] [metric metric-value ] [route-map map-name ]
  6. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified BGP routing process.

Step 4

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]

Example:


Device(config-router)# address-family ipv6

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the device is placed in configuration mode for the IPv6 unicast address family if a keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 5

redistribute bgp [process-id ] [metric metric-value ] [route-map map-name ]

Example:


Device(config-router-af)# redistribute bgp 64500 metric 5

Redistributes IPv6 routes from one routing domain into another routing domain.

Step 6

end

Example:


Device(config-router-af)# end

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

Advertising Routes into IPv6 Multiprotocol BGP

By default, networks that are defined in router configuration mode using the network command are injected into the IPv4 unicast database. To inject a network into another database, such as the IPv6 BGP database, you must define the network using the network command in address family configuration mode for the other database, as shown for the IPv6 BGP database.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]
  5. network {network-number [mask network-mask ] | nsap-prefix } [route-map map-tag ]
  6. exit

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified BGP routing process.

Step 4

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]

Example:


Device(config-router)# address-family ipv6 unicast

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the device is placed in configuration mode for the IPv6 unicast address family if a keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 5

network {network-number [mask network-mask ] | nsap-prefix } [route-map map-tag ]

Example:


Device(config-router-af)# network 2001:DB8::/24

Advertises (injects) the specified prefix into the IPv6 BGP database (the routes must first be found in the IPv6 unicast routing table).

  • The prefix is injected into the database for the address family specified in the previous step.

  • Routes are tagged from the specified prefix as “local origin.”

  • The ipv6-prefix argument in the network command must be in the form documented in RFC 2373 where the address is specified in hexadecimal using 16-bit values between colons.

  • The prefix-length argument is a decimal value that indicates how many of the high-order contiguous bits of the address comprise the prefix (the network portion of the address). A slash mark must precede the decimal value.

Step 6

exit

Example:


Device(config-router-af)# exit

Exits address family configuration mode, and returns the device to router configuration mode.

  • Repeat this step to exit router configuration mode and return the device to global configuration mode.

Advertising IPv4 Routes Between IPv6 BGP Peers

If an IPv6 network is connecting two separate IPv4 networks, IPv6 can be used to advertise the IPv4 routes. Configure the peering using the IPv6 addresses within the IPv4 address family. Set the next hop with a static route or with an inbound route map because the advertised next hop will usually be unreachable. Advertising IPv6 routes between two IPv4 peers is also possible using the same model.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. neighbor peer-group-name peer-group
  5. neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]
  6. address-family ipv4 [mdt | multicast | tunnel | unicast [vrf vrf-name ] | vrf vrf-name ]
  7. neighbor ipv6-address peer-group peer-group-name
  8. neighbor {ip-address | peer-group-name | ipv6-address [% ]} route-map map-name {in | out }
  9. exit
  10. exit
  11. route-map map-tag [permit | deny ] [sequence-number ]
  12. set ip next-hop ip-address [... ip-address ] [peer-address ]
  13. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

neighbor peer-group-name peer-group

Example:


Device(config-router)# neighbor 6peers peer-group

Creates a multiprotocol BGP peer group.

Step 5

neighbor {ip-address | ipv6-address [% ] | peer-group-name } remote-as autonomous-system-number [alternate-as autonomous-system-number ...]

Example:


Device(config-router)# neighbor 6peers remote-as 65002

Adds the IPv6 address of the neighbor in the specified autonomous system to the IPv6 multiprotocol BGP neighbor table of the local device.

Step 6

address-family ipv4 [mdt | multicast | tunnel | unicast [vrf vrf-name ] | vrf vrf-name ]

Example:


Device(config-router)# address-family ipv4

Enters address family configuration mode to configure a routing session using standard IPv4 address prefixes.

Step 7

neighbor ipv6-address peer-group peer-group-name

Example:


Device(config-router-af)# neighbor 2001:DB8:1234::2 peer-group 6peers

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

Step 8

neighbor {ip-address | peer-group-name | ipv6-address [% ]} route-map map-name {in | out }

Example:


Device(config-router-af)# neighbor 6peers route-map rmap out 

Applies a route map to incoming or outgoing routes.

  • Changes to the route map will not take effect for existing peers until the peering is reset or a soft reset is performed. Using the clear bgp ipv6 command with the soft and in keywords will perform a soft reset.

Step 9

exit

Example:


Device(config-router-af)# exit

Exits address family configuration mode, and returns the device to router configuration mode.

Step 10

exit

Example:


Device(config-router)# exit

Exits router configuration mode, and returns the device to global configuration mode.

Step 11

route-map map-tag [permit | deny ] [sequence-number ]

Example:


Device(config)# route-map rmap permit 10

Defines a route map and enters route-map configuration mode.

Step 12

set ip next-hop ip-address [... ip-address ] [peer-address ]

Example:


Device(config-route-map)# set ip next-hop 10.21.8.10

Overrides the next hop advertised to the peer for IPv4 packets.

Step 13

end

Example:


Device(config-router-af)# end

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

Assigning BGP Administrative Distance for Multicast BGP Routes

Perform this task to specify an administrative distance for multicast BGP routes to be used in RPF lookups for comparison with unicast routes.


Caution


Changing the administrative distance of BGP internal routes is not recommended. One problem that can occur is the accumulation of routing table inconsistencies, which can break routing.


SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]
  5. distance bgp external-distance internal-distance local-distance
  6. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6 ]

Example:


Device(config-router)# address-family ipv6

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the router is placed in configuration mode for the IPv6 unicast address family if the unicast keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 5

distance bgp external-distance internal-distance local-distance

Example:


Device(config-router-af)# distance bgp 10 50 100 

Configures the administrative distance for BGP routes.

Step 6

end

Example:


Device(config-router-af)# end

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

Generating IPv6 Multicast BGP Updates

Perform this task to generate IPv6 multicast BGP updates that correspond to unicast IPv6 updates received from a peer.

The MBGP translate-update feature generally is used in an MBGP-capable router that peers with a customer site that has only a BGP-capable router; the customer site has not or cannot upgrade its router to an MBGP-capable image. Because the customer site cannot originate MBGP advertisements, the router with which it peers will translate the BGP prefixes into MBGP prefixes, which are used for multicast-source Reverse Path Forwarding (RPF) lookup.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6
  5. neighbor ipv6-address translate-update ipv6 multicast [unicast
  6. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

address-family ipv6 [vrf vrf-name ] [unicast | multicast | vpnv6

Example:


Device(config-router)# address-family ipv6

Specifies the IPv6 address family, and enters address family configuration mode.

  • The unicast keyword specifies the IPv6 unicast address family. By default, the router is placed in configuration mode for the IPv6 unicast address family if the unicast keyword is not specified with the address-family ipv6 command.

  • The multicast keyword specifies IPv6 multicast address prefixes.

Step 5

neighbor ipv6-address translate-update ipv6 multicast [unicast

Example:


Device(config-router-af)# neighbor 2001:DB8::2 translate-update ipv6 multicast

Generates multiprotocol IPv6 BGP updates that correspond to unicast IPv6 updates received from a peer.

Step 6

end

Example:


Device(config-router-af)# end

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

Configuring the IPv6 BGP Graceful Restart Capability

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. bgp graceful-restart [restart-time seconds | stalepath-time seconds ] [all ]
  5. end

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

router bgp as-number

Example:


Device(config)# router bgp 65000

Enters router configuration mode for the specified routing process.

Step 4

bgp graceful-restart [restart-time seconds | stalepath-time seconds ] [all ]

Example:


Device(config-router)# bgp graceful-restart

Enables the BGP graceful restart capability.

Step 5

end

Example:


Device(config-router)# end

Exits router configuration mode and returns to privileged EXEC mode.

Resetting IPv6 BGP Sessions

SUMMARY STEPS

  1. enable
  2. clear bgp ipv6 {unicast | multicast } {* | autonomous-system-number | ip-address | ipv6-address | peer-group peer-group-name } [soft ] [in | out ]
  3. clear bgp ipv6 {unicast | multicast } external [soft ] [in | out ]
  4. clear bgp ipv6 {unicast | multicast } peer-group name
  5. clear bgp ipv6 {unicast | multicast } dampening [ipv6-prefix / prefix-length ]
  6. clear bgp ipv6 {unicast | multicast } flap-statistics [ipv6-prefix / prefix-length | regexp regexp | filter-list list ]

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

clear bgp ipv6 {unicast | multicast } {* | autonomous-system-number | ip-address | ipv6-address | peer-group peer-group-name } [soft ] [in | out ]

Example:


Device# clear bgp ipv6 unicast peer-group marketing soft out

Resets IPv6 BGP sessions.

Step 3

clear bgp ipv6 {unicast | multicast } external [soft ] [in | out ]

Example:


Device# clear bgp ipv6 unicast external soft in

Clears external IPv6 BGP peers.

Step 4

clear bgp ipv6 {unicast | multicast } peer-group name

Example:


Device# clear bgp ipv6 unicast peer-group marketing

Clears all members of an IPv6 BGP peer group.

Step 5

clear bgp ipv6 {unicast | multicast } dampening [ipv6-prefix / prefix-length ]

Example:


Device# clear bgp ipv6 unicast dampening 2001:DB8::/64

Clears IPv6 BGP route dampening information and unsuppresses the suppressed routes.

Step 6

clear bgp ipv6 {unicast | multicast } flap-statistics [ipv6-prefix / prefix-length | regexp regexp | filter-list list ]

Example:


Device# clear bgp ipv6 unicast flap-statistics filter-list 3

Clears IPv6 BGP flap statistics.

Verifying the IPv6 Multiprotocol BGP Configuration

SUMMARY STEPS

  1. enable
  2. show bgp ipv6 unicast | multicast } [ipv6-prefix /prefix-length ] [longer-prefixes ] [labels ]
  3. show bgp ipv6 {unicast | multicast } summary
  4. show bgp ipv6 {unicast | multicast } dampening dampened-paths
  5. debug bgp ipv6 {unicast | multicast } dampening [prefix-list prefix-list-name ]
  6. debug bgp ipv6 unicast | multicast } updates [ipv6-address ] [prefix-list prefix-list-name ] [in | out ]

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

show bgp ipv6 unicast | multicast } [ipv6-prefix /prefix-length ] [longer-prefixes ] [labels ]

Example:


Device> show bgp ipv6 unicast

(Optional) Displays entries in the IPv6 BGP routing table.

Step 3

show bgp ipv6 {unicast | multicast } summary

Example:


Device> show bgp ipv6 unicast summary

(Optional) Displays the status of all IPv6 BGP connections.

Step 4

show bgp ipv6 {unicast | multicast } dampening dampened-paths

Example:


Device> show bgp ipv6 unicast dampening dampened-paths

(Optional) Displays IPv6 BGP dampened routes.

Step 5

debug bgp ipv6 {unicast | multicast } dampening [prefix-list prefix-list-name ]

Example:


Device# debug bgp ipv6 unicast dampening

(Optional) Displays debugging messages for IPv6 BGP dampening packets.

  • If no prefix list is specified, debugging messages for all IPv6 BGP dampening packets are displayed.

Step 6

debug bgp ipv6 unicast | multicast } updates [ipv6-address ] [prefix-list prefix-list-name ] [in | out ]

Example:


Device# debug bgp ipv6 unicast updates

(Optional) Displays debugging messages for IPv6 BGP update packets.

  • If an ipv6-address argument is specified, debugging messages for IPv6 BGP updates to the specified neighbor are displayed.

  • Use the in keyword to display debugging messages for inbound updates only.

  • Use the out keyword to display debugging messages for outbound updates only.

Configuration Examples for Implementing Multiprotocol BGP for IPv6

Example: Configuring a BGP Process, BGP Router ID, and IPv6 Multiprotocol BGP Peer

The following example enables IPv6 globally, configures a BGP process, and establishes a BGP router ID. Also, the IPv6 multiprotocol BGP peer 2001:DB8:0:CC00::1 is configured and activated.

Device> enable
Device# configure terminal
Device(config)# ipv6 unicast-routing
Device(config)# router bgp 65000
Device(config-router)# no bgp default ipv4-unicast
Device(config-router)# bgp router-id 192.168.99.70
Device(config-router)# neighbor 2001:DB8:0:CC00::1 remote-as 64600
Device(config-router)# address-family ipv6 unicast 
Device(config-router-af)# neighbor 2001:DB8:0:CC00::1 activate
Device(config-router-af)# end

Example: Configuring an IPv6 Multiprotocol BGP Peer Using a Link-Local Address

The following example configures the IPv6 multiprotocol BGP peer FE80::XXXX:BFF:FE0E:A471 over Gigabit Ethernet interface 0/0/0 and sets the route map named nh6 to include the IPv6 next-hop global address of Gigabit Ethernet interface 0/0/0 in BGP updates. The IPv6 next-hop link-local address can be set by the nh6 route map (not shown in the following example) or from the interface specified by the neighbor update-source command (as shown in the following example).


Device> enable
Device# configure terminal 
Device(config)# router bgp 65000
Device(config-router)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 remote-as 64600
Device(config-router)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 update-source gigabitethernet 0/0/0
Device(config-router)# address-family ipv6
Device(config-router-af)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 activate
Device(config-router-af)# neighbor 2001:DB8:0000:0000:0000:0000:0000:0111 route-map nh6 out
Device(config-router-af)# exit
Device(config-router)# exit
Device(config)# route-map nh6 permit 10
Device(config-route-map)# match ipv6 address prefix-list list1
Device(config-route-map)# set ipv6 next-hop 2001:DB8:5y6::1
Device(config-route-map)# exit
Device(config)# ipv6 prefix-list list1 permit 2001:DB8:2Fy2::/48 le 128
Device(config)# ipv6 prefix-list list1 deny ::/0
Device(config)# end


Note


If you specify only the global IPv6 next-hop address (the ipv6-address argument) with the set ipv6 next-hop command after specifying the neighbor interface (the interface-type argument) with the neighbor update-source command, the link-local address of the interface specified with the interface-type argument is included as the next hop in the BGP updates. Therefore, only one route map that sets the global IPv6 next-hop address in BGP updates is required for multiple BGP peers that use link-local addresses.


Example Configuring an IPv6 Multiprotocol BGP Peer Group

The following example configures the IPv6 multiprotocol BGP peer group named group1:

Device> enable
Device# configure terminal
Device(config)# router bgp 65000
Device(config-router)# no bgp default ipv4-unicast
Device(config-router)# neighbor group1 peer-group
Device(config-router)# neighbor group1 remote-as 100
Device(config-router)# neighbor group1 update-source Loopback0
Device(config-router)# neighbor 2001:DB8::1 peer-group group1
Device(config-router)# neighbor 2001:DB8:2:2 peer-group group1
Device(config-router)# address-family ipv6 multicast
Device(config-router-af)# neighbor 2001:DB8::1 activate
Device(config-router-af)# neighbor 2001:DB8:2:2 activate
Device(config-router-af)# exit-address-family
Device(config-router)# end

Example: Configuring a Route Map for IPv6 Multiprotocol BGP Prefixes

The following example configures the route map named rtp to permit IPv6 unicast routes from network 2001:DB8::/24 if they match the prefix list named list1:

Device> enable
Device# configure terminal
Device(config)# router bgp 64900
Device(config-router)# no bgp default ipv4-unicast
Device(config-router)# neighbor 2001:DB8:0:CC00::1 remote-as 64700
Device(config-router)# address-family ipv6 unicast
Device(config-router-af)# neighbor 2001:DB8:0:CC00::1 activate
Device(config-router-af)# neighbor 2001:DB8:0:CC00::1 route-map rtp in
Device(config-router-af)# exit
Device(config)# ipv6 prefix-list cisco seq 10 permit 2001:DB8::/24
Device(config)# route-map rtp permit 10
Device(config-route-map)# match ipv6 address prefix-list list1
Device(config-route-map)# end

Example Redistributing Prefixes into IPv6 Multiprotocol BGP

The following example redistributes BGP routes into the IPv6 multicast database of the local router:


router bgp 64900
 no bgp default ipv4-unicast
address-family ipv6 multicast
 redistribute BGP

Example: Advertising Routes into IPv6 Multiprotocol BGP

The following example injects the IPv6 network 2001:DB8::/24 into the IPv6 unicast database of the local device. (BGP checks that a route for the network exists in the IPv6 unicast database of the local device before advertising the network.)

Device> enable
Device# configure terminal
Device(config)# router bgp 65000
Device(config-router)# no bgp default ipv4-unicast
Device(config-router)# address-family ipv6 unicast
Device(config-router-af)# network 2001:DB8::/24
Device(config-router-af)# end

Example: Advertising IPv4 Routes Between IPv6 Peers

The following example advertises IPv4 routes between IPv6 peers when the IPv6 network is connecting two separate IPv4 networks. Peering is configured using IPv6 addresses in the IPv4 address family configuration mode. The inbound route map named rmap sets the next hop because the advertised next hop is likely to be unreachable.


Device> enable
Device# configure terminal
Device(config)# router bgp 65000
Device(config-router)# neighbor 6peers peer-group
Device(config-router)# neighbor 2001:DB8:1234::2 remote-as 65002
Device(config-router)# address-family ipv4
Device(config-router)# neighbor 6peers activate
Device(config-router)# neighbor 6peers soft-reconfiguration inbound
Device(config-router)# neighbor 2001:DB8:1234::2 peer-group 6peers
Device(config-router)# neighbor 2001:DB8:1234::2 route-map rmap in
Device(config-router)# exit   
Device(config)# route-map rmap permit 10
Device(config-route-map)# set ip next-hop 10.21.8.10
Device(config-route-map)# end

Additional References for Implementing Multiprotocol BGP for IPv6

Standards and RFCs

RFCs

Title

RFC 2545

Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing

RFC 2858

Multiprotocol Extensions for BGP-4

RFC 4007

IPv6 Scoped Address Architecture

RFC 4364

BGP MPLS/IP Virtual Private Networks (VPNs)

RFC 4382

MPLS/BGP Layer 3 Virtual Private Network (VPN) Management Information Base

RFC 4659

BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN

RFC 4724

Graceful Restart Mechanism for BGP

Feature Information for Implementing Multiprotocol BGP for IPv6

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.

Table 1. Feature Information for Implementing Multiprotocol BGP for IPv6

Feature Name

Releases

Feature Information

Multiprotocol BGP for IPv6

Cisco IOS XE Gibraltar 16.11.1

Multiprotocol BGP extensions for IPv6 supports the same features and functionality as IPv4 BGP.