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