安装:
0) 安装依赖软件包(--enable-vtysh需要)
#sudo apt-get install libreadline6-dev (Ubuntu)
#sudo yum install readline-devel (CentOS)
创建用户(可选)
#sudo groupadd quagga
#sudo useradd quagga -g quagga
1) 下载软件包,解压缩, 编译并安装
#tar xzf quagga-0.99.21.tar.gz
#cd quagga-0.99.21
#sudo mkdir /var/run/quagga (运行时的PID文件位置)
#sudo chmod 777 /var/run/quagga
#sudo mkdir /etc/quagga (运行时的配置文件目录)
#sudo chmod 777 /etc/quagga
#./configure --enable-vtysh --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga
(默认运行用户为quagga, 确保运行的localstatedir对用户有读写的权限,建议配置)
#./configure --localstatedir=/var/run/quagga
#make
#sudo make install
#sudo ldconfig (加载库文件路径)
注意:
配置文件路径, 默认为/usr/local/etc; 可执行文件路径, 默认为/usr/local/sbin
2) 修改文件/etc/services (某些linux平台可能不需要), 添加如下内容:
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
3) 使用如下脚本启动/停止quagga: sudo ./run_quagga.sh start|stop|restart
或者直接启动停止:
#sudo /../zebra -u 用户 -g 用户组 -d (确保编译时设置的localstatedir对用户有读写权限即可)
#sudo ospfd -u 用户 -g 用户组 -d
......
4) 登录控制台:
#telnet localhost 2601 //zebra
#telnet localhost 2604 //ospf
#sudo /usr/local/bin/vtysh //vtysh
......
5) 问题解决
i) 如果遇到zebra库文件未找到错误,则到目录 /etc/ld.so.conf.d下面新建个文件,
内容为quagga安装的库路径,例如: /usr/local/lib
然后 sudo ldconfig即可。
ii) 如果不能连接vtysh的话,是因为在/var/run/quagga/*.vty文件对当前执行vtysh命令的用户没有权限。
可以使用: sudo /usr/local/bin/vtysh即可。
也可以: sudo chmod 777 /var/run/quagga/* ,(当zebra都启动之后), 然后运行vtysh即可。
iii) 如果需要设置IP地址,设置路由等,则建议使用root用户身份运行Quagga(zebra/ospfd/bgpd等), 否则修改路由IP等会导致没有权限的错误。
iii) 如果路由不能转发,修改/etc/sysctl.conf文件。 启用IPv4转发功能
net.ipv4.ip_forward = 1
iv) 如果发生了源路由验证的路由问题, 修改/etc/sysctl.conf文件。 禁用源路由验证功能
net.ipv4.conf.default.rp_filter = 1
v)
如果要启用net-snmp支持,则如下:
#sudo yum install net-snmp net-snmp-devel net-snmp-perl net-snmp-utils
# ./configure --enable-vtysh --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga --enable-snmp=smux
6) 如果要启用quagga的vtysh控制台:
#./configure --enable-vtysh --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga
#make
#sudo make install
然后配置/etc/quagga/vtysh.conf文件内容即可。
====================================
在Eclipse中调试运行Quagga (CentOS环境)
0) 首先按照上面要求正确编译运行Quagga.
1) 打开Eclipse, 新建项目 "Makefile Project with existing code", 选择Quagga的解压缩路径
2) 选择 “Run Configuration ...", 新建C/C++可执行程序, 命名为 ”Quagga-0.99.21 zebra“
在C/C++ Application输入: zebra/.libs/zebra
在Argument处输入: -f /usr/local/etc/zebra.conf -u 当前用户 -g 当前用户
在Enviremont处新建变量: LD_LIBRARY_PATH, 取值为: :./lib/.libs:./ospfd/.libs
3) 其它ospfd, bgpd等都可以同样如2)设置。
4) 运行和调试都OK。
====================================
run_quagga.sh
#!/bin/bash
EXEC_DIR=/usr/local/sbin
CONF_DIR=/etc/quagga
LIB_DIR=/usr/local/lib
PID_DIR=/var/run/quagga
DAEMON=(zebra ospfd bgpd)
USER=root
TIME_DELAY=2
#DAEMON=(zebra ospfd ospf6d ripd bgpd)
#set librery path
export LD_LIBRARY_PATH=$LIB_DIR:$LD_LIBRARY_PATH
#
echo make sure user \"$USER\" has read-write privileges in directory \"$PID_DIR\" !
start()
{
for d in ${DAEMON[*]}; do
$EXEC_DIR/$d -f $CONF_DIR/$d.conf -i $PID_DIR/$d.pid -u $USER -g $USER -d
ps -ef | grep $d
if [ $d = "zebra" ] ; then
sleep $TIME_DELAY
fi
done
echo "start (${DAEMON[*]}) finished!"
}
stop()
{
for d in ${DAEMON[*]}; do
killall $d
#rm -f $PID_DIR/$d.pid
done
rm -f $PID_DIR/*
echo "stop (${DAEMON[*]}) finished!"
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
stop
start ;;
*)
echo "Usage: $0 start | stop | restart"
esac
分享到:
相关推荐
开源路由协议栈代码 运行环境Linux 支持的路由协议isis ospf bgp
quagga开源代码,集成ospf、bpg、rip等路由协议,可在linux下直接编译,把linux系统彻底当成一个路由器。
quagga路由软件,可以将一台主机部署为路由器,支持主流的路由协议
基于powerlinux的Quagga编译和安装.docx
quagga-0.98.6.tar.gz 源代码 rip ospf bgp
Quagga软件原名是Zebra是由一个日本开发团队编写的一个以GNU版权方式发布的软件。Quagga项目开始与1996年,当前版本是0.98.4版 可以使用Quagga将linux机器打造成一台功能完备的路由器。 Quagga支持的路由协议 ...
Quagga软件原名是Zebra是由一个日本开发团队编写的一个以GNU版权方式发布的软件。Quagga项目开始与1996年,当前版本是0.98.4版 可以使用Quagga将linux机器打造成一台功能完备的路由器。 Quagga支持的路由协议 ...
该软件可自动创建用于网络模拟的虚拟 Quagga 路由器。 它是用 Node.js 编写的。 文件 config.json 包含网络拓扑,该拓扑是通过运行 app.js 创建的。 安装 Quagga sudo apt-get install git gcc make autoconf ...
官网quagga资源,开源代码,包括ospf、bpg、rip等路由协议,可在linux下直接编译。
quagga安装步骤及问题解决;quagga配置;quagga不同版本的更新内容
Quagga是一个路由软件包,提供基于TCP/IP路由服务,支持RIPv1,RIPv2, RIPng, OSPFv2,OSPFv3,BGP等众多路由协议。
开源的quagga动态路由软件,可以借鉴来写动态路由协议和命令行。希望能够对你有用。哎呀,50个字好难
quagga在ubuntu上安装常见问题汇总及相对应的解决方案
quagga是原zebra的延伸,应用最广泛的开源路由协议,基于linux平台。
非常好的开源路由协议软件,ospfv3 ipv6 ripng isis bgp ipv6
linux quagga安装指南之大全 帮助你快速入手
quagga是原zebra的延伸,应用最广泛的开源路由协议,基于linux平台。
linux路由器Quagga的安装,具体描述安装的过程需要的命令行
zebra是GNU Zebra和Quagga的一个开源实现,采用Go编程语言实现,以适应容器或虚拟机环境。