Guest

Hierarchical Navigation

Cisco IOS and NX-OS Software

Per Tunnel QoS

Downloads

Table Of Contents

Per Tunnel QoS

Finding Feature Information

Contents

Prerequisites for Per Tunnel QoS

Information About Per Tunnel QoS

Benefits of Per Tunnel QoS

How to Configure Per Tunnel QoS

Configuring an NHRP Group on a Spoke

Mapping an NHRP Group to a QoS Policy on a Hub

Verifying Per Tunnel QoS

Configuration Examples for Per Tunnel QoS

Configuring an NHRP Group on a Spoke: Example

Mapping an NHRP Group to a QoS Policy on a Hub: Example

Verifying Per Tunnel QoS: Examples

Additional References

Related Documents

Standards

MIBs

RFCs

Technical Assistance

Feature Information for Per Tunnel QoS


Per Tunnel QoS


First Published: October 10, 2008
Last Updated: October 10, 2008

The Per Tunnel QoS feature provides per-tunnel quality of service (QoS) support for Dynamic Multipoint VPNs (DMVPNs) and IP Security (IPSec) Virtual Tunnel Interfaces (VTIs). This feature is independent of IPSec (meaning that you can use it with DMVPNs with or without IPSec).

For DMVPNs, this feature lets you dynamically apply a unique QoS policy on the hub for each spoke. The QoS policy for each spoke is applied to hub-to-spoke tunnels in the egress direction.

For IPSec VTIs, this release improves performance of the existing per-tunnel QoS feature by changing , the type of queuing to HQF (where queuing happens at the egress physical interface instead of in the switching path).

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 for Per Tunnel QoS" section.

Use Cisco Feature Navigator to find information about platform support and Cisco IOS, Catalyst OS, and Cisco IOS XE software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.

Contents

"Prerequisites for Per Tunnel QoS" section

"Information About Per Tunnel QoS" section

"How to Configure Per Tunnel QoS" section

"Configuration Examples for Per Tunnel QoS" section

"Additional References" section

"Feature Information for Per Tunnel QoS" section

Prerequisites for Per Tunnel QoS

Before you can configure per tunnel QoS, you must configure Cisco Express Forwarding (CEF) switching.

Information About Per Tunnel QoS

In a Cisco DMVPN network, a hub is typically a high-end router, while spokes can be low-end to high-end routers (which vary greatly in link speed and data processing capability). Without the Per Tunnel QoS feature, you cannot regulate traffic from the hub to spokes on a per-spoke basis (meaning that you cannot apply a unique QoS policy on the hub on a per-spoke basis). This means that a small spoke can be overrun by the hub, and a "greedy" spoke can place great demands on the hub's resources and "starve" other spokes. The Per-tunnel-QoS feature solves this problem.

Without the Per Tunnel QoS feature, the Cisco IOS pre-encryption QoS implementation (called LLQ before encryption) increases jitter when packets are queued before encryption. The implementation also reorders packets in the QoS queues after the IPSec sequence numbers are issued (which increases the effect of anti-replay packet drops). Per Tunnel QoS improves the interworking of QoS and IPSec by applying QoS (including complete QoS classification and traffic shaping) per security association (SA) before encryption.

To configure the Per Tunnel QoS feature, you should understand the following concept:

Benefits of Per Tunnel QoS

Benefits of Per Tunnel QoS

Per Tunnel QoS provides the following benefits:

Increases DMVPN cloud sizes beyond 300 spokes per multipoint GRE (MGRE) interface (which lowers the number of hubs needed to deploy a DMVPN network)

Improves QoS policies at a hub to shape hub traffic destined to spokes (which decreases the likelihood of overwhelming smaller spokes that have slower CPUs)

Improves anti-replay checks to inhibit anti-replay windowing attacks

Prioritizes multicast over nonmulticast traffic on a per hub-spoke or spoke-to-spoke tunnel basis

How to Configure Per Tunnel QoS

To configure the Per Tunnel QoS feature, you define a Next Hop Resolution Protocol (NHRP) group on a spoke and then map the NHRP group to a QoS policy on a hub.

This section contains the following procedures:

Configuring an NHRP Group on a Spoke (required)

Mapping an NHRP Group to a QoS Policy on a Hub (required)

Verifying Per Tunnel QoS (optional)

Configuring an NHRP Group on a Spoke

To configure an NHRP group on a spoke, perform the steps in this section.

SUMMARY STEPS

1. enable

2. configure terminal

3. hostname name

4. interface type number

5. ip address address mask

6. ip nhrp authentication string-name

7. ip nhrp group group-name

8. ip nhrp map multicast address

9. ip nhrp map ip-address ip-address

10. ip nhrp network-id number

11. ip nhrp nhs address

12. tunnel source interface-type interface-number

13. tunnel mode gre multipoint

14. tunnel key key-number

15. interface type number

16. ip address address mask

17. router eigrp block-name

18. network ip-address wildcard-mask

19. no auto-summary

20. router ospf process-id

21. router-id ip-address

22. log-adjacency-changes

23. network ip-address wildcard-mask area area-id

24. end

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

hostname name

Example:

Router(config)# hostname 504Spoke

Specifies the hostname.

Step 4 

interface type number

Example:

Router(config)# interface Tunnel 0

Specifies the interface type and number and enters interface configuration mode.

Step 5 

ip address address mask
Example:
Router(config)# ip address 172.16.200.4 255.255.255.0

Sets the IP address and mask for the associated IP subnet.

Step 6 

ip nhrp authentication string-name

Example:
Router(config)# ip nhrp authentication cisco

Sets the authentication string.

Step 7 

ip nhrp group group-name

Example:
Router(config)# ip nhrp group golm

Configures an NHRP group on the spoke.

Step 8 

ip nhrp map multicast address

Example:
Router(config)# ip nhrp map multicast 206.1.0.2

Associates an NHRP group to a QoS policy map.

Step 9 

ip nhrp map ip-address ip-address

Example:
Router(config)# ip nhrp map 172.16.200.2 206.1.0.2

Associates an NHRP group to a QoS policy map.

Step 10 

ip nhrp network-id number

Example:
Router(config)# ip nhrp network-id 99

Sets the identifier for a Non-Broadcast Multiple Access (NMBA) network.

Step 11 

ip nhrp nhs address

Example:
Router(config)# ip nhrp nhs 172.16.200.2

Specifies the Next Hop Server (NHS).

Step 12 

tunnel source interface-type interface-number

Example:
Router(config)# tunnel source Ethernet 0/0

Sets the source address for the tunnel interface.

Step 13 

tunnel mode gre multipoint

Example:
Router(config)# tunnel mode gre multipoint

Sets the encapsulation mode for the tunnel interface to Multipoint GRE (mGRE).

Step 14 

tunnel key key-number

Example:
Router(config)# tunnel key 1000

Enables the ID key for the tunnel interface.

Step 15 

interface type number

Example:
Router(config)# interface Ethernet 0/0

Specifies the interface type and number and enters interface configuration mode.

Step 16 

ip address address mask

Example:
Router(config)# ip address 206.2.0.4 255.255.255.0

Sets the IP address and mask for the associated IP subnet.

Step 17 

router eigrp block-name

Example:
Router(config)# router eigrp 1

Configures the Enhanced Interior Gateway Routing Protocol (EIGRP) process.

Step 18 

network ip-address wildcard-mask

Example:
Router(config)# network 172.16.200.0 0.0.0.255

Specifies the network for an EIGRP routing process.

Step 19 

no auto-summary

Example:
Router(config)# no auto-summary

Disables automatic summarization of subnet routes into network-level routes and sends subprefix routing information across classful network boundaries.

Step 20 

router ospf process-id

Example:
Router(config)# router ospf 1

Configures an Open Shortest Path First (OSPF) routing process.

Step 21 

router-id ip-address

Example:
Router(config)# router-id 4.4.4.4

Specifies a fixed router ID.

Step 22 

log-adjacency-changes

Example:
Router(config)# log-adjacency-changes

Configures the router to send a syslog message when an OSPF neighbor goes up or down.

Step 23 

network ip-address wildcard-mask area area-id

Example:
Router(config)# network 206.2.0.0 0.0.0.255 area 0

To specify the network for an OSPF routing process.

Step 24 

end

Example:

Router(config-if)# end

Returns to privileged EXEC mode.

Mapping an NHRP Group to a QoS Policy on a Hub

To map an NHRP group to a QoS policy on a hub, perform the steps in this section.

SUMMARY STEPS

1. enable

2. configure terminal

3. interface type number

4. ip nhrp map group group-name service-policy output qos-policy-map-name

5. end

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

interface type number

Example:

Router(config)# interface tunnel 0

Specifies the interface type and number and enters interface configuration mode.

Step 4 

ip nhrp map group group-name service-policy output qos-policy-map-name

Example:

Router(config-if)# ip nhrp map group small service-policy output qos-small

Adds the NHRP group to the QoS policy mapping on the hub.

Step 5 

end

Example:

Router(config-if)# end

Returns to privileged EXEC mode.

Verifying Per Tunnel QoS

To verify Per Tunnel QoS, perform the steps in this section.

SUMMARY STEPS

1. enable

2. show dmvpn

3. show ip nhrp

4. show ip nhrp group-map

5. show policy-map multipoint tunnel tunnel-interface-number

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

show dmvpn

Example:

Router# show dmvpn

Displays DMVPN-specific session information.

Step 3 

show ip nhrp

Example:

Router# show ip nhrp

Displays NHRP mapping information.

Step 4 

show ip nhrp group-map

Example:

Router# show ip nhrp group-map

Displays the details of NHRP group mappings on a hub and the list of tunnels using each of the NHRP groups defined in the mappings.

Step 5 

show policy-map multipoint tunnel tunnel-interface-number

Example:

Router# show policy-map multipoint tunnel 0

Displays statistics about a specific QoS policy as it is applied to a tunnel endpoint.

Configuration Examples for Per Tunnel QoS

This section provides the following configuration examples:

Configuring an NHRP Group on a Spoke: Example

Mapping an NHRP Group to a QoS Policy on a Hub: Example

Verifying Per Tunnel QoS: Examples

Configuring an NHRP Group on a Spoke: Example

The following example shows how to configure an NHRP group on a spoke:

hostname 504Spoke

interface Tunnel0
 ip address 172.16.200.4 255.255.255.0
 ip mtu 1400
 ip nhrp authentication cisco
 ip nhrp group golm
 ip nhrp map multicast 206.1.0.2
 ip nhrp map 172.16.200.2 206.1.0.2
 ip nhrp network-id 99
 ip nhrp holdtime 300
 ip nhrp nhs 172.16.200.2
 ip tcp adjust-mss 1360
 delay 1000
 tunnel source Ethernet0/0
 tunnel mode gre multipoint
 tunnel key 1000

interface Ethernet0/0
 ip address 206.2.0.4 255.255.255.0

router eigrp 1
 network 172.16.200.0 0.0.0.255
 no auto-summary

router ospf 1
 router-id 4.4.4.4
 log-adjacency-changes
 network 206.2.0.0 0.0.0.255 area 0

end

Mapping an NHRP Group to a QoS Policy on a Hub: Example

The following example shows how to map an NHRP group to a QoS policy on a hub:

hostname hub

class-map match-all child
 match ip dscp ef 

policy-map child
 class child
    priority percent 10
policy-map parent
 class class-default
    shape average 10000000
  service-policy child

interface Tunnel0
 ip address 172.16.200.2 255.255.255.0
 ip mtu 1400
 no ip next-hop-self eigrp 1
 ip nhrp authentication cisco
 ip nhrp map multicast dynamic
 ip nhrp map group golm service-policy output parent
 ip nhrp network-id 99
 ip nhrp holdtime 300
 no ip split-horizon eigrp 1
 delay 1000
 tunnel source Ethernet0/1
 tunnel mode gre multipoint
 tunnel key 1000

interface Ethernet0/1
 ip address 206.1.0.2 255.255.255.0

router eigrp 1
 network 172.16.200.0 0.0.0.255
 no auto-summary

router ospf 1
 router-id 2.2.2.2
 log-adjacency-changes
 network 206.1.0.0 0.0.0.255 area 0

end

Verifying Per Tunnel QoS: Examples

The following example shows how to display the information about NHRP group received from the spoke and the QoS policy applied to the spoke tunnel:

Router# show dmvpn detail
Legend: Attrb --> S - Static, D - Dynamic, I - Incompletea
        N - NATed, L - Local, X - No Socket
        # Ent --> Number of NHRP entries with same NBMA peer

 -------------- Interface Tunnel0 info: -------------- 
Intf. is up, Line Protocol is up, Addr. is 10.0.0.1
   Source addr: 172.17.0.1, Dest addr: MGRE
  Protocol/Transport: "multi-GRE/IP", Protect "dmvpn-profile",
Tunnel VRF "", ip vrf forwarding ""

NHRP Details: 
Type:Hub, NBMA Peers:2
# Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb    Target Network
----- --------------- --------------- ----- -------- ----- -----------------
    1      172.17.0.2        10.0.0.2    UP 00:19:57 D           10.0.0.2/32
NHRP group: test-group-0
 Output QoS service-policy applied: queueing

  IKE SA: local 172.17.0.1/500 remote 172.17.0.2/500 Active 
  Crypto Session Status: UP-ACTIVE     
  fvrf: (none), Phase1_id: 172.17.0.2
  IPSEC FLOW: permit 47 host 172.17.0.1 host 172.17.0.2 
        Active SAs: 2, origin: crypto map
   Outbound SPI : 0x44E4E634, transform : esp-des esp-sha-hmac 
    Socket State: Open
  IKE SA: local 172.17.0.1/500 remote 172.17.0.2/500 Active 
  IPSEC FLOW: permit 47 host 172.17.0.1 host 172.17.0.2 
        Active SAs: 2, origin: crypto map
   Outbound SPI : 0x44E4E634, transform : esp-des esp-sha-hmac 
    Socket State: Open
# Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb    Target Network
----- --------------- --------------- ----- -------- ----- -----------------
    1      172.17.0.3        10.0.0.3    UP 00:02:21 D           10.0.0.3/32
NHRP group: test-group-0
 Output QoS service-policy applied: queueing

  IKE SA: local 172.17.0.1/500 remote 172.17.0.3/500 Active 
  Crypto Session Status: UP-ACTIVE     
  fvrf: (none), Phase1_id: 172.17.0.3
  IPSEC FLOW: permit 47 host 172.17.0.1 host 172.17.0.3 
        Active SAs: 2, origin: crypto map
   Outbound SPI : 0xBF13C9CC, transform : esp-des esp-sha-hmac 
    Socket State: Open
  IKE SA: local 172.17.0.1/500 remote 172.17.0.3/500 Active 
  IPSEC FLOW: permit 47 host 172.17.0.1 host 172.17.0.3 
        Active SAs: 2, origin: crypto map
   Outbound SPI : 0xBF13C9CC, transform : esp-des esp-sha-hmac 
    Socket State: Open

 -------------- Interface Tunnel1 info: -------------- 
Intf. is up, Line Protocol is up, Addr. is 11.0.0.1
   Source addr: 172.17.0.1, Dest addr: MGRE
  Protocol/Transport: "multi-GRE/IP", Protect "dmvpn-profile",
Tunnel VRF "", ip vrf forwarding ""

NHRP Details: 
Type:Hub, NBMA Peers:1
# Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb    Target Network
----- --------------- --------------- ----- -------- ----- -----------------
    1      172.17.0.2        11.0.0.2    UP 00:20:01 D           11.0.0.2/32
NHRP group: test-group-1
 Output QoS service-policy applied: queueing


Pending DMVPN Sessions:

The following example shows how to display information about the NHRP group that is being received from the spoke. You enter this command on the hub:

Router# show ip nhrp
10.0.0.11/32 via 10.0.0.11
	Tunnel0 created 21:24:03, expire 00:04:01
	Type: dynamic, Flags: unique registered
	NBMA address: 172.16.1.1
	Group: typeA 
10.0.0.12/32 via 10.0.0.12
	Tunnel0 created 21:22:33, expire 00:05:30
	Type: dynamic, Flags: unique registered
	NBMA address: 172.16.2.1
	Group: typeB
10.0.0.13/32 via 10.0.0.13
	Tunnel0 created 00:09:04, expire 00:04:05
	Type: dynamic, Flags: unique registered
	NBMA address: 172.16.3.1
	Group: typeA

The following example shows how to display the details of NHRP group mappings on a hub and the list of tunnels using each of the NHRP groups defined in the mappings. You enter this command on the hub:

Router# show ip nhrp group-map
Interface: Tunnel0
	NHRP group: typeA
		QoS policy: typeA_parent
		Tunnels using the QoS policy:
		Tunnel destination overlay/transport address
		10.0.0.11/172.16.1.1
		10.0.0.13/172.16.3.1
	NHRP group: typeB
		QoS policy: typeB_parent
		Tunnels using the QoS policy:
		Tunnel destination overlay/transport address
		10.0.0.12/172.16.2.1

The following example shows how to display the details of the mapping for a group named test-group-0 on a hub and the list of tunnels using the NHRP group defined in the mapping. You enter this command on the hub:

Router# show ip nhrp group-map test-group-0
Interface: Tunnel0
 NHRP group: test-group-0
  QoS policy: queueing
  Tunnels using the QoS policy:
  Tunnel destination overlay/transport address
  10.0.0.2/172.17.0.2
  10.0.0.3/172.17.0.3

The following example shows how to display statistics about a specific QoS policy as it is applied to a tunnel endpoint. You enter this command on the hub:

Router# show policy-map multipoint tunnel 0
Interface Tunnel0 <--> 206.2.0.4
  Service-policy output: parent
    Class-map: class-default (match-any)
      235535 packets, 21541047 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any 
      Queueing
      queue limit 2500 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 0/0
      shape (average) cir 10000000, bc 40000, be 40000
      target shape rate 10000000
      Service-policy : child
        queue stats for all priority classes:
          queue limit 250 packets
          (queue depth/total drops/no-buffer drops) 0/0/0
          (pkts output/bytes output) 0/0
        Class-map: child (match-all)
          0 packets, 0 bytes
          5 minute offered rate 0 bps, drop rate 0 bps
          Match: ip dscp ef (46)
          Priority: 10% (1000 kbps), burst bytes 25000, b/w exceed drops: 0
        Class-map: class-default (match-any)
          235535 packets, 21541047 bytes
          5 minute offered rate 0 bps, drop rate 0 bps
          Match: any 
          queue limit 2250 packets
          (queue depth/total drops/no-buffer drops) 0/0/0
          (pkts output/bytes output) 0/0

Additional References

The following sections provide references related to the Per Tunnel QoS feature.

Related Documents

Related Topic
Document Title

General information about QoS

"IP Access List Overview" module in the Cisco IOS Security Configuration Guide, Release 12.4T

Configuring hierarchical queuing

"QoS—Hierarchical Queueing Framework (HQF)" module in the Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.4T

Security commands

Cisco IOS Security Command Reference


Standards

Standard
Title

None


MIBs

MIB
MIBs Link

None

To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs


RFCs

RFC
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 Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

http://www.cisco.com/techsupport


Feature Information for Per Tunnel QoS

Table 1 lists the features in this module and provides links to specific configuration information. Only features that were introduced or modified in Cisco IOS Releases 12.2(1), 12.0(3)S, 12.2(33)SRA, 12.2(33)SXH, or later releases appear in the table.

Not all commands may be available in your Cisco IOS software release. For release information about a specific command, see the command reference documentation.

Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS, Catalyst OS, and Cisco IOS XE software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.


Note Table 1 lists only the Cisco IOS software release that introduced support for a given feature in a given Cisco IOS software release train. Unless noted otherwise, subsequent releases of that Cisco IOS software release train also support that feature.


Table 1 Feature Information for Per Tunnel QoS 

Feature Name
Releases
Feature Information

Per Tunnel QoS

12.4(22)T

The Per Tunnel QoS feature provides per-tunnel quality of service (QoS) support for Dynamic Multipoint VPNs (DMVPNs) and IP Security (IPSec) Virtual Tunnel Interfaces (VTIs). This feature is independent of IPSec (meaning that you can use it with DMVPNs with or without IPSec).

For DMVPNs, this feature lets you dynamically apply a unique QoS policy on the hub for each spoke. The QoS policy for each spoke is applied to hub-to-spoke tunnels in the egress direction.

For IPSec VTIs, per-tunnel QoS support existed prior to 12.4(22)T, but with this release, the type of queuing is now HQF (where queuing happens at the egress physical interface instead of in the switching path). This modification improves performance.

The following sections provide information about this feature:

Benefits of Per Tunnel QoS

Configuring an NHRP Group on a Spoke

Mapping an NHRP Group to a QoS Policy on a Hub

Verifying Per Tunnel QoS

The following commands were introduced or modified: ip nhrp group, ip nhrp map, ip nhrp map group, show dmvpn, show ip nhrp, show ip nhrp group-map, show policy-map multipoint tunnel.