分类: LINUX
2015-12-23 13:39:18
Quagga 源码:
下载zebra源码
地址:
解压
1 tar -xvf zebra-0.95a.tar.gz 2 cd zebra-0.95a/
修改zebra.h
vi ./lib/zebra.h //在103行添加如下代码
增加:
1 #ifdef GNU_LINUX
2 #define __USE_GNU
3 #endif
告知在编译的时候使用GNU标准编译,同时这样做是因为增加了zebra对IPV6的支持。在系统头文件的in.h中定义了一个结构体:struct in6_pktinfo等结构,在zebra中被引用,所以增加定义宏以支持ipv6。
配置
./configure
编译和安装
make;make install【如果需要权限,请sudo】
如果编译过程中,出现个别库文件没有安装,请先安装依赖库文件,在后面配置vtysh的时候,可能会要求安装quagga支持;
默认安装完成后会在根目录下增加一个routing目录,如下:
root@zebra:/# ls
bin etc lib lost+found opt routing srv usr ...
服务程序将被默认安装在/routing/sbin/
root@zebra:/# cd routing/
root@zebra:/routing# ls
etc info man sbin
root@zebra:/routing# cd sbin/
root@zebra:/routing/sbin# ls
bgpd ospf6d ospfd ripd ripngd zebra
有:bgpd ospf6d ospfd ripd ripngd zebra六个服务程序。
zebra配置文件在/routing/etc/目录下
root@zebra:/routing/sbin# cd ../etc/
root@zebra:/routing/etc# ls
bgpd.conf.sample ospf6d.conf.sample ripd.conf.sample zebra.conf.sample
bgpd.conf.sample2 ospfd.conf.sample ripngd.conf.sample
root@zebra:/routing/etc#
配置zebra
生成zebra配置文件。因为系统中有简单的例子,于是就用现有的配置文件,配置登陆和进入特权模式的密码,主机名等。
mv zebra.conf.sample zebra.conf
配置vtysh
mv vtysh.conf.sample vtysh.conf
启动zebra demo程序
./zebra –d
远程登陆
telnet 127.0.0.1 2601 //如果是在局域网内登陆,则将IPaddress 改为具体的主机地址
默认所有的登录密码是:zebra
2601是zebra demo的服务端口号,其他协议的端口号自行查找相关文件获悉。 如果需要启动Zebra提供的其他服务,在/usr/local/etc/下生成特定服务的配置文件。例如,希望启动RIP协议服务,则将rip相关的配置文件和上例一样拷贝到/usr/local/etc/下,在控制台运行:ripd –d,然后ps查看,会发现ripd已经在后台运行。