This module describes policy-based routing (PBR) for IPv6. PBR in both IPv6 and IPv4 allows a user to manually configure how received packets should be routed. PBR allows the user to identify packets using several attributes and to specify the next hop or output interface to which the packet should be sent. PBR also provides a basic packet-marking capability.
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 at the end of this module.
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 Policy-Based Routing for IPv6
PBR gives you a flexible means of routing packets by allowing you to configure a defined policy for traffic flows, which lessens reliance on routes derived from routing protocols. To this end, PBR gives you more control over routing by extending and complementing the existing mechanisms provided by routing protocols. PBR allows you to set the IPv6 precedence. It also allows you to specify a path for certain traffic, such as priority traffic over a high-cost link.
PBR for IPv6 may be applied to both forwarded and originated IPv6 packets. For forwarded packets, PBR for IPv6 will be implemented as an IPv6 input interface feature, supported in the process, Cisco Express Forwarding, and distributed Cisco Express Forwarding forwarding paths.
Policies can be based on IPv6 address, port numbers, protocols, or packet size. For a simple policy, you can use any one of these descriptors; for a complex policy, you can use all of them.
PBR allows you to perform the following tasks:
Classify traffic based on extended access list criteria. Access lists, then, establish the match criteria.
Set IPv6 precedence bits, giving the network the ability to enable differentiated classes of service.
Route packets to specific traffic-engineered paths; you might need to route them to allow a specific quality of service (QoS) through the network.
Policies can be based on IPv6 address, port numbers, protocols, or size of packets. For a simple policy, you can use any one of these descriptors; for a complex policy, you can use all of them.
PBR allows you to classify and mark packets at the edge of the network. PBR marks a packet by setting its precedence value. The precedence value can be used directly by routers in the network core to apply the appropriate QoS to a packet, which keeps packet classification at your network edge.
How Policy-Based Routing Works
All packets received on an interface with PBR enabled are passed through enhanced packet filters called route maps. The route maps used by PBR dictate the policy, determining where to forward packets.
Route maps are composed of statements. The route map statements can be marked as permit or deny, and they are interpreted in the following ways:
If a packet matches all match statements for a route map that is marked as permit, then the device attempts to policy route the packet using the set statements. Otherwise, the packet is forwarded normally.
If the packet matches any match statements for a route map that is marked as deny, then the packet is not subject to PBR and is forwarded normally.
If the statement is marked as permit and the packets do not match any route map statements, the packets are sent back through the normal forwarding channels and destination-based routing is performed.
Specify PBR on the interface that receives the packet, not on the interface from which the packet is sent.
PBR for IPv6 will match packets using the
matchipv6address command in the associated PBR route map. Packet match criteria are those criteria supported by IPv6 access lists, as follows:
Input interface
Source IPv6 address (standard or extended access list [ACL])
Destination IPv6 address (standard or extended ACL)
Protocol (extended ACL)
Source port and destination port (extended ACL)
DSCP (extended ACL)
Flow-label (extended ACL)
Fragment (extended ACL)
Packets may also be matched by length using the match length statement in the PBR route map.
Match statements are evaluated first by the criteria specified in the
matchipv6address command and then by criteria specified in the
matchlength command. Therefore, if both an ACL and a length statement are used, a packet will first be subject to an ACL match. Only packets that pass the ACL match will then be subject to the length match. Finally, only packets that pass both the ACL and the length statement will be policy-routed.
Packet Forwarding Using Set Statements
PBR for IPv6 packet forwarding is controlled using a number of set statements in the PBR route map. These set statements are evaluated individually in the order shown, and PBR will attempt to forward the packet using each of the of the set statements in turn. PBR evaluates each set statement by itself, without reference to any prior or subsequent set statement.
You may set multiple forwarding statements in the PBR for IPv6 route map. The following set statements may be specified:
IPv6 next hop. The next hop to which the packet should be sent. The next hop must be present in the Routing Information Base (RIB), it must be directly connected, and it must be a global IPv6 address. If the next hop is invalid, the set statement is ignored.
Output interface. A packet is forwarded out of a specified interface. An entry for the packet destination address must exist in the IPv6 RIB, and the specified output interface must be in the path set. If the interface is invalid, the statement is ignored.
Default IPv6 next hop. The next hop to which the packet should be sent. It must be a global IPv6 address. This set statement is used only when there is no explicit entry for the packet destination in the IPv6 RIB.
Default output interface. The packet is forwarded out a specified interface. This set statement is used only when there is no explicit entry for the packet destination in the IPv6 RIB.
Note
The order in which PBR evaluates the set statements is the order in which they are listed above. This order may differ from the order in which route-map set statements are listed by
show commands.
When to Use Policy-Based Routing
PBR can be used if you want certain packets to be routed some way other than the obvious shortest path. For example, PBR can be used to provide the following functionality:
Equal access
Protocol-sensitive routing
Source-sensitive routing
Routing based on interactive versus batch traffic
Routing based on dedicated links
Some applications or traffic can benefit from QoS-specific routing; for example, you could transfer stock records to a corporate office on a higher-bandwidth, higher-cost link for a short time while sending routine application data such as e-mail over a lower-bandwidth, lower-cost link.
To enable PBR for IPv6, you must create a route map that specifies the packet match criteria and desired policy-route action. Then you associate the route map on the required interface. All packets arriving on the specified interface that match the match clauses will be subject to PBR.
In PBR, the
setvrf command decouples the VRF and interface association and allows the selection of a VRF based on ACL-based classification using existing PBR or route-map configurations. It provides a single router with multiple routing tables and the ability to select routes based on ACL classification. The router classifies packets based on ACL, selects a routing table, looks up the destination address, and then routes the packet.
Identifies a route map to use for IPv6 PBR on an interface.
Enabling Local PBR for IPv6
Packets that are generated by the device are not normally policy routed. Perform this task to enable local PBR for IPv6 for such packets, indicating which route map the device should use.
SUMMARY STEPS
1.enable
2.configureterminal
3.ipv6localpolicyroute-maproute-map-name
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Device> enable
Enables privileged EXEC mode.
Enter your password if prompted.
Step 2
configureterminal
Example:
Device# configure terminal
Enters global configuration mode.
Step 3
ipv6localpolicyroute-maproute-map-name
Example:
Device(config)# ipv6 local policy route-map pbr-src-90
Configures PBR for IPv6 for packets generated by the device.
Enabling Cisco Express Forwarding-Switched PBR for IPv6
No special configuration is required to enable Cisco Express Forwarding-switched PBR for IPv6. It is on by default as soon as you enable Cisco Express Forwarding and PBR on the router.
Verifying Configuration and Operation of PBR for IPv6
SUMMARY STEPS
1.enable
2.showipv6policy
DETAILED STEPS
Command or Action
Purpose
Step 1
enable
Example:
Device> enable
Enables privileged EXEC mode.
Enter your password if prompted.
Step 2
showipv6policy
Example:
Device# show ipv6 policy
Displays IPv6 policy routing packet activity.
Troubleshooting PBR for IPv6
Policy routing looks at various parts of the packet and then routes the packet based on certain user-defined attributes in the packet. Perform this task to help you determine what policy routing is following, whether a packet matches the criteria, and if so, the resulting routing information for the packet.
In the following example, a route map named pbr-dest-1 is created and configured, specifying packet match criteria and desired policy-route action. Then, PBR is enabled on Gigabit Ethernet interface 0/0/0.
ipv6 access-list match-dest-1
permit ipv6 any 2001:DB8:2001:1760::/32
route-map pbr-dest-1 permit 10
match ipv6 address match-dest-1
set interface GigabitEthernet 0/0/1
interface GigabitEthernet0/0/0
ipv6 policy-route-map interactive
Example: Enabling Local PBR for IPv6
In the following example, packets with a destination IPv6 address matching that allowed by access list pbr-src-90 are sent to the router at IPv6 address 2001:DB8:2003:1::95:
ipv6 access-list src-90
permit ipv6 host 2001:DB8:2003::90 2001:DB8:2001:1000::/64
route-map pbr-src-90 permit 10
match ipv6 address src-90
set ipv6 next-hop 2001:DB8:2003:1::95
ipv6 local policy route-map pbr-src-90
No new or modified RFCs are supported by this feature.
--
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.
Feature Information for Implementing Policy-Based Routing 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.
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 Policy-Based Routing for IPv6
Feature Name
Releases
Feature Information
IPv6 Routing--IPv6 Policy-Based Routing
Cisco IOS XE Release 3.2S
Policy-based routing for IPv6 in Cisco IOS software allows a user to manually configure how received packets should be routed.
The following commands were introduced or modified by this feature:
debugipv6policy,
ipv6localpolicyroute-map,
ipv6policyroute-map,
matchipv6address,
matchlength,
route-map, setdefaultinterface, setinterface,
setipv6defaultnext-hop,
setipv6next-hop,
setipv6precedence,
setvrf,
showipv6policy,
showroute-map
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.