No longer need mpls_ifmgr_get_address mpls_ifmgr_open_if and
[mpls-ldp-portable.git] / README.zebra-ldp
blob4753d08e85dad14c0dcebf43ca02c778586bc6a0
1 What is this?
2 -------------
3 zebra-ldp.diff is a zebra<->ldp-portable porting layer.
5 What is "zebra"?
6 ----------------
7 Zebra 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).  This
10 patch adds another daemon to the mix, mplsd.  mplsd only implements
11 LDP and static LSPs so far.  In the future it will implement other MPLS
12 related protocols.  If you have never used zebra, go to http://zebra.org/
13 download the source for 0.94, compile it and learn how to setup up a small
14 OSPF network using zebra.  Once you have that running then you are ready
15 try and use this patch.
17 What does this patch include?
18 -----------------------------
19 It includes a 'router-id' implementation so that each protocol chooses the same
20 address as it's router-id. (very important for implementing more
21 advanced MPLS services)
23 In includes a 'sum-of-checksums' implementation for OSPF so you can easily
24 verify that all of your OSPF speakers in an area have the same version of the
25 database (their sum-of-checksums will match).
27 It includes a handling of MPLS labels as part of the zebra nexthop and correct
28 handling of MPLS labels as part of a recursive nexthop.
30 It implements a CLI for creating static LSPs.
32 It implements a porting layer for the ldp-portable library so that LDP
33 interact seemlessly with the rest of the zebra routing software.
35 How do I use this patch?
36 -----------------------
37 Apply zebra-ldp.diff to the zebra source distribution. (0.94)
38 Go into the zebra/mplsd directory and modify 'create-links' to point to
39 your ldp-portable source distribution.  Then execute 'create-links' .
40 Go back to the top of the zebra source tree and configure and compile
41 zebra according to it's directions.  The file mplsd/impl_mpls.c assumes that
42 you are running a mpls-linux-1.1x kernel.  If you have issues compiling
43 and you are running a mpls-linux-1.1x kernel most likely it can't find
44 your linux/include/linux/mpls.h file.   Go read the file 'README.1st.really'
45 in the mpls-linux-1.1 distrubution.
47 After you have finished compling, you will have a mplsd binary that has
48 the same command line syntax as the rest of the zebra binaries.
50 'mplsd' supports LDP and staic LSPs.  Look at 'mpls ldp' and 'mpls static'
51 at the top level of the configuration (if you are not familiar with zebra
52 hit the '?' key and it will provide you context sensitive help.  Also look
53 at 'mpls' at the interface level.  There are also 'show' commands availble
54 from the operations more.  Look at 'show ldp ?' and 'show mpls ?' for a list
55 of commands.
57 The environment I use is:
59 zebra -f /etc/zebra.conf -P 1024 -d
60 ospdd -f /etc/ospfd.conf -P 1025 -d
61 mplsd -f /etc/mplsd.conf -P 1026
63 NOTE: 'mplsd' still has a lot of tracing messages which only go to standard
64 output.  If you use the -d option on 'mplsd' you will loose this useful
65 debugging output.
67 Look at zebra/mplsd/mplsd.conf.sample or the sample configs I have included
68 below, for a basic configuration example.
70 I have done most of my testing with unsolicited mode, liberal retention, label
71 merging, ordered control.  If you have success or failures with other modes
72 let me know.
74 Please post questions to the mpls-linux mailing list:
76 http://sourceforge.net/mail/?group_id=15443
78 Here is a version of each of the zebra related config files that I use
79 for testing.
81 NOTE:  The usage of the dummy interface with a /32 address is important!
83 --------------------------- zebra config ------------------------------
84 hostname uml-2
85 password root
86 enable password root
87 service advanced-vty
89 interface lo
90  description Loopback 
92 interface dummy0
93  ip address 192.168.0.2/32
95 interface eth0
97 interface eth1
98  ip address 11.0.1.2/24
100 interface eth2
101  ip address 11.0.2.2/24
103 interface eth3
104  ip address 11.0.3.2/24
106 interface teql0
109 line vty
110  exec-timeout 0 0
112 --------------------------- ospfd config ------------------------------
114 hostname uml-2-ospf
115 password root
116 enable password root
120 interface lo
122 interface teql0
124 interface eth0
126 interface eth1
128 interface eth2
130 interface eth3
132 interface dummy0
134 router ospf
135  passive-interface lo
136  network 11.0.0.0/8 area 0
137  network 192.168.0.2/32 area 0
139 line vty
140  exec-timeout 0 0
142 --------------------------- mplsd config ------------------------------
144 hostname uml-2-mpls
145 password root
146 enable password root
148 mpls ldp
150 interface lo
152 interface eth0
154 interface eth1
155  mpls ldp
157 interface eth2
158  mpls ldp
160 interface eth3
161  mpls ldp
163 interface dummy0
165 line vty
166  exec-timeout 0 0
168 -- 
169 James R. Leu