您的位置:首页 > 理论基础 > 计算机网络

菜鸟学习网络协议软件Quagga,修改ospfd vty端口和编译安装

2013-07-14 00:24 519 查看
TIP:笔者的系统是红帽6U3,编译安装前记得把gcc各种依赖工具先安装上,避免编译出错

本文目的是为了学习如何编译安装开源软件Quagga,并修改下OSPF模块的vty登录端口号,借此熟悉下,它是一款网络协议软件,支持OSPF、BGP、RIP等路由协议,我工作中主要接触到的是OSPF模块。

1、下载Quagga
我使用的版本是0.99.20,下载地址http://download.savannah.gnu.org/releases/quagga/quagga-0.99.20.tar.gz

wget http://download.savannah.gnu.org/releases/quagga/quagga-0.99.20.tar.gz
2、修改ospfd vty端口号
a)解压源码到/usc/local/src/

tar -xvzf quagga-0.99.20.tar.gz -C /usr/local/src/
b)进入ospfd目前,修改ospfd.h文件的宏“OSPF_VTY_PORT”,默认是2604,改成自己喜欢的数字,比如2609好了

cd /usr/local/src/quagga-0.99.20/ospfd

[root@siwen ospfd]# pwd
/usr/local/src/quagga-0.99.20/ospfd
[root@siwen ospfd]# ls -lh ospfd.h
-rw-rw-r-- 1 jian.du devops 21K Jul 13 22:42 ospfd.h

修改完后应该是这样子:

[root@siwen ospfd]# cat ospfd.h |grep "OSPF_VTY_PORT"
#define OSPF_VTY_PORT 2609

3、编译安装
我们在configure的时候可以配置各种参数,来修改一些属性和安装路径,参数可以在源代码根目录通过“./configure -h”查看;

比如“prefix”可以修改程序安装路径,配置文件默认是安装在程序安装目录“prefix”下的etc目录,当然你想放到"/etc/quagga"下也可以,通过“sysconfdir”来实现;

这次我就只修改"prefix",将程序安装到"/usr/local/quagga"下:

./configure --prefix=/usr/local/quagga
make -j 16 && make install
TIP:make -j 16,表示使用16个进程来工作,编译是非常耗CPU的,自然就耗时了,笔者的Server是16核的,所以用16个进程一起来工作会编译的快一些;

4、查看安装成功的程序
如果你足够幸运,那么编译一次就通过了,如果报错请自己检查错误内容,将需要的依赖安装上;

下面看下安装成功的目录结构:

[root@siwen quagga-0.99.20]# cd /usr/local/quagga

[root@siwen quagga]# ls
etc include lib sbin share

可以看到有5个目录:

etc: 配置文件存放路径,假如你在configure的时候没改变配置文件路径的话;

include:quagga定义的一些头文件;

lib: quagga的库函数存放目录;

sbin: 执行程序所在;

share: 一些文档和帮助信息;

其中我们最关心的也就是“etc”和"sbin"

5、设置配置文件,并以root身份启动zebra和ospfd
TIP:zebra是Quagga用于和其他路由协议传递路由信息,并修改内核路由的模块;

默认程序etc目录下有配置参考,我们只需要将其拷贝一份到该目录下即可运行程序:

cd /usr/local/quagga/etc
cp ospfd.conf.sample ospfd.conf
cp zebra.conf.sample zebra.conf
./zebra -d -uroot
./ospfd -d -uroot
6、查看ospfd进程和zebra进程,并验证ospfd vty接口是否被改为2609:

[root@siwen etc]# netstat -ntpa| grep -E "zebra|ospfd"
tcp 0 0 0.0.0.0:2601 0.0.0.0:* LISTEN 26953/./zebra
tcp 0 0 0.0.0.0:2609 0.0.0.0:* LISTEN 26955/./ospfd

可以看到,osfpd进程的端口号已经是2609,telnet上去试试,密码zebra:

[root@siwen etc]# telnet 127.0.0.1 2609
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

Hello, this is Quagga (version 0.99.20).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

User Access Verification

Password:
ospfd> en
ospfd> enable
ospfd# show ip rou
ospfd# show ip os
ospfd# show ip ospf rou
ospfd# show ip ospf route
OSPF Routing Process not enabled
ospfd# exit
Connection closed by foreign host.
You have new mail in /var/spool/mail/root

总结:
小小骄傲一下,你已经具备修改开源程序源代码的能力了,哈哈,开个玩笑。万事开头难,从最简单的做起。我目前做的是网络集成测试,和网络协议打交道比较多。Quagga是一款开源的支持众多网络协议的软件,我目前在学习如何看代码,借Quagga来学习一下,一来可以熟悉网络协议,二来可以学习如何看代码,加强自己的代码能力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: