unbutu环境下quagga路由软件下的安装[转]

 

一Quagga简介

Quagga是一个路由软件套件,它提供了路由协议的TCP / IP的路由支持服务,如RIPv1,RIPv2的,RIPng,OSPFv2,OSPFv3,BGP - 4的,和BGP – 4。此外本软件除了支持IPv4路由协议外,还支持IPv6路由协议。Quagga是GNU Zebra(由Kunihiro Ishiguro开发)的一个分支。

二 Quagga基本结构

quagga主要由bgpd、ripd、ripngd、ospfd、ospf6d、vtysh等几个服务(这些服务的名称被建立之后,被挂上 Linux 使用时,通常在服务的名称之后会加上一个 d,这也就是daemon的命名规则),根据实际需要我们选用相应的服务。但quagga中Vtysh(也就是quagga的shell)是实现与每个daemon进行通信。

Quagga包含一个核心守护进程zebra,它作为Unix底层核心的一个抽象层,表示为linux上的一些Zserv API或Linux Quagga客户端的TCP流。这些Linux Quagga客户端实现路由协议并和zebra守护程序交换路由更新信息。其中Zserv客户端包括:

Ospfd(实现OSPFv2)ripd(实现RIPv1和RIPv2)ospf6d(实现OSPFv3(IPv6))

Ripngd(实现RIPv3(IPv6))Bgpd(实现BGP4+(包括对组播地址族和IPv6地址族的支持)

注:

【1】daemon

Unix 的术语,指一种在后台执行的程序。网络的服务器功能也多为后台程序,一种没有被显式激活,但处于休眠状态,

等待某种条件满足的程序。守护程序,无交互后台程序,UNIX端口监督程序;

【2】 Zebra

Zebra是一个开源的 TCP/IP 路由软件,同 Cisco Internet 网络操作系统(IOS)类似。它灵活而且具有强大的功能,可以处理路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和(BGP)边界网关协议以及这些协议的所有变体。

zebra 守护进程是实际的路由管理者,控制着其他模块;而且用户主要通过它进行交互。我们最先需要配置 Zebra 守护进程。

启动某一服务则:

                   服务名 -d     (例如:ripd -d)

三 buntu下quagga软件的安装

             (一)   安装环境

          A.   硬件环境:PC机

     B.    软件环境:Windows xp 虚拟机 ubuntu10.04

                         安装路由软件quagga-0.99.

(二)  quagga虚拟机与windows下共享文件

     

     A.  在虚拟机安装好后,在windows下的某一一盘符(例如d)内建一个共 享文件夹,把guagga源文件拷到共享文件夹(例如命名为linuxshare)里并解压。

     B.       在虚拟机主界面选择option选项中的sharefolders中,按照提示设置共享文件路径(例d:\linuxshare)。

(三)   quagga配置

A. 打开终端并以root用户进入

B.  安装guagga时要用到g++,ubuntu10.04没有安装须下载安装此软件包

   root@ubuntu:/# apt-get install g++

C. quagga解压代码放在/mnt/hgfs/linuxshare/

       root@ubuntu:/# cd /mnt/hgfs/linuxshare/quagga-0.99.16

D.    root@/mnt/hgfs/linuxshare/quagga-0.99.16#./configure --disable-ripd --disable-ripngd --disable-ospfd --disable-ospf6d --disable-watchquagga --disable-doc --enable-user=root --enable-group=root --enable-zebra --enable-vtysh

注:

①./configure是用来检测你的安装平台的目标特征的(比如它会检查是否有编辑器、函数库,CC或GCC等等),并根据配置信息生产相应的makefile,它是个shell脚本。

②./configure –h 输入此命令会一一列出当前配置环境所有配置选项

③此输入选项含义为, 启用相应服务程序,并对不用的服务程序进行关闭,其中--enable- user=root --enable-group=root 是限定quagg软件的使用权限。

④配置时易出现如下错误:

/usr/local/lib/libreadline.so: undefined reference to `PC'

/usr/local/lib/libreadline.so: undefined reference to `tgetflag'

/usr/local/lib/libreadline.so: undefined reference to `tgetent'

/usr/local/lib/libreadline.so: undefined reference to `UP'

/usr/local/lib/libreadline.so: undefined reference to `tputs'

/usr/local/lib/libreadline.so: undefined reference to `tgoto'

/usr/local/lib/libreadline.so: undefined reference to `tgetnum'

/usr/local/lib/libreadline.so: undefined reference to `BC'

/usr/local/lib/libreadline.so: undefined reference to `tgetstr'

checking for perl... /usr/bin/perl
       checking for tputs in -ltermcap... no
       checking for tputs in -ltinfo... no
       checking for tputs in -lcurses... no
       checking for tputs in -lncurses... no
       checking for main in -lreadline... no
       configure: error: vtysh needs libreadline but was not found and usable on your system

解决方法:

1    看readline软件包是否安装

2    是否安装ncurses安装包

3    是否安装libncurses5-dev 或libncursesw5-dev软件包

(二)   quagga编译

root@/mnt/hgfs/linuxshare/quagga-0.99.16#make

注:

make是用编译命令,它从Makefile中读取信息(呼叫原始码、函数库、编辑器)进行编译。

(三)  quagga安装

root@/mnt/hgfs/linuxshare/quagga-0.99.16#make install

注:

make install是安装命令,它也从Makefile中读取指令,安装到指定的位置。

(四)  启动quagga的核心守护进程

root@/mnt/hgfs/linuxshare/quagga-0.99.16# zebra –d

   

注:

        a)  说明quagga相应服务程序已经运行,只要是虚拟机的不重启或卸载(make uninstall),他都会在后台运行。

       b)  可能有以下错误:

    

    ①- zebra: error while loading shared libraries: libzebra.so.0: cannot open shared object file: No   such file or       directory

解决方法:

在/usr/local/lib下有

     lrwxrwxrwx 1 root root       17 2010-06-21 01:52 libzebra.so -> libzebra.so.0.0.0

    lrwxrwxrwx 1 root root       17 2010-06-21 01:52 libzebra.so.0 -> libzebra.so.0.0.0

    -rwxr-xr-x 1 root root        778556 2010-06-21 01:52 libzebra.so.0.0.0

这可能是由于/lib库出现问题:则

        root@ubuntu:/usr/local/lib# cp libzebra.* /lib

         root@ubuntu:/usr/local/lib# rm libzebra.*

     

    ②Starting zebra.

vty_read_config: failed to open configuration file /usr/local/etc/zebra.conf: Permission denied can't open configuration file [/usr/local/etc/quagga/zebra.conf

    解决方法:

可以看到/usr/local/etc/没有zebra.conf(它是存放zebra相关用户,密码信息等),但有       zebra.conf.sample

      root@ubuntu:/usr/local/etc# cp zebra.conf.sample zebra.conf

(五)  执行quagga的shell程序

          root@/mnt/hgfs/linuxshare/quagga-0.99.16# vtysh

     接着进入guagga的shell界面:

            Hello, this is Quagga (version 0.99.16).

     Copyright 1996-2005 Kunihiro Ishiguro, et al.

            ubuntu#

          注:

        在相应quagga相应服务启动之后,输入vtysh作用就是通过相应界面,输入命令行控制后台执行的相应 操作。


你可能感兴趣的:(Ubuntu)