quagga是一种可以将linux变为路由器的开源软件,支持多种路由协议
一、安装
过程中参考了一些文档
http://blog.sina.com.cn/s/blog_c5ba6f6a0101e5z7.html
http://blog.sina.com.cn/s/blog_4e793e580101lkt7.html
首先下载Quagga 0.99.17到硬盘,然后在终端输入
tar –zxvf quagga-0.99.17.tar.gz
进入目录
#cd quagga-0.99.17
配置
#./configure --enable-vtysh
如果出现错误——configure: error: vtysh needs libreadline but was not found and usable on your system
解决方法:到下载软件readline-6.0.tar.gz
执行:
tar -zxvf readline-6.0.tar.gz
./configure
make
make install
亲测不能实现的解决方法
解决方法:
1
sudo apt-get install libreadline5-dev
2
sudo apt-get install libncurses5-dev
3
sudo apt-get install libncursesw5-dev
安装完成之后再重新用配置命令
安装成功后会显示如下信息
Quagga configuration
--------------------quagga version : 0.99.17
host operating system : linux-gnu
source code location : .
compiler : gcc
compiler flags : -Os -fno-omit-frame-pointer -g -std=gnu99 -Wall -Wsign-compare -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wchar-subscripts -Wcast-qual
make : make
includes :
linker flags : -lcrypt -lrt -ltermcap -lreadline -lm
state file directory : /var/run
config file directory : /usr/local/etc
example directory : /usr/local/etc
user to run as : quagga
group to run as : quagga
group for vty sockets :
config file mask : 0600
log file mask : 0600
The above user and group must have read/write access to the state file
directory and to the config files in the config file directory.
安装完成之后再重新用配置命令
#./configure --enable-vtysh
#./configure --enable-user=root
#./configure --enable-group=root
#./configure --enable-vty-group=root
之后编译与安装
#make
#make install
二、配置
1.修改配置参数
我的系统是ubuntu12.04LTS,/etc/services中已经写好配置
若services中没有如下配置信息,应手动添加
zebrasrv 2600/tcp # zebra service
zebra 2601/tcp # zebra vty
ripd 2602/tcp # RIPd vty
ripngd 2603/tcp # RIPngd vty
ospfd 2604/tcp # OSPFd vty
bgpd 2605/tcp # BGPd vty
ospf6d 2606/tcp # OSPF6d vty
ospfapi 2607/tcp # ospfapi
isid 2608/tcp # ISISd vty
主文件夹下/home/*用户*/quagga-0.99.17/zebra有一个zebra.conf.sample文件,可建立一个zebra.conf文件并把zebra.conf.sample内容copy进去.
2.分析service中配置文件
对Quagga进行配置,实际上就是对各进程进行配置,并且路由器的配置和路由协议的配置是分开不同进程的。
可以通俗点这么理解,Quagga里的zebra进程,相当于一个路由器,对zebra进行配置,就相当于对路由器进行基本配置(注意,这里是说基本配置,路由协议不是在zebra里配置的)。而Quagga里的ripd、ospfd、bgpd等进程,相当于不同的路由协议,要启动哪一种协议,就对协议相应的进程进行配置。