Table Of Contents
Implementing Cisco Express Forwarding on Cisco IOS XR Software
Contents
Prerequisites for Implementing Cisco Express Forwarding on Cisco IOS XR Software
Information About Implementing Cisco Express Forwarding on Cisco IOS XR Software
Key Features Supported in the Cisco IOS XR Cisco Express Forwarding Implementation
Benefits of CEF
CEF Components
CEF Nonrecursive Accounting
BGP Policy Accounting
Reverse Path Forwarding (Strict and Loose)
Route Processor Management Ethernet Forwarding
How to Implement CEF on Cisco IOS XR Software
Configuring Nonrecursive Accounting for CEF
Verifying CEF
Configuring BGP Policy Accounting
Prerequisites
Verifying BGP Policy Accounting
Prerequisites
Configuring a Route Purge Delay
Configuring Unicast RPF Checking
Configuring Modular Services Card-to-Route Processor Management Ethernet Interfaces Switching
Configuration Examples for Implementing CEF on Cisco IOS XR Software
Configuring Nonrecursive Accounting: Example
Configuring BGP Policy Accounting: Example
Verifying BGP Policy Statistics: Example
Configuring Unicast RPF Checking: Example
Configuring Modular Services Card to Route Processor Management Ethernet Interfaces Switching: Example
Additional References
Related Documents
Standards
MIBs
RFCs
Technical Assistance
Implementing Cisco Express Forwarding on Cisco IOS XR Software
Cisco Express Forwarding (CEF) is advanced, Layer 3 IP switching technology. CEF optimizes network performance and scalability for networks with large and dynamic traffic patterns, such as the Internet, on networks characterized by intensive web-based applications, or interactive sessions.
Note
For complete descriptions of the CEF commands listed in this module, you can refer to the "Related Documents" section of this module. To locate documentation for other commands that might appear in the course of executing a configuration task, search online in the Cisco IOS XR software master command index.
Feature History for Implementing CEF on Cisco IOS XR Software
Release
|
Modification
|
Release 2.0
|
This feature was introduced on the Cisco CRS-1.
|
Release 3.0
|
No modification.
|
Release 3.2
|
This feature was supported on the Cisco XR 12000 Series Router.
|
Release 3.3.0
|
Loose and Strict support for uRPF was added.
|
Release 3.4.0
|
No modification.
|
Contents
•
Prerequisites for Implementing Cisco Express Forwarding on Cisco IOS XR Software
•
Information About Implementing Cisco Express Forwarding on Cisco IOS XR Software
•
How to Implement CEF on Cisco IOS XR Software
•
Configuration Examples for Implementing CEF on Cisco IOS XR Software
•
Additional References
Prerequisites for Implementing Cisco Express Forwarding on Cisco IOS XR Software
The following prerequisites are required to implement Cisco Express Forwarding:
•
You must be in a user group associated with a task group that includes the proper task IDs for CEF commands. Task IDs for commands are listed in the Cisco IOS XR IP Addresses and Services Command Reference Guide.
•
You must install and activate the Cisco IOS XR Unicast Routing Core Bundle for Cisco Express Forwarding. The Cisco Express Forwarding commands are installed as part of the Base Package which is included in the Cisco IOS XR Unicast Routing Core Bundle.
For detailed information about bundle installation, see the Cisco IOS XR Getting Started Guide.
•
You must be familiar with Cisco Express Forwarding commands. See the Cisco Express Forwarding Commands on Cisco IOS XR Software module in the Cisco IOS XR IP Addresses and Services Command Reference.
Information About Implementing Cisco Express Forwarding on Cisco IOS XR Software
To implement Cisco Express Forwarding features in this document you must understand the following concepts:
•
Key Features Supported in the Cisco IOS XR Cisco Express Forwarding Implementation
•
Benefits of CEF
•
CEF Components
•
CEF Nonrecursive Accounting
•
BGP Policy Accounting
•
Reverse Path Forwarding (Strict and Loose)
•
Route Processor Management Ethernet Forwarding
Key Features Supported in the Cisco IOS XR Cisco Express Forwarding Implementation
The following features are supported for CEF on Cisco IOS XR software:
•
BGP policy accounting
•
Reverse path forwarding (RPF)
•
Virtual interface support
•
Multipath support
•
Route consistency
•
High availability features such as packaging, restartability, and Out of Resource (OOR) handling
Benefits of CEF
CEF offers the following benefits:
•
Improved performance—CEF is less CPU-intensive than fast-switching route caching. More CPU processing power can be dedicated to Layer 3 services such as quality of service (QoS) and encryption.
•
Scalability—CEF offers full switching capacity at each modular services card (MSC).
•
Resilience—CEF offers an unprecedented level of switching consistency and stability in large dynamic networks. In dynamic networks, fast-switched cache entries are frequently invalidated due to routing changes. These changes can cause traffic to be process switched using the routing table, rather than fast switched using the route cache. Because the Forwarding Information Base (FIB) lookup table contains all known routes that exist in the routing table, it eliminates route cache maintenance and the fast-switch or process-switch forwarding scenario. CEF can switch traffic more efficiently than typical demand caching schemes.
CEF Components
Cisco IOS XR CEF always operates in CEF mode with two distinct components: a Forwarding Information Base (FIB) database and adjacency table—a protocol-independent adjacency information base (AIB).
CEF is a primary IP packet-forwarding database for Cisco IOS XR software. CEF is responsible for the following functions:
•
Software switching path
•
Maintaining forwarding table and adjacency tables (which are maintained by the AIB) for software and hardware forwarding engines
The following CEF forwarding tables are maintained in Cisco IOS XR software:
•
IPv4 CEF database
•
IPv6 CEF database
•
MPLS LFD database
•
Multicast Forwarding Table (MFD)
The protocol-dependent FIB process maintains the forwarding tables for IPv4 and IPv6 unicast in the route processor (RP) and each MSC.
The FIB on each node processes Routing Information Base (RIB) updates, performing route resolution and maintaining FIB tables independently in the RP and each MSC. FIB tables on each node can be slightly different. Adjacency FIB entries are maintained only on a local node, and adjacency entries linked to FIB entries could be different.
CEF Nonrecursive Accounting
CEF nonrecursive accounting aggregates packet and byte statistics for routes.
The per-load information counters are associated with each Interior Gateway Protocol (IGP) or Border Gateway Protocol (BGP) next hop, and account for traffic flowing through a specific IGP prefix to different destinations. The IGP prefixes are the advertised next hops to which traffic is forwarded from the router. Traffic is sent to the different BGP destinations that claim the IGP prefix as their next hop.
BGP Policy Accounting
BGP policy accounting measures and classifies IP traffic that is sent to, or received from, different peers. Policy accounting is enabled on an individual input or output interface basis, and counters based on parameters such as community list, autonomous system number, or autonomous system path are assigned to identify the IP traffic.
Note
There are two types of route policies. The first type (regular BGP route policies) is used to filter the BGP routes advertised into or out from the BGP links. This type of route policy is applied to the specific BGP neighbor. The second type (specific route policy) is used to set up a traffic index for the BGP prefixes. This route policy is applied to the global BGP IPv4 address family to set up the traffic index when the BGP routes are inserted into the RIB table. BGP policy accounting uses the second type of route policy.
Using BGP policy accounting, you can account for traffic according to the route it traverses. Service providers can identify and account for all traffic by customer and bill accordingly. In Figure 1, BGP policy accounting can be implemented in Router A to measure packet and byte volumes in autonomous system buckets. Customers are billed appropriately for traffic that is routed from a domestic, international, or satellite source.
Note
BGP policy accounting measures and classifies IP traffic for BGP prefixes only.
Figure 1 Sample Topology for BGP Policy Accounting
Based on the specified routing policy, BGP policy accounting assigns each prefix a traffic index (bucket) associated with an interface. BGP prefixes are downloaded from the Routing Information Base (RIB) to the FIB along with the traffic index.
There are a total of 63 (1 to 63) traffic indexes (bucket numbers) that can be assigned for BGP prefixes. Internally, there is an accounting table associated with the traffic indexes to be created for each input (ingress) and output (egress) interface. The traffic indexes allow you to account for the IP traffic, where the source IP address, the destination IP address, or both are BGP prefixes.
Note
Traffic index 0 contains the packet count using Interior Gateway Protocol (IGP) routes.
Reverse Path Forwarding (Strict and Loose)
Unicast IPv4 and IPv6 Reverse Path Forwarding (uRPF), both strict and loose modes, help mitigate problems caused by the introduction of malformed or spoofed IP source addresses into a network by discarding IP packets that lack a verifiable IP source address.
When strict uRPF is enabled, the source address of the packet is checked in the FIB. If the packet is received on the same interface that would be used to forward the traffic to the source of the packet, the packet passes the check and is further processed; otherwise, it is dropped.
When loose uRPF is enabled, the source address of the packet is checked in the FIB. If it exists and matches a valid forwarding entry, the packet passes the check and is further processed; otherwise, it is dropped. Loose and strict uRPF supports two options: allow self-ping and allow default. Self-ping allows the source of the packet to ping itself. Allow default allows the lookup result to match a default routing entry.
Route Processor Management Ethernet Forwarding
Forwarding from the MSC interface to the RP Management Ethernet is disabled by default. The rp mgmtethernet forwarding command is used to enable forwarding from the MSC interface to RP Management Ethernet.
Forwarding from the RP Management Ethernet to the MSC interface, and from the RP Management Ethernet to RP Management Ethernet, is enabled by default.
Note
The rp mgmtethernet forwarding command is not supported on the Cisco XR 12000 Series Router.
How to Implement CEF on Cisco IOS XR Software
This section contains instructions for the following tasks.
•
Configuring Nonrecursive Accounting for CEF
•
Verifying CEF
•
Configuring BGP Policy Accounting
•
Verifying BGP Policy Accounting
•
Configuring a Route Purge Delay
•
Configuring a Route Purge Delay
•
Configuring Unicast RPF Checking
•
Configuring Modular Services Card-to-Route Processor Management Ethernet Interfaces Switching
Configuring Nonrecursive Accounting for CEF
This task allows you to enable CEF nonrecursive accounting based on the prefixes. To display the accounting statistics for the prefix, use the show cef {ipv4 | ipv6} command.
SUMMARY STEPS
1.
configure
2.
cef accounting non-recursive
3.
end
or
commit
4.
show cef {ipv4 | ipv6} non-recursive
5.
show cef {ipv4 | ipv6} prefix detail location node-id
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 2
|
cef accounting non-recursive
Example:
RP/0/RP0/CPU0:router(config)# cef accounting
non-recursive
|
Enables nonrecursive accounting of CEF nonrecursive prefixes. The number of packets express forwarded through a destination IP address are counted.
|
Step 3
|
end
or
commit
Example:
RP/0/RP0/CPU0:router(config)# end
or
RP/0/RP0/CPU0:router(config)# commit
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
• Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Step 4
|
show cef {ipv4 | ipv6} non-recursive
Example:
RP/0/RP0/CPU0:router# show cef ipv4
non-recursive
|
Displays the IPv4 nonrecursive prefix entries in the IPv4 CEF table.
|
Step 5
|
show cef {ipv4 | ipv6} prefix detail location
node-id
Example:
RP/0/RP0/CPU0:router# show cef ipv4 10.0.0.0/8
detail location POS 0/1/CPU0
|
Displays the CEF nonrecursive accounting statistics for the specified prefix.
|
Verifying CEF
This task allows you to verify CEF.
SUMMARY STEPS
1.
show cef {ipv4 | ipv6}
2.
show cef {ipv4 | ipv6} summary
3.
show cef {ipv4 | ipv6} detail
4.
show adjacency detail
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
show cef {ipv4 | ipv6}
Example:
RP/0/RP0/CPU0:router# show cef ipv4
|
Displays the IPv4 or IPv6 CEF table. The next hop and forwarding interface are displayed for each prefix.
|
Step 2
|
show cef {ipv4 | ipv6} summary
Example:
RP/0/RP0/CPU0:router# show cef ipv4 summary
|
Displays a summary of the IPv4 or IPv6 CEF table.
|
Step 3
|
show cef {ipv4 | ipv6} detail
Example:
RP/0/RP0/CPU0:router# show cef ipv4 detail
|
Displays detailed IPv4 or IPv6 CEF table information.
|
Step 4
|
show adjacency detail
Example:
RP/0/RP0/CPU0:router# show adjacency detail
|
Displays detailed adjacency information, including Layer 2 information for each interface.
|
Configuring BGP Policy Accounting
This task allows you to configure BGP policy accounting.
Note
There are two types of route policies. BGP policy accounting uses the type that is used to set up a traffic index for the BGP prefixes. The route policy is applied to the global BGP IPv4 address family to set up the traffic index when the BGP routes are inserted into the RIB table.
BGP policy accounting enables per interface accounting for ingress and egress IP traffic based on the traffic index assigned to the source IP address (BGP prefix) and destination IP address (BGP prefix). The traffic index of BGP prefixes can be assigned according to the following parameters using Routing Policy Language (RPL):
•
prefix-set
•
AS-path-set
•
community-set
Note
BGP policy accounting is supported on IPv4 prefixes only.
Two configuration tasks provide the ability to classify BGP prefixes that are in the RIB according to the prefix-set, AS-path-set, or the community-set parameters:
1.
Use the route-policy command to define the policy for traffic index setup based on the prefix-set, AS-path-set, or community-set.
2.
Use the BGP table-policy command to apply the defined route policy to the global BGP IPv4 unicast address family.
See the Cisco IOS XR Routing Command Reference for information on the route-policy and table-policy commands.
BGP policy accounting can be enabled on each interface with the following options:
•
Use the ipv4 bgp policy accounting command with one of the following keyword options:
–
input source-accounting
–
input destination-accounting
–
input source-accounting destination-accounting
•
Use the ipv4 bgp policy accounting command with one of the following keyword options:
–
output source-accounting
–
output destination-accounting
–
output source-accounting destination-accounting
•
Use any combination of the keywords provided for the ipv4 bgp policy accounting command.
Prerequisites
Before using the BGP policy accounting feature, you must enable BGP on the router (CEF is enabled by default). See the Cisco IOS XR Routing Configuration Guide for information on enabling BGP.
SUMMARY STEPS
1.
configure
2.
as-path-set
3.
prefix-set
4.
route-policy policy-name (to configure the route policy to set up the traffic index for the BGP prefixes)
5.
end
6.
configure
7.
router bgp autonomous-system-number
8.
address-family {ipv4 | ipv6} {unicast | multicast}
9.
table-policy policy-name
10.
end
11.
configure
12.
interface type instance
13.
ipv4 bgp policy accounting {input | output {destination-accounting [source-accounting] | source-accounting [destination-accounting]}}
14.
end
or
commit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 2
|
as-path-set
Example:
RP/0/RP0/CPU0:router(config)# as-path-set as107
RP/0/RP0/CPU0:router(config-as)# ios-regex
'107$'
RP/0/RP0/CPU0:router(config-as)# end-set
RP/0/RP0/CPU0:router(config)# as-path-set as108
RP/0/RP0/CPU0:router(config-as)# ios-regex
'108$'
RP/0/RP0/CPU0:router(config-as)# end-set
|
Enters policy configuration mode.
|
Step 3
|
prefix-set
Example:
RP/0/RP0/CPU0:router(config)# prefix-set
RT-65.0
RP/0/RP0/CPU0:router(config)# 65.0.0.0/16 ge 16
le 32
RP/0/RP0/CPU0:router(config)# end-set
RP/0/RP0/CPU0:router(config)# prefix-set
RT-66.0
|
Defines the prefix list.
|
Step 4
|
route-policy policy-name
Example:
RP/0/RP0/CPU0:router(config-pfx)# 66.0.0.0/16
ge 16 le 32
RP/0/RP0/CPU0:router(config-pfx)# end-set
RP/0/RP0/CPU0:router(config)# route-policy
set-traffic-index
RP/0/RP0/CPU0:router(config-rpl)# if
destination in (27.1.1.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 1
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (27.1.2.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 2
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (27.1.3.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 3
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (27.1.4.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 4
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (27.1.5.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 5
RP/0/RP0/CPU0:router(config-rpl)# endif
RP/0/RP0/CPU0:router(config-rpl)# if
destination in (28.1.1.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 6
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (28.1.2.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 7
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (28.1.3.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 8
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (28.1.4.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 9
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in (28.1.5.0/24) then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 10
RP/0/RP0/CPU0:router(config-rpl)# endif
RP/0/RP0/CPU0:router(config-rpl)# if as-path in
as107 then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 7
RP/0/RP0/CPU0:router(config-rpl)# elseif
as-path in as108 then
|
Specifies the policy parameters.
|
| |
| |
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 8
RP/0/RP0/CPU0:router(config-rpl)# endif
RP/0/RP0/CPU0:router(config-rpl)# if
destination in RT-65.0 then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 15
RP/0/RP0/CPU0:router(config-rpl)# elseif
destination in RT-66.0 then
RP/0/RP0/CPU0:router(config-rpl)# set
traffic-index 16
RP/0/RP0/CPU0:router(config-rpl)# endif
RP/0/RP0/CPU0:router(config-rpl)# end-policy
|
|
Step 5
|
end
Example:
RP/0/RP0/CPU0:router(config-rpl)# end
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
|
Step 6
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 7
|
router bgp autonomous-system-number
Example:
RP/0/RP0/CPU0:router(config)# router bgp 1
|
Allows you to configure the BGP routing process.
|
Step 8
|
address-family {ipv4 | ipv6} {unicast |
multicast}
Example:
RP/0/RP0/CPU0:router(config-bgp)#
address-family ipv4 unicast
|
Allows you to enter the address family configuration mode while configuring a BGP routing session.
|
Step 9
|
table policy policy-name
Example:
RP/0/RP0/CPU0:router(config-bgp-af)#
table-policy set-traffic-index
|
Applies a routing policy to routes being installed into the routing table.
|
Step 10
|
end
Example:
RP/0/RP0/CPU0:router(config-bgp-af)# end
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
|
Step 11
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 12
|
interface type instance
Example:
RP/0/RP0/CPU0:router(config)# interface
TenGigE0/1/0/2
|
Enters interface configuration mode.
|
Step 13
|
ipv4 bgp policy accounting {input | output
{destination-accounting [source-accounting] |
source-accounting [destination-accounting]}}
Example:
RP/0/RP0/CPU0:router(config-if)# ipv4 bgp
policy accounting output destination-accounting
|
Enables BGP policy accounting.
|
Step 14
|
end
or
commit
Example:
RP/0/RP0/CPU0:router(config-if)# end
or
RP/0/RP0/CPU0:router(config-if)# commit
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
• Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Verifying BGP Policy Accounting
This task allows you to verify BGP policy accounting.
Note
BGP policy accounting is supported on IPv4 prefixes.
Prerequisites
BGP policy accounting must be configured. See the "Configuring BGP Policy Accounting" section.
SUMMARY STEPS
1.
show route bgp
2.
show bgp summary
3.
show bgp ip-address
4.
show route ipv4 ip-address
5.
show cef ipv4 prefix
6.
show cef ipv4 prefix detail
7.
show cef ipv4 interface type instance bgp-policy-statistics
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
show route bgp
Example:
RP/0/RP0/CPU0:router# show route bgp
|
Displays all BGP routes with traffic indexes.
|
Step 2
|
show bgp summary
Example:
RP/0/RP0/CPU0:router# show bgp summary
|
Displays the status of all BGP neighbors.
|
Step 3
|
show bgp ip-address
Example:
RP/0/RP0/CPU0:router# show bgp 40.1.1.1
|
Displays BGP prefixes with BGP attributes.
|
Step 4
|
show route ipv4 ip-address
Example:
RP/0/RP0/CPU0:router# show route ipv4 40.1.1.1
|
Displays the specific BGP route with the traffic index in the RIB.
|
Step 5
|
show cef ipv4 prefix
Example:
RP/0/RP0/CPU0:router# show cef ipv4 40.1.1.1
|
Displays the specific BGP prefix with the traffic index in the RP FIB.
|
Step 6
|
show cef ipv4 prefix detail
Example:
RP/0/RP0/CPU0:router# show cef ipv4 40.1.1.1
detail
|
Displays the specific BGP prefix with detailed information in the RP FIB.
|
Step 7
|
show cef ipv4 interface type instance
bgp-policy-statistics
Example:
RP/0/RP0/CPU0:router# show cef ipv4 interface
TenGigE 0/2/0/4 bgp-policy-statistics
|
Displays the BGP Policy Accounting statistics for the specific interface.
|
Configuring a Route Purge Delay
This task allows you to configure a route purge delay. A purge delay purges routes when the RIB or other related process experiences a failure.
SUMMARY STEPS
1.
configure
2.
cef purge-delay seconds
3.
end
or
commit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 2
|
cef purge-delay seconds
Example:
RP/0/RP0/CPU0:router(config)# cef purge-delay
180
|
Configures a delay in purging routes when the Routing Information Base (RIB) or other related processes experience a failure.
|
Step 3
|
end
or
commit
Example:
RP/0/RP0/CPU0:router(config)# end
or
RP/0/RP0/CPU0:router(config)# commit
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
• Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Configuring Unicast RPF Checking
This task allows you to configure unicast Reverse Path Forwarding (uRFP) RPF checking. Unicast RPF checking allows you to mitigate problems caused by malformed or forged (spoofed) IP source addresses that pass through a router. Malformed or forged source addresses can indicate denial-of-service (DoS) attacks based on source IP address spoofing.
SUMMARY STEPS
1.
configure
2.
interface type instance
3.
{ipv4 | ipv6} verify unicast source reachable-via {any | rx} [allow-default] [allow-self-ping]
4.
end
or
commit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 2
|
interface type instance
Example:
RP/0/RP0/CPU0:router(config)# interface pos
0/1/0/0
|
Enters interface configuration mode.
|
Step 3
|
{ipv4 | ipv6} verify unicast source
reachable-via {any | rx} [allow-default]
[allow-self-ping]
Example:
RP/0/RP0/CPU0:router(config-if)# ipv4 verify
unicast source reachable-via rx
|
Enables IPv4 or IPv6 uRPF checking.
|
Step 4
|
end
or
commit
Example:
RP/0/RP0/CPU0:router(config-if)# end
or
RP/0/RP0/CPU0:router(config-if)# commit
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
• Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Configuring Modular Services Card-to-Route Processor Management Ethernet Interfaces Switching
This task allows you to enable MSC-to-RP management Ethernet interface switching.
SUMMARY STEPS
1.
configure
2.
rp mgmtethernet forwarding
3.
end
or
commit
DETAILED STEPS
| |
Command or Action
|
Purpose
|
Step 1
|
configure
Example:
RP/0/RP0/CPU0:router# configure
|
Enters global configuration mode.
|
Step 2
|
rp mgmtethernet forwarding
Example:
RP/0/RP0/CPU0:router(configure)# rp
mgmtethernet forwarding
|
Enables switching from the MSC to the route processor Management Ethernet interfaces.
|
Step 3
|
end
or
commit
Example:
RP/0/RP0/CPU0:router(config)# end
or
RP/0/RP0/CPU0:router(config)# commit
|
Saves configuration changes.
• When you issue the end command, the system prompts you to commit changes:
Uncommitted changes found, commit them before
exiting(yes/no/cancel)?
[cancel]:
– Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.
– Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.
– Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.
• Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.
|
Configuration Examples for Implementing CEF on Cisco IOS XR Software
This section provides the following configuration examples:
•
Configuring Nonrecursive Accounting: Example
•
Configuring BGP Policy Accounting: Example
•
Verifying BGP Policy Statistics: Example
•
Configuring Unicast RPF Checking: Example
•
Configuring Modular Services Card to Route Processor Management Ethernet Interfaces Switching: Example
Configuring Nonrecursive Accounting: Example
The following example shows how to configure nonrecursive accounting:
cef accounting non-recursive
Configuring BGP Policy Accounting: Example
The following example shows how to configure BGP policy accounting.
Configure loopback interfaces for BGP router-id:
ipv4 address 190.1.1.1 255.255.255.255
Configure interfaces with the BGP policy accounting options:
ipv4 address 17.1.0.1 255.255.255.0
ipv4 bgp policy accounting input source-accounting destination-accounting
ipv4 bgp policy accounting output source-accounting destination-accounting
interface TenGigE0/2/0/2.1
ipv4 address 17.1.1.1 255.255.255.0
ipv4 bgp policy accounting input source-accounting destination-accounting
ipv4 bgp policy accounting output source-accounting destination-accounting
ipv4 address 18.1.0.1 255.255.255.0
ipv4 bgp policy accounting input source-accounting destination-accounting
ipv4 bgp policy accounting output source-accounting destination-accounting
interface TenGigE0/2/0/4.1
ipv4 address 18.1.1.1 255.255.255.0
ipv4 bgp policy accounting input source-accounting destination-accounting
ipv4 bgp policy accounting output source-accounting destination-accounting
ipv4 address 4.1.0.1 255.255.0.0
ipv4 bgp policy accounting input source-accounting destination-accounting
ipv4 bgp policy accounting output source-accounting destination-accounting
ipv4 address 8.1.0.1 255.255.0.0
ipv4 bgp policy accounting input source-accounting destination-accounting
ipv4 bgp policy accounting output source-accounting destination-accounting
Configure controller:
Configure AS-path-set and prefix-set:
Configure the route-policy (table-policy) to set up the traffic indexes based on each prefix, AS-path-set, and prefix-set:
if destination in (27.1.1.0/24) then
elseif destination in (27.1.2.0/24) then
elseif destination in (27.1.3.0/24) then
elseif destination in (27.1.4.0/24) then
elseif destination in (27.1.5.0/24) then
if destination in (28.1.1.0/24) then
elseif destination in (28.1.2.0/24) then
elseif destination in (28.1.3.0/24) then
elseif destination in (28.1.4.0/24) then
elseif destination in (28.1.5.0/24) then
elseif as-path in as108 then
if destination in RT-65.0 then
elseif destination in RT-66.0 then
Configure the regular BGP route-policy to pass or drop all the BGP routes:
Configure the BGP router and apply the table-policy to the global ipv4 address family:
address-family ipv4 unicast
Configure the BGP neighbor-group:
neighbor-group ebgp-peer-using-int-addr
address-family ipv4 unicast
neighbor-group ebgp-peer-using-int-addr-121
address-family ipv4 unicast
neighbor-group ebgp-peer-using-int-addr-pass-out
address-family ipv4 unicast
Configure BGP neighbors:
use neighbor-group ebgp-peer-using-int-addr
use neighbor-group ebgp-peer-using-int-addr
use neighbor-group ebgp-peer-using-int-addr-121
use neighbor-group ebgp-peer-using-int-addr-121
use neighbor-group ebgp-peer-using-int-addr
use neighbor-group ebgp-peer-using-int-addr
Verifying BGP Policy Statistics: Example
The following example shows how to verify the traffic index setup for each BGP prefix and BGP Policy Accounting statistics on ingress and egress interfaces. The following traffic stream is configured for this example:
•
Traffic comes in from TenGigE0/2/0/4 and goes out to 5 VLAN subinterfaces under TenGigE0/2/0/2
•
Traffic comes in from POS0/0/08 and goes out to POS0/0/0/4
show cef ipv4 interface POS0/0/0/8 bgp-policy-statistics
Input BGP policy accounting on dst IP address enabled
Input BGP policy accounting on src IP address enabled
Output BGP policy accounting on dst IP address enabled
Output BGP policy accounting on src IP address enabled
show cef ipv4 interface POS0/0/0/4 bgp-policy-statistics
Input BGP policy accounting on dst IP address enabled
Input BGP policy accounting on src IP address enabled
Output BGP policy accounting on dst IP address enabled
Output BGP policy accounting on src IP address enabled
show cef ipv4 interface TenGigE0/2/0/4 bgp-policy-statistics
Input BGP policy accounting on dst IP address enabled
Input BGP policy accounting on src IP address enabled
Output BGP policy accounting on dst IP address enabled
Output BGP policy accounting on src IP address enabled
show cef ipv4 interface TenGigE0/2/0/2.1 bgp-policy-statistics
Input BGP policy accounting on dst IP address enabled
Input BGP policy accounting on src IP address enabled
Output BGP policy accounting on dst IP address enabled
Output BGP policy accounting on src IP address enabled
The following example show how to verify BGP routes and traffic indexes:
B 27.1.1.0/24 [20/0] via 17.1.1.2, 00:07:09
B 27.1.2.0/24 [20/0] via 17.1.1.2, 00:07:09
B 27.1.3.0/24 [20/0] via 17.1.1.2, 00:07:09
B 27.1.4.0/24 [20/0] via 17.1.1.2, 00:07:09
B 27.1.5.0/24 [20/0] via 17.1.1.2, 00:07:09
B 28.1.1.0/24 [20/0] via 18.1.1.2, 00:07:09
B 28.1.2.0/24 [20/0] via 18.1.1.2, 00:07:09
B 28.1.3.0/24 [20/0] via 18.1.1.2, 00:07:09
B 28.1.4.0/24 [20/0] via 18.1.1.2, 00:07:09
B 28.1.5.0/24 [20/0] via 18.1.1.2, 00:07:09
B 65.0.1.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.2.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.3.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.4.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.5.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.6.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.7.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.8.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.9.0/24 [20/0] via 4.1.0.2, 00:07:09
B 65.0.10.0/24 [20/0] via 4.1.0.2, 00:07:09
B 66.0.1.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.2.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.3.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.4.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.5.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.6.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.7.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.8.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.9.0/24 [20/0] via 8.1.0.2, 00:07:09
B 66.0.10.0/24 [20/0] via 8.1.0.2, 00:07:09
B 67.0.1.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.2.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.3.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.4.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.5.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.6.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.7.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.8.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.9.0/24 [20/0] via 4.1.0.2, 00:07:09
B 67.0.10.0/24 [20/0] via 4.1.0.2, 00:07:09
B 68.0.1.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.2.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.3.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.4.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.5.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.6.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.7.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.8.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.9.0/24 [20/0] via 8.1.0.2, 00:07:09
B 68.0.10.0/24 [20/0] via 8.1.0.2, 00:07:09
BGP router identifier 190.1.1.1, local AS number 100
BGP generic scan interval 60 secs
BGP main routing table version 151
BGP scan interval 60 secs
BGP is operating in STANDALONE mode.
Process RecvTblVer bRIB/RIB SendTblVer
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd
4.1.0.2 0 107 54 53 151 0 0 00:25:26 20
8.1.0.2 0 108 54 53 151 0 0 00:25:28 20
17.1.0.2 0 121 53 54 151 0 0 00:25:42 0
17.1.1.2 0 121 53 53 151 0 0 00:25:06 5
17.1.2.2 0 121 52 54 151 0 0 00:25:04 0
17.1.3.2 0 121 52 53 151 0 0 00:25:26 0
17.1.4.2 0 121 53 54 151 0 0 00:25:41 0
17.1.5.2 0 121 53 54 151 0 0 00:25:43 0
17.1.6.2 0 121 51 53 151 0 0 00:24:59 0
17.1.7.2 0 121 51 52 151 0 0 00:24:44 0
17.1.8.2 0 121 51 52 151 0 0 00:24:49 0
18.1.0.2 0 122 52 54 151 0 0 00:25:21 0
18.1.1.2 0 1221 54 54 151 0 0 00:25:43 5
18.1.2.2 0 1222 53 54 151 0 0 00:25:38 0
18.1.3.2 0 1223 52 53 151 0 0 00:25:17 0
18.1.4.2 0 1224 51 52 151 0 0 00:24:57 0
18.1.5.2 0 1225 52 53 151 0 0 00:25:14 0
18.1.6.2 0 1226 52 54 151 0 0 00:25:04 0
18.1.7.2 0 1227 52 54 151 0 0 00:25:13 0
18.1.8.2 0 1228 53 54 151 0 0 00:25:36 0
BGP routing table entry for 27.1.1.0/24
Process bRIB/RIB SendTblVer
Paths: (1 available, best #1)
Not advertised to any peer
17.1.1.2 from 17.1.1.2 (17.1.1.2)
Origin incomplete, localpref 100, valid, external, best
BGP routing table entry for 28.1.1.0/24
Process bRIB/RIB SendTblVer
Paths: (1 available, best #1)
Not advertised to any peer
18.1.1.2 from 18.1.1.2 (18.1.1.2)
Origin incomplete, localpref 100, valid, external, best
BGP routing table entry for 65.0.1.0/24
Process bRIB/RIB SendTblVer
Paths: (1 available, best #1)
Not advertised to any peer
4.1.0.2 from 4.1.0.2 (4.1.0.2)
Origin incomplete, localpref 100, valid, external, best
BGP routing table entry for 66.0.1.0/24
Process bRIB/RIB SendTblVer
Paths: (1 available, best #1)
Not advertised to any peer
8.1.0.2 from 8.1.0.2 (8.1.0.2)
Origin incomplete, localpref 100, valid, external, best
BGP routing table entry for 67.0.1.0/24
Process bRIB/RIB SendTblVer
Paths: (1 available, best #1)
Not advertised to any peer
4.1.0.2 from 4.1.0.2 (4.1.0.2)
Origin incomplete, localpref 100, valid, external, best
BGP routing table entry for 68.0.1.0/24
Process bRIB/RIB SendTblVer
Paths: (1 available, best #1)
Not advertised to any peer
8.1.0.2 from 8.1.0.2 (8.1.0.2)
Origin incomplete, localpref 100, valid, external, best
Routing entry for 27.1.1.0/24
Known via "bgp 100", distance 20, metric 0
Tag 121, type external, Traffic Index 1
Installed Nov 11 21:14:05.462
Routing Descriptor Blocks
Routing entry for 28.1.1.0/24
Known via "bgp 100", distance 20, metric 0
Tag 1221, type external, Traffic Index 6
Installed Nov 11 21:14:05.462
Routing Descriptor Blocks
Routing entry for 65.0.1.0/24
Known via "bgp 100", distance 20, metric 0
Tag 107, type external, Traffic Index 15
Installed Nov 11 21:14:05.462
Routing Descriptor Blocks
Routing entry for 66.0.1.0/24
Known via "bgp 100", distance 20, metric 0
Tag 108, type external, Traffic Index 16
Installed Nov 11 21:14:05.462
Routing Descriptor Blocks
Routing entry for 67.0.1.0/24
Known via "bgp 100", distance 20, metric 0
Tag 107, type external, Traffic Index 7
Installed Nov 11 21:14:05.462
Routing Descriptor Blocks
Routing entry for 68.0.1.0/24
Known via "bgp 100", distance 20, metric 0
Tag 108, type external, Traffic Index 8
Installed Nov 11 21:14:05.462
Routing Descriptor Blocks
27.1.1.0/24, version 263, source-destination sharing
Prefix Len 24, Traffic Index 1, precedence routine (0)
via 17.1.1.2, 0 dependencies, recursive
next hop 17.1.1.2/24, TenGigE0/2/0/2.1 via 17.1.1.0/24
Recursive load sharing using 17.1.1.0/24
28.1.1.0/24, version 218, source-destination sharing
Prefix Len 24, Traffic Index 6, precedence routine (0)
via 18.1.1.2, 0 dependencies, recursive
next hop 18.1.1.2/24, TenGigE0/2/0/4.1 via 18.1.1.0/24
Recursive load sharing using 18.1.1.0/24
65.0.1.0/24, version 253, source-destination sharing
Prefix Len 24, Traffic Index 15, precedence routine (0)
via 4.1.0.2, 0 dependencies, recursive
next hop 4.1.0.2/16, POS0/0/0/4 via 4.1.0.0/16
Recursive load sharing using 4.1.0.0/16
66.0.1.0/24, version 233, source-destination sharing
Prefix Len 24, Traffic Index 16, precedence routine (0)
via 8.1.0.2, 0 dependencies, recursive
next hop 8.1.0.2/16, POS0/0/0/8 via 8.1.0.0/16
Recursive load sharing using 8.1.0.0/16
67.0.1.0/24, version 243, source-destination sharing
Prefix Len 24, Traffic Index 7, precedence routine (0)
via 4.1.0.2, 0 dependencies, recursive
next hop 4.1.0.2/16, POS0/0/0/4 via 4.1.0.0/16
Recursive load sharing using 4.1.0.0/16
68.0.1.0/24, version 223, source-destination sharing
Prefix Len 24, Traffic Index 8, precedence routine (0)
via 8.1.0.2, 0 dependencies, recursive
next hop 8.1.0.2/16, POS0/0/0/8 via 8.1.0.0/16
Recursive load sharing using 8.1.0.0/16
show cef ipv4 27.1.1.1 detail
27.1.1.0/24, version 263, source-destination sharing
Prefix Len 24, Traffic Index 1, precedence routine (0)
via 17.1.1.2, 0 dependencies, recursive
next hop 17.1.1.2/24, TenGigE0/2/0/2.1 via 17.1.1.0/24
Recursive load sharing using 17.1.1.0/24
Load distribution: 0 (refcount 6)
Hash OK Interface Address Packets
1 Y TenGigE0/2/0/2.1 (remote) 0
show cef ipv4 28.1.1.1 detail
28.1.1.0/24, version 218, source-destination sharing
Prefix Len 24, Traffic Index 6, precedence routine (0)
via 18.1.1.2, 0 dependencies, recursive
next hop 18.1.1.2/24, TenGigE0/2/0/4.1 via 18.1.1.0/24
Recursive load sharing using 18.1.1.0/24
Load distribution: 0 (refcount 6)
Hash OK Interface Address Packets
1 Y TenGigE0/2/0/4.1 (remote) 0
show cef ipv4 65.0.1.1 detail
65.0.1.0/24, version 253, source-destination sharing
Prefix Len 24, Traffic Index 15, precedence routine (0)
via 4.1.0.2, 0 dependencies, recursive
next hop 4.1.0.2/16, POS0/0/0/4 via 4.1.0.0/16
Recursive load sharing using 4.1.0.0/16
Load distribution: 0 (refcount 21)
Hash OK Interface Address Packets
1 Y POS0/0/0/4 (remote) 0
show cef ipv4 66.0.1.1 detail
66.0.1.0/24, version 233, source-destination sharing
Prefix Len 24, Traffic Index 16, precedence routine (0)
via 8.1.0.2, 0 dependencies, recursive
next hop 8.1.0.2/16, POS0/0/0/8 via 8.1.0.0/16
Recursive load sharing using 8.1.0.0/16
Load distribution: 0 (refcount 21)
Hash OK Interface Address Packets
1 Y POS0/0/0/8 (remote) 0
show cef ipv4 67.0.1.1 detail
67.0.1.0/24, version 243, source-destination sharing
Prefix Len 24, Traffic Index 7, precedence routine (0)
via 4.1.0.2, 0 dependencies, recursive
next hop 4.1.0.2/16, POS0/0/0/4 via 4.1.0.0/16
Recursive load sharing using 4.1.0.0/16
Load distribution: 0 (refcount 21)
Hash OK Interface Address Packets
1 Y POS0/0/0/4 (remote) 0
show cef ipv4 68.0.1.1 detail
68.0.1.0/24, version 223, source-destination sharing
Prefix Len 24, Traffic Index 8, precedence routine (0)
via 8.1.0.2, 0 dependencies, recursive
next hop 8.1.0.2/16, POS0/0/0/8 via 8.1.0.0/16
Recursive load sharing using 8.1.0.0/16
Load distribution: 0 (refcount 21)
Hash OK Interface Address Packets
1 Y POS0/0/0/8 (remote) 0
Configuring Unicast RPF Checking: Example
The following example shows how to configure unicast RPF checking:
ipv4 verify unicast source reachable-via$
Configuring Modular Services Card to Route Processor Management Ethernet Interfaces Switching: Example
The following example shows how to configure MSC to route processor Management Ethernet interfaces switching:
rp mgmtethernet forwarding
Additional References
The following sections provide references related to implementing CEF on Cisco IOS XR software.
Related Documents
Related Topic
|
Document Title
|
Cisco IOS XR CEF commands: complete command syntax, command modes, command history, defaults, usage guidelines, and examples
|
CEF Commands on Cisco IOS XR Software, Release 3.4.0
|
BGP commands: complete command syntax, command modes, command history, defaults, usage guidelines, and examples
|
BGP Commands on Cisco IOS XR Software, in the Cisco IOS XR Routing Command Reference, Release 3.4.0
|
Standards
Standards
|
Title
|
No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.
|
—
|
MIBs
RFCs
RFCs
|
Title
|
No new or modified RFCs are supported by this feature, and support for existing RFCs has not been modified by this feature.
|
—
|
Technical Assistance
Description
|
Link
|
The Cisco Technical Support website contains thousands of pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.
|
http://www.cisco.com/techsupport
|