安装依赖软件包
yum install readline-devel (--enable-vtysh需要)
解压tar包
tar -zxf quagga-0.99.22.4.tar.gz
cd quagga-0.99.22.4
配置,生成Makefile文件
./configure --enable-vtysh --enable-user=root --enable-group=root --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga
--enable-vtysh
生成vtysh,vtysh是一个可以直接配置其他Quagga进程的shell。不使用vtysh的话,需要telnet到每个进程中去配置,比较麻烦。
--enable-user=root --enable-group=root
默认运行用户为quagga,这里修改为root,可以不用改变文件夹的属性,也不用单独增加用户。
--localstatedir=/var/run/quagga
运行时的PID文件位置
--sysconfdir=/etc/quagga
运行时的配置文件目录,默认位置在/usr/local/etc中
执行./configure
后会显示所有的配置清单,可以核对一下。
Quagga configuration
--------------------
quagga version : 0.99.22.4
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 -lm
state file directory : /var/run/quagga
config file directory : /etc/quagga
example directory : /etc/quagga
user to run as : root
group to run as : root
group for vty sockets :
config file mask : 0600
log file mask : 0600
默认的优化选项为-Os,如果需要使用gdb调试的,可以使用参数--with-cflags
设置编译优化选项为-O0。
./configure --enable-vtysh --enable-user=root --enable-group=root --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga --with-cflags="-O0 -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 install
安装好后,可执行文件在目录/usr/local/sbin/
,配置文件在/etc/quagga/
。
创建Quagga相关目录
运行时的PID文件位置
mkdir /var/run/quagga
chmod 777 /var/run/quagga
注意:Centos 7的/var/run/
目录存放在tmpfs中,也就是内存里,重启后run目录会清空。所以每次启动后需要重新创建quagga目录。
配置文件目录
mkdir /etc/quagga
chmod 777 /etc/quagga
log目录
mkdir /var/log/quagga/
chmod 777 /var/log/quagga/
编辑配置文件
以zebra为例
cp /etc/quagga/zebra.conf.sample /etc/quagga/zebra.conf
vim /etc/quagga/zebra.conf
进行修改
(添加红框中的部分)
至此,Quagga安装成功。下面仍然以zebra为例简单介绍Quagga单个模块的运行。
运行zebra
/usr/local/sbin/zebra -h // 查看命令行选项
/usr/local/sbin/zebra -d // 启动zebra后台程序
登录zebra的TTY
telnet 127.1 2601 // 默认密码:zebra
登录zebra后就可以使用zebra的命令进行操作。
也可以直接执行 vtysh
进行配置。
问题解决
- 如果不能使用telnet,则安装
yum install telnet
- selinux会影响zebra运行,关闭掉
/etc/selinux/config
文件中,设置为:disabled
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
- 如果路由不能转发
修改/etc/sysctl.conf
文件, 启用IPv4转发功能。
net.ipv4.ip_forward = 1
- 如果发生了源路由验证的路由问题
修改/etc/sysctl.conf
文件, 禁用源路由验证功能。
net.ipv4.conf.default.rp_filter = 1