Quagga:开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件
目录
quagga简介
https://www.jianshu.com/p/300acac7801f
Quagga是一个开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件。它提供的CLI命令和Cisco IOS类似 ,可以使用 quagga 将linux 机器打造成一台功能完备的路由器。
https://blog.csdn.net/bestboyxie/article/details/53925894
安装Quagga的目的是使装有linux系统的电脑变成一台路由器;其主要的功能支持动态+静态路由的配置功能;
通过简单的编译、安装就可以让一台linux化身成为路由器,提供类似于思科的命令行配置模型;可以提供给用户配置路由相关信息的用户界面;
运行上:Quagga主要结构是以zebra守护进程作为核心,其他动态路由模块RIP/OSPF/BGP这类的程序做为client;
- 支持的路由协议:RIP、OSPF、BGP等协议
- RIPv1、RIPv2、OSPFv2适用于Ipv4的自治域系统内部网络路由协议。
- BGP-4是用于Ipv4的自治域系统之间的外部网络路由协议。
- RIPng、OSPFv3、BGP-4+主要扩展对Ipv6的支持。
BGP OSPF RIP程序类似。其程序只创建与自己协议相关的socket。用户接受与发送协议报文;添加删除路由的操作是由zebra来处理的;
zebra提供的主要功能
- 1.监听内核netlink消息,创建删除接口、ip、路由等信息;
- 2.设置内核ip forward参数;
- 3.当由内核事件发生时通知给OSPF RIP BGP;
- 4.为OSPF BGP RIP等路由程序提供接口添加删除路由;
- 5.相应cli命令,做配置行为;
动态路由(OSPF /RIP/BGP)程序功能:
- 1.作为zebra的client。接收zebra通知的事件(接口,路由,ip信息)
- 2.自己创建协议的socket收发报文完成协议功能;
- 3.相应cli命令,做配置行为
特性
模块化设计:Quagga基于模块化方案的设计,即对每一个路由协议使用单独的守护进程。
运行速度快:因为使用了模块化的设计,使得Quagga的运行速度比一般的路由选择程序要快。
可靠性高:在所有软件模块都失败的情况下,路由器可以继续保持连接并且daemons也会继续运行。故障诊断不必离线的状态下被诊断和更正
支持Ipv6:Quagga不仅支持Ipv4,还支持Ipv6。
Quagga的运行机制由于Quagga采用模块化的设计,因此Quagga运行时要运行多个守护进程,包括ripd ripngd ospfd ospf6d bgpd 和Zebra。 其中,Zebra守护进程用来更新内核的路由表,而其他的守护进程负责进行相应路由选择协议的路由更新。
进程zebra: 路由接口声明和静态路由bgpd: 支持BGPospfd: 支持OSPFospf6d: 支持IPv6 OSPFripd: 支持RIP v2ripngd: 支持RIP IPv6
安装
# 检查是否安装了 quagga
rpm-qquagga
# 安装 quagga
yum install quagga
查看 quagga 配置文件
vim /etc/services
# Ports numbered 2600 through 2606 are used by the zebra package without
# being registred. The primary names are the registered names, and the
# unregistered names used by zebra are listed as aliases.
hpstgmgr2600/tcp zebrasrv# HPSTGMGR
hpstgmgr2600/udp# HPSTGMGR
discp-client2601/tcp zebra# discp client
discp-client2601/udp# discp client
discp-server2602/tcp ripd# discp server
discp-server2602/udp# discp server
servicemeter2603/tcp ripngd# Service Meter
servicemeter2603/udp# Service Meter
nsc-ccs2604/tcp ospfd# NSC CCS
nsc-ccs2604/udp# NSC CCS
nsc-posa2605/tcp bgpd# NSC POSA
nsc-posa2605/udp# NSC POSA
netmon2606/tcp ospf6d# Dell Netmon
分析配置文件Quagga 各进程有各自的中端口或 vty,在 /etc/services 可以找到对 quagga 进行配置就是对各进程进行配置,并且路由器的配置和路由协议的配置是分开不同进程的quagga 里的 zebra 进程,相当于一个路由器,对 zebra 配置相当于对路由器进行基本配置(基本配置,路由协议不是在 zebra 里面配置的)。quagga 里的 ripd、ospfd、bgpd 等进程相当于不通的路由协议,要启动哪一种协议,就对对应的协议进行配置
quagga 进程的配置命令多用 ? 查看所处模式下可以使用的命令及其格式
查看 quagga 配置
cd /etc/quagga
启动
service zebra start
这样 zebra 就以守护进程的方式启动了,其他的参考 zebra -h
配置 zebra配置 zebra 就是配置路由器
进入路由器配置模式/etc/services 中看到 zebra 的端口是 2601,可以 telnet 连接zebra
BGPBroder gataway protocol,边界网关协议,是自主网络系统中官网关之间交换路由信息的协议。边界路由器常用语互联网的网关之间,路由表包含已知路由器的列表、路由器能够达到的地址以及到达每个路由器的路径的跳数使用BGP协议的主机一般也使用TCP。当网络检测到某台主机发憷变化时,就会发送新的路由表BGP是距离矢量协议,但是与(通告目的的地址跳数)RIP不同的是,BGP列举了到每个目的地址的路由(自制系统达到目的地的***)。这样就排除了一些距离矢量的问题,BGP采用16位数字表示自治系统表示。
上一篇: 剑指offer63. 股票的最大利润