Quagga路由软件安装与命令行结构分析.pdf
《Quagga路由软件安装与命令行结构分析.pdf》由会员分享,可在线阅读,更多相关《Quagga路由软件安装与命令行结构分析.pdf(12页珍藏版)》请在三一文库上搜索。
1、Quagga 路由软件安装与命令行结构分析一 Quagga 简介 Quagga 是一个路由软件套件,它提供了路由协议的TCP / IP 的路由支持服务, 如 RIPv1, RIPv2 的,RIPng , OSPFv2, OSPFv3, BGP - 4 的,和 BGP 4。 此外本软件除了支持IPv4 路由协议外 ,还支持 IPv6 路由协议。 Quagga 是 GNU Zebra (由 Kunihiro Ishiguro 开发)的一 个分支。 二 Quagga 基 本结构quagga 主要由 bgpd 、 ripd 、 ripngd 、ospfd 、ospf6d 、 vtysh 等几个服务(这
2、些服务的名称被建立之后,被挂上 Linux 使用时, 通常在服务的名称之后会加上一个d,这也就 是 daemon 的 命名规则 ), 根据实际需要我们选用相应的服 务。但 quagga 中 Vtysh(也就是 quagga 的 shell) 是实现 每个 daemon 的集合。Quagga 包含一个核心守护进程 zebra, 它作为 Unix 底层核心的一个抽象层,表示为 linux 上 的一些 Zserv API 或 Linux Quagga 客户端的 TCP 流。这些 Linux Quagga 客户端实现路由协议并和 zebra 守护程序 交换路由更新信息。其中Zserv 客户端包括:Os
3、pfd(实现 OSPFv2)ripd(实现 RIPv1 和 RIPv2)ospf6d(实现 OSPFv3 (IPv6 ) Ripngd(实现 RIPv3(IPv6 ) ) Bgpd(实现 BGP4+ (包括对组播地址族和IPv6 地址族的支持)注: 【1】 daemon Unix 的术语, 指一种在后台执行的程序。网络的服 务器功能也多为后台程序,一种没有被显式激活,但处于休 眠状态,等待某种条件满足的程序。守护程序,无交互后台 程序, UNIX 端口监督程序;【2】 Zebra Zebra 是一个开 源的 TCP/IP 路由软件,同Cisco Internet 网络操作系统 (IOS)类似。
4、它灵活而且具有强大的功能,可以处理路由 信息协议(RIP) 、 开放式最短路径优先协议(OSPF) 和 (BGP) 边界网关协议以及这些协议的所有变体。zebra 守护进程是 实际的路由管理者,控制着其他模块;而且用户主要通过它 进 行交互。我们最先需要配置Zebra 守护进程。启动某 一服务则:服务名-d ( 例如: ripd -d) 三 任务要求1. ubuntu 下 guagga 软件的安装2. 熟悉使用 guagga 软件 四 详细阐述1. buntu 下 quagga 软件的安装(一) 安装环 境 A. 硬件环境: Windows xp B. 软件环境:虚拟机 ubuntu10.04
5、 C. 安装路由软件quagga-0.99.16 (二) quagga 虚拟机与 windows 下共享文件A. 在虚拟机安装好后,在 windows 下的某一一盘符(例如d)内建一个共享文件夹, 把 guagga 源文件拷到共享文件夹(例如命名为linuxshare ) 里并解压。B. 在虚拟机主界面选择option 选项中的 sharefolders 中,按照提示设置共享文件路径(例 d:linuxshare )。 (三) quagga 配置 A. 打开终端并以root 用户进入B. 安装 guagga 时要用到 g+,ubuntu10.04 没 有安装须下载安装此软件包rootubunt
6、u:/# apt-get install g+ C. quagga 解压代码放在 /mnt/hgfs/linuxshare/ rootubuntu:/# cd /mnt/hgfs/linuxshare/quagga-0.99.16 D. root/mnt/hgfs/linuxshare/quagga-0.99.16#./configure -disable-ripd -disable-ripngd -disable-ospfd -disable-ospf6d -disable-watchquagga -disable-doc -enable-user=root -enable-group=ro
7、ot -enable-zebra -enable-vtysh 注:./configure 是用来检测你的安装平 台的目标特征的 (比如它会检查是否有编辑器、函数库,CC 或 GCC 等等),并根据配置信息生产相应的makefile ,它 是个 shell 脚本。./configure h 输入此命令会一一列出 当前配置环境所有配置选项此输入选项含义为,启用相 应服务程序,并对不用的服务程序进行关闭,其中 -enable-user=root -enable-group=root 是限定 quagg 软 件的使用权限。配置时易出现如下错误:checking for perl. /usr/bin/p
8、erl checking for tputs in -ltermcap. no checking for tputs in -ltinfo. no checking for tputs in -lcurses. no checking for tputs in -lncurses. no checking for main in -lreadline. no configure: error: vtysh needs libreadline but was not found and usable on your system 解决方法:看 readline 软件包是否安装是否安装 ncurs
9、es 安装包是否安装 libncursesw-dev 或 libncursesw5-de 软件包(四) quagga 编译 root/mnt/hgfs/linuxshare/quagga-0.99.16#make 注: make 是用编译命令, 它从 Makefile 中读取信息 (呼叫原始 码、函数库、编辑器)进行编译。(五) quagga 安装 root/mnt/hgfs/linuxshare/quagga-0.99.16#make install 注: make install 是安装命令,它也从Makefile 中读取指 令,安装到指定的位置。(六) 启动 quagga 的核心守护进
10、程 root/mnt/hgfs/linuxshare/quagga-0.99.16# Zebra d 注: a) 说明 quagga 相应服务程序已经运行,只要是虚拟 机的不重启或卸载(make uninstall ), 他都会在后台运行。 b) 可能有以下错误:- zebra: error while loading shared libraries: libzebra.so.0: cannot open shared object file: No such file or directory 解决方法:在/usr/local/lib 下有 lrwxrwxrwx 1 root root l
11、ibzebra.so - libzebra.so.0.0.0 lrwxrwxrwx 1 root root libzebra.so.0 - libzebra.so.0.0.0 -rwxr-xr-x 1 root root libzebra.so.0.0.0 这可能是由于 /lib 库出现问题:则rootubuntu:/usr/local/lib# cp libzebra.* /lib rootubuntu:/usr/local/lib# rm libzebra.* Starting zebra. vty_read_config: failed to open configuration fil
12、e /usr/local/etc/zebra.conf: Permission denied cant open configuration file /usr/local/etc/quagga/zebra.conf 解决方 法: 可以看到 /usr/local/etc/没有 zebra.conf(它是存放 zebra 相关用户,密码信息等),但有 zebra.conf.sample rootubuntu:/usr/local/etc# cp zebra.conf.sample zebra.conf ( 七) 执行 quagga 的 shell 程序 root/mnt/hgfs/linuxsh
13、are/quagga-0.99.16# vtysh 接着 进入 guagga 的 shell 界面:Hello, this is Quagga (version 0.99.16). Copyright 1996-2005 Kunihiro Ishiguro, et al. ubuntu# 注: 在相应quagga 相应服务启动之后,输入 vtysh 作用就是通过相应界面,输入命令行控制后台执行的 相应操作。2. 熟悉使用 quagga 软件 (一) quagga 软件命 令行部分结构ripd AUTH_NODE, VIEW_NODE, cmd_element cmd ospd AUTH_ENA
14、BLE_NODE 。 ENABLE_NODE cmd_element .。 quagga osp6d CONFIG_NODE 。(zebra) 。 cmd_element cmd ripngd 。 HIDDENDEBUG_NODE, bgpd VTY_NODE Vtysh 是 quagga 软件的一个shell ,所有命令行由此输入执 行。 以上 _NODE、cmd_element 、cmd 是层层嵌套, 储存在结构体struct _vector 中 数据结构如下:/* struct for vector */ struct _vector unsigned int active; /* nu
15、mber of active slots */ unsigned int alloced; /* number of allocated slot */ void *index; /* index to data */ ; typedef struct _vector *vector; 注释: 此处二级指针index 指向 cmd_element 和 vecto 数据结构。现逐层分析: _NODE a) _NODE 数据结构struct cmd_node enum node_type node; /* Node index. */ const char *prompt; /* Prompt c
16、haracter at vty interface. */ int vtysh; /* Is this nodes configuration goes to vtysh ? */ int (*func) (struct vty *); /* Nodes configuration write function */ vector cmd_vector; /* Vector of this nodes command list. */ ; b) _NODE 定义枚举类型、enum node_type AUTH_NODE, /* Authentication mode of vty interf
17、ace. */ VIEW_NODE, /* View node. Default mode of vty interface. */ AUTH_ENABLE_NODE, /* Authentication mode for change enable. */ ENABLE_NODE, /* Enable node. c) _NODE 赋初值(以view_node 为例)static struct cmd_node view_node = VIEW_NODE, “%s “, ; vector cmdvec = NULL; d) _NODE 初始化(把节点都放到 (struct _vector )
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Quagga 路由 软件 安装 命令行 结构 分析
链接地址:https://www.31doc.com/p-4741558.html