3 zebra-ldp.diff is a zebra<->ldp-portable porting layer.
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
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
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
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
81 NOTE: The usage of the dummy interface with a /32 address is important!
83 --------------------------- zebra config ------------------------------
93 ip address 192.168.0.2/32
98 ip address 11.0.1.2/24
101 ip address 11.0.2.2/24
104 ip address 11.0.3.2/24
112 --------------------------- ospfd config ------------------------------
136 network 11.0.0.0/8 area 0
137 network 192.168.0.2/32 area 0
142 --------------------------- mplsd config ------------------------------