Information About IPv6 Policy-Based Routing
Policy-Based Routing Overview
Policy-based routing (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. Therefore, 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. For a simple policy, you can use any one of these tasks; for a complex policy, you can use all of them. 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 following forwarding paths:
-
Process
-
Cisco Express Forwarding (formerly known as CEF)
-
Distributed Cisco Express Forwarding
Policies can be based on the IPv6 address, port numbers, protocols, or packet size.
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.
PBR allows you to classify and mark packets at the edge of the network. PBR marks a packet by setting precedence value. The precedence value can be used directly by devices 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 policy-based routing (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, 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, 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 normal forwarding channels and destination-based routing is performed.
You must configure policy-based routing (PBR) on the interface that receives the packet, and not on the interface from which the packet is sent.
Packet Matching
Policy-based routing (PBR) for IPv6 will match packets using the match ipv6 address 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 control 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 command in the PBR route map.
Match statements are evaluated first by the criteria specified in the match ipv6 address command and then by the criteria specified in the match length 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 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
Policy-based routing (PBR) for IPv6 packet forwarding is controlled by 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 set statements in turn. PBR evaluates each set statement individually, 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 set path. 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 of 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
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 traffic versus batch traffic
-
Routing based on dedicated links
Some applications or traffic can benefit from Quality of Service (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.