Upload
maxymony
View
60
Download
4
Embed Size (px)
Citation preview
11/1/11 How to Set DiffServ over MPLS Test-Bed on Linux Routers? | MPLS Tutorial
1/3mplstutorial.com/how-set-diffserv-over-mpls-test-bed-linux-routers
mpls tutorialHome Programming Tutorials Ebizon Ebizon Blogs Objective C Tutorial for Beginners
make a donationto support thesite
user login
Username: *
Password: *
Log in
Create newaccount
Request newpassword
navigation
Home
India Hotel Site
Technology Blogs
Programming Q/A, Tutorials
recent blog posts
Jquery HTML()
Learning PHPLanguage
Hashes in Ruby,Perl and Java
more
Home » MPLS Tutorial
how to set diffserv over mpls test-bed on linuxrouters?
8.1 network topologyThe topology of the test-network is as follows:
Fig. 8.1 Network Topology
This topology is primarily chosen since it is the simplest topology possible with which MPLS local path protection
mechanism can be demonstrated and its efficiency compared. All the machines used are Intel machines with
RedHat-9 as the Operating System. All the links are 100Mbps links, but the bandwidth has been throttled to
60Mbps between B-C and E-F, 20Mbps between C-D and 40Mbps between C-E and E-D. The throttling of
bandwidth is used to give the network a more realistic look, and hence make the DiffServ provisioning more
realistic.
8.2 configuring the networkAll the five machines within the DiffServ over MPLS domain were configured as follows:
1)�IPtables utility was installed.
2)�Linux kernel-2.4.18 was patched with MPLS and DiffServ patch and compiled from scratch. Also, the kernel
was patched with Hierarchical Token Bucket (HTB) queuing discipline (Qdisc) since it is only supported on
kernel versions greater than equal to 2.4.20.
3)�Then the IProute2 package was installed.
4)�Following this, RSVP-TE daemon [19] was compiled and configured on all the machines.
(Note: Although the compilation and configuration procedure has been specified at
http://dsmpls.atlantis.ugent.be/files/installation_rsvpd-0.70-rc2.txt, it is recommended that the procedure
specified in Appendix A be followed, since quite a few changes had to be made to make the things work,
especially if HTB support is to be compiled in.)
5)�The SNMP software [20] was installed on each machine. The configuration file snmpd.conf was edited in each
case and proper IP addresses with community names were added.
(NOTE: It is important to include perl module support while configuring the net-SNMP software. These perl
modules are essential for the mib2c tool which is of significant importance while trying to extend the net-SNMP
agents support for MIBs (which can either be standard MIBs, not supported by the software or non-standard
MIBs which have been written for experimental purpose.)
In addition to all this, GateDs OSPF [21,22] routing daemon was installed on all 7 machines. The configuration
files for the OSPF can be found in Appendix B. For the sake of simplicity, all the machines have been configured
to be on the backbone area.
For the purpose of synchronizing the clocks of the sender and the receiver for enabling accurate delay and
jitter measurements, Network Time Protocol (NTP) has been used. The configuration files for NTP [23] can be
11/1/11 How to Set DiffServ over MPLS Test-Bed on Linux Routers? | MPLS Tutorial
2/3mplstutorial.com/how-set-diffserv-over-mpls-test-bed-linux-routers
‹ How to implement filter on Linux machine
using TC scripts for MPLS?
up Results in Lab with DiffServ over MPLS ›
found in Appendix C.
For the purpose of network management, ingress B is also configured as the network operation centre using a
small C program. It is to be noted that the scope of the custom MPLS-MIB is very limited in nature since it has
only been written for the retrieval of the following scalar objects: mplsInBytes, mplsOutBytes, mplsInPackets,
mplsOutPackets. The details of the MIB will be discussed in the next few sections.
8.3 diffserv over mpls: the internals
The following implementation specific information has either been directly gleaned from the source code or
taken from the DS-MPLS mailing archives [19].
1)�For E-LSp operation, static EXP-to-PHB(DSCP) mapping is used and is as follows:
Table 81 EXP-to-PHB Map
EXP PHB/DSCP
0 BE/0
1 EF/0x2E
2 AF11/0xA
3 AF12/0xC
4 AF21/0x12
5 AF22/0x14
6 AF31/0x1A
7 AF32/0x1C
2)�EXP-to-TC map is used for providing the PHB within the network core nodes where only EXP bits will be read.
The importance of this mapping will be clear when the linux filters and Qdiscs are discussed. In short, in the
ingress the DSCP is mapped to the EXP and the EXP is mapped to the DSCP at the egress, while at every
intermediate node the EXP is used to determine the TC index which determines the scheduling discipline to
be applied to the packet (this will again be discussed in the section on Linux filters and Qdiscs).
Table 82 EXP-to-tc_index Map
EXP TC Index
0 0
1 0xB8
2 0x28
3 0x30
4 0x48
5 0x50
6 0x68
7 0x70
It can be observed that the TC index has been set equal to the ToS value for the respective BAs.
3)�For L-LSP operation, the following PHB-IDs [RFC3140] for PSCs has been defined:
Table 8;3 PSC-to-PHBID Map
PSC PHB-ID
BE 0
AF1x 0x2802
AF2x 0x4802
AF3x 0x6802
EF 0xB800
The RSVP-TE DiffServ object for L-LSP carries PSC field which carries the PHB-ID, which is a 16 bit number. For
standard PHBs, the first six bits is filled in by DSCP and the rest is filled in by zeros.
Results in Lab with DiffServ over MPLS