When working with interfaces we should use interface defines ...
[mpls-ldp-portable.git] / README.quagga-mpls
blob35536a00051427444e32ae475ff4e3dc8d086c94
1 What is this?
2 -------------
3 quagga-mpls.diff is a quagga<->ldp-portable porting layer.
5 What is "quagga"?
6 ----------------
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
31 daemon).
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
64 debugging output.
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
71 let me know.
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
78 for testing.
80 NOTE:  The usage of the dummy interface with a /32 address is important!
82 --------------------------- zebra config ------------------------------
83 hostname uml-2
84 password root
85 enable password root
86 service advanced-vty
88 mpls labelspace 0
89  label-map gen 16 pop
90  label-map gen 17 swap gen 18 nexthop eth2 11.0.2.3
92 interface lo
93  description Loopback 
95 interface dummy0
96  ip address 192.168.0.2/32
98 interface eth0
100 interface eth1
101  mpls labelspace 0
102  ip address 11.0.1.2/24
104 interface eth2
105  mpls labelspace 0
106  ip address 11.0.2.2/24
108 interface eth3
109  mpls labelspace 0
110  ip address 11.0.3.2/24
112 interface teql0
114 ip route 10.0.0.0/8 gen 19 nexthop eth2 11.0.2.3
116 line vty
117  exec-timeout 0 0
119 --------------------------- ospfd config ------------------------------
121 hostname uml-2-ospf
122 password root
123 enable password root
127 interface lo
129 interface teql0
131 interface eth0
133 interface eth1
135 interface eth2
137 interface eth3
139 interface dummy0
141 router ospf
142  passive-interface lo
143  network 11.0.0.0/8 area 0
144  network 192.168.0.2/32 area 0
146 line vty
147  exec-timeout 0 0
149 --------------------------- mplsd config ------------------------------
151 hostname uml-2-mpls
152 password root
153 enable password root
155 mpls ip
157 interface lo
159 interface eth0
161 interface eth1
162  mpls ip
164 interface eth2
165  mpls ip
167 interface eth3
168  mpls ip
170 interface dummy0
172 line vty
173  exec-timeout 0 0