安装依赖软件包
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
问题解决
- 如果不能使用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
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217255.html原文链接:https://javaforall.net
