Cisco 10000 Series Router Quality of Service Configuration Guide
QoS Policy Propagation Through the Border Gateway Protocol
Downloads: This chapterpdf (PDF - 345.0KB) The complete bookPDF (PDF - 21.32MB) | Feedback

QoS Policy Propagation Through the Border Gateway Protocol

Table Of Contents

QoS Policy Propagation Through the Border Gateway Protocol

QPPB Configuration Example

Related Documentation


QoS Policy Propagation Through the Border Gateway Protocol


QoS Policy Propagation through Border Gateway Protocol (QPPB) allows you to classify packets by IP precedence based on BGP community lists, BGP autonomous system paths, and access control lists (ACLs). After a packet has been classified, you can use other QoS features such as policing and weighted random early detection (WRED) to specify and enforce policies to fit your business model.

This appendix provides an example of how to:

1. Create route maps to match BGP community lists, access control lists, and BGP AS paths

2. Apply IP precedence to routes learned from neighbors

QPPB Configuration Example

In this example, the Cisco 10000 series router learns routes from autonomous system (AS) 10 and AS 60. QoS policy is applied to all packets that match the defined route maps. Any packets from the Cisco 10000 series router to AS 10 or AS 60 are sent to the appropriate QoS policy (Figure B-1).

Figure B-1 Cisco 10000 Series Router Routes and QoS Policy Application

Cisco 10000 Series Router Configuration

Router(config)# router bgp 30
Router(config)# table-map precedence-map
Router(config-router)# neighbor 20.20.20.1 remote-as 10
Router(config-router)# neighbor 20.20.20.1 send-community
Router(config-router)# neigh 20.20.20.1 route-map precedence-map out
!
Router(config)# ip bgp-community new-format
 
   

Match community 1, set the IP precedence to priority, and set the QoS group to 1.

Router(config)# route-map precedence-map permit 10
Router(config-route-ma)# match community 1
Router(config-route-ma)# set ip precedence priority
Router(config-route-ma)# set ip qos-group 1
 
   

Match community 2 and set the IP precedence to immediate.

Router(config)# route-map precedence-map permit 20
Router(config-route-ma)# match community 2
Router(config-route-ma)# set ip precedence immediate
 
   

Match community 3 and set the IP precedence to Flash.

Router(config)# route-map precedence-map permit 30
Router(config-route-ma)# match community 3
Router(config-route-ma)# set ip precedence flash
 
   

Match community 4 and set the IP precedence to Flash-override.

Router(config)# route-map precedence-map permit 40
Router(config-route-ma)# match community 4
Router(config-route-ma)# set ip precedence flash-override
 
   

Match community 5 and set the IP precedence to critical.

Router(config)# route-map precedence-map permit 50
Router(config-route-ma)# match community 5
Router(config-route-ma)# set ip precedence critical
 
   

Match community 6 and set the IP precedence to internet.

Router(config)# route-map precedence-map permit 60
Router(config-route-ma)# match community 6
Router(config-route-ma)# set ip precedence internet
 
   

Match community 7 and set the IP precedence to network.

Router(config)# route-map precedence-map permit 70
Router(config-route-ma)# match community 7
Router(config-route-ma)# set ip precedence network
 
   

Match IP address access list 69 or match AS path 1, set the IP precedence to critical, and set the QoS group to 9.

Router(config)# route-map precedence-map permit 75
Router(config-route-ma)# match ip address 69
Router(config-route-ma)# match as-path 1
Router(config-route-ma)# set ip precedence critical
Router(config-route-ma)# set ip qos-group 9
 
   

For everything else, set the IP precedence to routine.

Router(config)# route-map precedence-map permit 80
Router(config-route-ma)# set ip precedence routine
 
   

Define the community lists.

Router(config)# ip community-list 1 permit 60:1
Router(config)# ip community-list 2 permit 60:2
Router(config)# ip community-list 3 permit 60:3
Router(config)# ip community-list 4 permit 60:4
Router(config)# ip community-list 5 permit 60:5
Router(config)# ip community-list 6 permit 60:6
Router(config)# ip community-list 7 permit 60:7

Define the AS path.

Router(config)# ip as-path access-list 1 permit ^10_60
 
   

Define the access control list.

Router(config)# access-list 69 permit 69.0.0.0

Router B Running Configuration

RouterB(config)# router bgp 10
RouterB(config-router)# neighbor 30.30.30.1 remote-as 30
RouterB(config-router)# neighbor 30.30.30.1 send-community
RouterB(config-router)# neigh 30.30.30.1 route-map send_community out
!
RouterB(config)# ip bgp-community new-format
 
   

Match prefix 10 and set community to 60:1.

RouterB(config)# route-map send_community permit 10
RouterB(config-route-ma)# match ip address 10
RouterB(config-route-ma)# set community 60:1
 
   

Match prefix 20 and set community to 60:2.

RouterB(config)# route-map send_community permit 20
RouterB(config-route-ma)# match ip address 20
RouterB(config-route-ma)# set community 60:2
 
   

Match prefix 30 and set community to 60:3.

RouterB(config)# route-map send_community permit 30
RouterB(config-route-ma)# match ip address 30
RouterB(config-route-ma)# set community 60:3
 
   

Match prefix 40 and set community to 60:4.

RouterB(config)# route-map send_community permit 40
RouterB(config-route-ma)# match ip address 40
RouterB(config-route-ma)# set community 60:4
 
   

Match prefix 50 and set community to 60:5.

RouterB(config)# route-map send_community permit 50
RouterB(config-route-ma)# match ip address 50
RouterB(config-route-ma)# set community 60:5
 
   

Match prefix 60 and set community to 60:6.

RouterB(config)# route-map send_community permit 60
RouterB(config-route-ma)# match ip address 60
RouterB(config-route-ma)# set community 60:6
 
   

Match prefix 70 and set community to 60:7.

RouterB(config)# route-map send_community permit 70
RouterB(config-route-ma)# match ip address 70
RouterB(config-route-ma)# set community 60:7
 
   

For all others, set community to 60:8.

RouterB(config)# route-map send_community permit 80
RouterB(config-route-ma)# set community 60:8
 
   

Define the access control lists.

RouterB(config)# access-list 10 permit 61.0.0.0
RouterB(config)# access-list 20 permit 62.0.0.0
RouterB(config)# access-list 30 permit 63.0.0.0
RouterB(config)# access-list 40 permit 64.0.0.0
RouterB(config)# access-list 50 permit 65.0.0.0
RouterB(config)# access-list 60 permit 66.0.0.0
RouterB(config)# access-list 70 permit 67.0.0.0
 
   

The following example shows how to configure several interfaces to classify packets based on the IP precedence and QoS group ID:

interface serial 5/0/0/1:0
ip address 200.28.38.2 255.255.255.0
bgp-policy source ip-prec-map
no ip mroute-cache
no cdp enable
frame-relay interface-dlci 20 IETF
 
   
interface serial 6/0/0/1:0
ip address 200.28.28.2 255.255.255.0
bgp-policy source ip-qos-group
no ip mroute-cache
no cdp enable

frame-relay interface-dlci 20 IETF

Related Documentation

This section provides hyperlinks to additional Cisco documentation for the features discussed in this chapter. To display the documentation, click the document title or a section of the document highlighted in blue. When appropriate, paths to applicable sections are listed below the documentation title.

Feature
Related Documentation

QoS Policy Propagation through Border Gateway Protocol (QPPB)

Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2

Part 1: Classification > Classification Overview > QoS Policy Propagation via Border Gateway Protocol

Part 1: Classification > Configuring QoS Policy Propagation via Border Gateway Protocol