blob: 72c826d6438e8fd9a848c364ac276f3f4f29233d [file] [log] [blame]
paul718e3742002-12-13 20:15:29 +00001@node Installation, Basic commands, Overview, Top
2@comment node-name, next, previous, up
3@chapter Installation
4
5@cindex How to install Zebra
6@cindex Installation
7@cindex Installing Zebra
8@cindex Building the system
9@cindex Making Zebra
10
11 There are three steps for installing the software: configuration,
12compilation, and installation.
13
14@menu
15* Configure the Software::
16* Build the Software::
17* Install the Software::
18@end menu
19
20 The easiest way to get Zebra running is to issue the following
21commands:
22
23@example
24% configure
25% make
26% make install
27@end example
28
29@node Configure the Software, Build the Software, Installation, Installation
30@comment node-name, next, previous, up
31@section Configure the Software
32
33@cindex Configuration options
34@cindex Options for configuring
35@cindex Build options
36@cindex Distribution configuration
37@cindex Options to @code{./configure}
38
39 Zebra has an excellent configure script which
40automatically detects most host configurations. There are several
41additional configure options you can use to turn off IPv6 support, to
42disable the compilation of specific daemons, and to enable SNMP support.
43
44@table @option
45@item --enable-guile
46Turn on compilation of the zebra-guile interpreter. You will need the
47guile library to make this. zebra-guile implementation is not yet
48finished. So this option is only useful for zebra-guile developers.
49@item --disable-ipv6
50Turn off IPv6 related features and daemons. Zebra configure script
51automatically detects IPv6 stack. But sometimes you might want to
52disable IPv6 support of Zebra.
53@item --disable-zebra
54Do not build zebra daemon.
55@item --disable-ripd
56Do not build ripd.
57@item --disable-ripngd
58Do not build ripngd.
59@item --disable-ospfd
60Do not build ospfd.
61@item --disable-ospf6d
62Do not build ospf6d.
63@item --disable-bgpd
64Do not build bgpd.
65@item --disable-bgp-announce
66Make @command{bgpd} which does not make bgp announcements at all. This
67feature is good for using @command{bgpd} as a BGP announcement listener.
68@item --enable-netlink
69Force to enable @sc{gnu}/Linux netlink interface. Zebra configure
70script detects netlink interface by checking a header file. When the header
71file does not match to the current running kernel, configure script will
72not turn on netlink support.
73@item --enable-snmp
74Enable SNMP support. By default, SNMP support is disabled.
75@end table
76
77You may specify any combination of the above options to the configure
78script. By default, the executables are placed in @file{/usr/local/sbin}
79and the configuration files in @file{/usr/local/etc}. The @file{/usr/local/}
80installation prefix and other directories may be changed using the following
81options to the configuration script.
82
83@table @option
84@item --prefix=@var{prefix}
85Install architecture-independent files in @var{prefix} [/usr/local].
86@item --sysconfdir=@var{dir}
87Read-only sample configuration file in @var{dir} [@var{prefix}/etc].
88@end table
89
90@example
91% ./configure --disable-ipv6
92@end example
93
94This command will configure zebra and the routing daemons.
95
96@cindex Configuring Zebra
97@cindex Configuration the software build
98@cindex Building on Linux boxes
99@cindex Linux configurations
100
101There are several options available only to @sc{gnu}/Linux systems:
102@footnote{GNU/Linux has very flexible kernel configuration features. If
103you use GNU/Linux, make sure that the current kernel configuration is
104what you want. Zebra will run with any kernel configuration but some
105recommendations do exist.
106
107@table @var
108
109@item CONFIG_NETLINK
110Kernel/User netlink socket.
111This is a brand new feature which enables
112an advanced interface between the Linux kernel and Zebra (@pxref{Kernel Interface}).
113
114@item CONFIG_RTNETLINK
115Routing messages.
116This makes it possible to receive netlink routing messages. If you
117specify this option, @command{zebra} can detect routing information
118updates directly from the kernel (@pxref{Kernel Interface}).
119
120@item CONFIG_IP_MULTICAST
121IP: multicasting.
122This option should be specified when you use @command{ripd} or
123@command{ospfd} because these protocols use multicast.
124
125@end table
126
127IPv6 support has been added in @sc{gnu}/Linux kernel version 2.2. If you
128try to use the Zebra IPv6 feature on a @sc{gnu}/Linux kernel, please
129make sure the following libraries have been installed. Please note that
130these libraries will not be needed when you uses @sc{gnu} C library 2.1
131or upper.
132
133@table @code
134
135@item inet6-apps
136The @code{inet6-apps} package includes basic IPv6 related libraries such
137as @code{inet_ntop} and @code{inet_pton}. Some basic IPv6 programs such
138as @command{ping}, @command{ftp}, and @command{inetd} are also
139included. The @code{inet-apps} can be found at
140@url{ftp://ftp.inner.net/pub/ipv6/}.
141
142@item net-tools
143The @code{net-tools} package provides an IPv6 enabled interface and
144routing utility. It contains @command{ifconfig}, @command{route},
145@command{netstat}, and other tools. @code{net-tools} may be found at
146@url{http://www.tazenda.demon.co.uk/phil/net-tools/}.
147
148@end table
149@c A - end of footnote
150}.
151
152@node Build the Software, Install the Software, Configure the Software, Installation
153@comment node-name, next, previous, up
154@section Build the Software
155
156After configuring the software, you will need to compile it for your
157system. Simply issue the command @command{make} in the root of the source
158directory and the software will be compiled. If you have *any* problems
159at this stage, be certain to send a bug report @xref{Bug Reports}.
160
161@example
162% ./configure
163.
164.
165.
166./configure output
167.
168.
169.
170% make
171@end example
172@c A - End of node, Building the Software
173
174
175@node Install the Software, , Build the Software, Installation
176@comment node-name, next, previous, up
177@section Install the Software
178
179Installing the software to your system consists of copying the compiled
180programs and supporting files to a standard location. After the
181installation process has completed, these files have been copied
182from your work directory to @file{/usr/local/bin}, and @file{/usr/local/etc}.
183
184To install the Zebra suite, issue the following command at your shell
185prompt: @command{make install}.
186
187@example
188%
189% make install
190%
191@end example
192
193@c A - removed this section and placed it with Install the Software
194@c @node Additional Notes, , Install the Software, Installation
195@comment node-name, next, previous, up
196@c @section Additional Notes
197
198Zebra daemons have their own terminal interface or VTY. After
199installation, you have to setup each beast's port number to connect to
200them. Please add the following entries to @file{/etc/services}.
201
202@example
203zebrasrv 2600/tcp # zebra service
204zebra 2601/tcp # zebra vty
205ripd 2602/tcp # RIPd vty
206ripngd 2603/tcp # RIPngd vty
207ospfd 2604/tcp # OSPFd vty
208bgpd 2605/tcp # BGPd vty
209ospf6d 2606/tcp # OSPF6d vty
210@end example
211
212If you use a FreeBSD newer than 2.2.8, the above entries are already
213added to @file{/etc/services} so there is no need to add it. If you
214specify a port number when starting the daemon, these entries may not be
215needed.
216
217You may need to make changes to the config files in
218@file{@value{INSTALL_PREFIX_ETC}/*.conf}. @xref{Config Commands}.