3 quagga-mpls.diff is a quagga<->ldp-portable porting layer.
7 Quagga is a set of open source routing daemons which implement the
8 common routing protocols (RIP, OSPF, BGP). Each protocol runs as a seperate
9 dameon, and they are all syncronized via a managment daemon (zebra). If you
10 have never used quagga, go to http://quagga.net/ download the source for
11 0.96.4, compile it and learn how to setup up a small OSPF network using
12 quagga. Once you have that running then you are ready try and use this patch.
14 What does this patch include?
15 -----------------------------
16 It includes a 'router-id' implementation so that each protocol chooses the same
17 address as it's router-id. (very important for implementing more
18 advanced MPLS services)
20 In includes a 'sum-of-checksums' implementation for OSPF so you can easily
21 verify that all of your OSPF speakers in an area have the same version of the
22 database (their sum-of-checksums will match).
24 It handles MPLS labels as part of the quagga nexthop and correct
25 handling of MPLS labels as part of a recursive nexthop.
27 It implements a CLI for creating static LSPs (in the zebra daemon).
29 It implements a porting layer for the ldp-portable library so that LDP
30 interact seemlessly with the rest of the quagga routing software (in the ldpd
33 How do I use this patch?
34 -----------------------
35 Apply quagga-mpls.diff to the quagga source distribution. (0.96.4)
36 Go into the quagga/ldpd directory and modify 'create-links' to point to
37 your ldp-portable source distribution. Then execute 'create-links' .
38 Go back to the top of the quagga source tree and configure and compile
39 quagga according to it's directions. If you are not running on a mpls-linux
40 enabled kernel, modify quagga/zebra/Makefile.am and change mpls-linux.o to
41 mpls_null.o. If you have issues compiling and you are running a
42 mpls-linux-1.1x kernel most likely it can't find your
43 linux/include/linux/mpls.h file. Go read the file 'README.1st.really'
44 in the mpls-linux-1.1 distrubution.
46 After you have finished compling, you will have a ldpd binary that has
47 the same command line syntax as the rest of the quagga binaries.
49 'ldpd' supports LDP, zebra supports staic LSPs.
51 (if you are not familiar with quagga hit the '?' key and it will provide
52 you context sensitive help. Also look at 'mpls' at the interface level.
53 There are also 'show' commands availble from the operations more. Look at
54 'show ldp ?' and 'show mpls ?' for a list of commands.)
56 The environment I use is:
58 zebra -f /etc/zebra.conf -P 1024 -d
59 ospdd -f /etc/ospfd.conf -P 1025 -d
60 ldpd -f /etc/ldpd.conf -P 1026
62 NOTE: 'ldpd' still has a lot of tracing messages which only go to standard
63 output. If you use the -d option on 'ldpd' you will loose this useful
66 Look at quagga/ldpd/ldpd.conf.sample or the sample configs I have included
67 below, for a basic configuration example.
69 I have done most of my testing with unsolicited mode, liberal retention, label
70 merging, ordered control. If you have success or failures with other modes
73 Please post questions to the mpls-linux mailing list:
75 http://sourceforge.net/mail/?group_id=15443
77 Here is a version of each of the quagga related config files that I use
80 NOTE: The usage of the dummy interface with a /32 address is important!
82 --------------------------- zebra config ------------------------------
90 label-map gen 17 swap gen 18 nexthop eth2 11.0.2.3
96 ip address 192.168.0.2/32
102 ip address 11.0.1.2/24
106 ip address 11.0.2.2/24
110 ip address 11.0.3.2/24
114 ip route 10.0.0.0/8 gen 19 nexthop eth2 11.0.2.3
119 --------------------------- ospfd config ------------------------------
143 network 11.0.0.0/8 area 0
144 network 192.168.0.2/32 area 0
149 --------------------------- mplsd config ------------------------------