Implementing Multiprotocol BGP for IPv6

Last Updated: April 27, 2012

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, the IPv6 address family and IP multicast routes. All BGP commands and routing policy capabilities can be used with multiprotocol BGP.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest feature information and caveats, see 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 at the end of this document.

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.

Information About Implementing Multiprotocol BGP for IPv6

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 router in the path to the destination) attributes that use IPv6 addresses.

IPv6 Multiprotocol BGP Peer Using a Link-Local Address

An IPv6 multiprotocol BGP can be configured between two IPv6 routers (peers) using link-local addresses. For this function to work, the interface for the neighbor must be identified by using the update-source command, and a route map must be configured 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 only usable for IP unicast, but 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.

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.

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

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 Cisco IOS software sets the router ID to the IPv4 address of a loopback interface on the router. If no loopback interface is configured on the router, then the software chooses the highest IPv4 address configured to a physical interface on the router to represent the BGP router ID. When configuring BGP on a router that is enabled only for IPv6 (the router does not have an IPv4 address), you must manually configure the BGP router ID for the router. 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 router.

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 neighborremote-as command unless you configure the nobgpdefaultipv4-unicastcommand before configuring the neighborremote-as command.

Step 5

bgprouter-idip-address

Example:

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

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

Configuring IPv6 Multiprotocol BGP Between Two Peers

By default, neighbors that are defined using the neighborremote-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 neighboractivate command in address family configuration mode for the other prefix types, as shown for IPv6 prefixes.

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

Step 5

address-familyipv6[unicast | multicast]

Example:

Router(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-familyipv6 command.

The multicast keyword specifies IPv6 multicast address prefixes.

Step 6

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

Example:

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

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

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

Configuring IPv6 multiprotocol BGP between two IPv6 routers (peers) using link-local addresses requires that the interface for the neighbor be identified by using the update-source command and that a route map be configured to set an IPv6 global next hop.

Note

By default, neighbors that are defined using the neighborremote-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 neighboractivate 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 neighborroute-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 neighborroute-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.

The optional % keyword is the IPv6 link-local address identifier. This keyword needs to be added whenever a link-local IPv6 address is used outside the context of its interface.

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

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

The multicast keyword specifies IPv6 multicast address prefixes.

Step 7

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

Example:

Router(config-router-af)# neighbor FE80::XXXX:BFF:FE0E:A471% activate

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

The optional % keyword is the IPv6 link-local address identifier. This keyword needs to be added whenever a link-local IPv6 address is used outside the context of its interface.

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

Step 13

setipv6next-hopipv6-address [link-local-address] [peer-address

Example:

Router(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-addressargument 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 setipv6next-hopcommand after specifying the neighbor interface (the interface-type argument) with the neighborupdate-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.

Troubleshooting Tips

If peering is not established by this task, it may be because of a missing route map setipv6next-hop command. Use the debugbgpipv6update 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 neighborremote-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 neighboractivate 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 neighborpeer-groupcommand exchange only IPv4 unicast address prefixes. To exchange other address prefix types, such as IPv6 prefixes, you must activate peer groups using the neighboractivate 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.

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

The multicast keyword specifies IPv6 multicast address prefixes.

Step 7

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

Example:

Router(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 neighboractivate command with the peer-group-name argument as an alternative in this step.

Step 8

neighborip-address | ipv6-address} send-label

Example:

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

Advertises the capability of the router 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.

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

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

Advertising Routes into IPv6 Multiprotocol BGP

Note

By default, networks that are defined in router configuration mode using the networkcommand 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 networkcommand in address family configuration mode for the other database, as shown for the IPv6 BGP database.

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

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

Specifically, 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-prefixargument in the networkcommand 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:

Router(config-router-af)# exit

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

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

Configuring a Route Map for IPv6 Multiprotocol BGP Prefixes

By default, neighbors that are defined using the neighborremote-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 neighboractivate 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 neighborroute-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 neighborroute-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.

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

The multicast keyword specifies IPv6 multicast address prefixes.

Step 6

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

Example:

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

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

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 clearbgpipv6 command with the soft and in keywords will perform a soft reset.

Step 8

exit

Example:

Router(config-router-af)# exit

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

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

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.

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

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

Step 6

exit

Example:

Router(config-router-af)# exit

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

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

Advertising IPv4 Routes Between IPv6 BGP Peers

If an IPv6 network is connecting two separate IPv4 networks, it is possible to use IPv6 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.

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 clearbgpipv6 command with the soft and in keywords will perform a soft reset.

Step 9

exit

Example:

Router(config-router-af)# exit

Exits address family configuration mode, and returns the router to router 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-familyipv6 command.

The multicast keyword specifies IPv6 multicast address prefixes.

Step 5

distancebgpexternal-distanceinternal-distancelocal-distance

Example:

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

Configures the administrative distance for BGP routes.

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.

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

The following example configures the IPv6 multiprotocol BGP peer FE80::XXXX:BFF:FE0E:A471 over Fast Ethernet interface 0 and sets the route map named nh6 to include the IPv6 next-hop global address of Fast Ethernet interface 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 neighborupdate-source command (as shown in the following example).

If you specify only the global IPv6 next-hop address (theipv6-address argument) with the setipv6next-hop command after specifying the neighbor interface (the interface-type argument) with the neighborupdate-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:

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 router. (BGP checks that a route for the network exists in the IPv6 unicast database of the local router before advertising the network.)

Example Redistributing Prefixes into IPv6 Multiprotocol BGP

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.

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 Implementing Multiprotocol BGPfor 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.

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 Implementing Multiprotocol BGP for IPv6

Feature Name

Releases

Feature Information

6PE Multipath

12.2(25)S 12.2(28)SB 12.2(33)SRA 12.2(33)SXI1 12.4(6)T

The 6PE multipath feature uses multiprotocol internal BGP (MP-iBGP) to distribute IPv6 routes over the MPLS IPv4 core network and to attach an MPLS label to each route.

Users can redistribute (inject) prefixes from another routing protocol into IPv6 multiprotocol BGP.

VRF Lite Support for IPv6

12.2(58)SE

This feature is supported.

Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1110R)

Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.