Linux Route-based QoS mini HOWTO

2004-03-31

Revision History
Revision 1.02004-03-31jrr
first official release

Abstract

This document describes how to combine Zebra (now Quagga) with iproute2 to achieve route-based QoS. It's somewhat of a hack, but it works well for providing different levels of service for a limited number of route classes. The goal for the given examples was to allow higher traffic levels for Internet2 destinations than for commodity Internet destinations.


Table of Contents

1. Introduction
1.1. Copyright and License
1.2. Disclaimer
1.3. Credits / Contributors
1.4. Feedback
2. What is route-based QoS?
3. Route Configuration
3.1. Getting the routes
3.2. Sample Quagga/Zebra configuration
3.3. Check the routing table
4. Transferring dynamic routes into a static routing table
4.1. Copying routes into a static table
4.2. Example route refresh script
4.3. Route realm value
5. Configuring the traffic filters and queues
5.1. HTB and SFQ packet queues
5.2. Sample traffic shaping script
5.3. Sample traffic shaping script explained
6. Graphing the flows
6.1. Sample data gathering script
6.2. snmpd configuration
6.3. Sample traffic flow graph
7. Performance

1. Introduction

This document describes how to combine Zebra (now Quagga) with iproute2 to achieve route-based QoS. It's somewhat of a hack, but it works well for providing different levels of service for a limited number of route classes. The goal for the given examples was to allow higher traffic levels for Internet2 destinations than for commodity Internet destinations. Much of the information contained in this document can be found in the Linux Advanced Routing & Traffic Contro HOWTO

1.1. Copyright and License

This document, Linux Route-based QoS HOWTO, is copyrighted (c) 2004 by John Reuning. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html.

Linux is a registered trademark of Linus Torvalds.

1.2. Disclaimer

No liability for the contents of this document can be accepted. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your system. Proceed with caution, and although this is highly unlikely, the author(s) do not take any responsibility.

All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands should not be seen as endorsements.

1.3. Credits / Contributors

This document was converted to DocBook format with the help of the Linux Documentation Project's Sample HOWTO template and the LDP Author Guide.

1.4. Feedback

Feedback is most certainly welcome for this document. Send your additions, comments and criticisms to the following email address : .