欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Quagga:开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件

程序员文章站 2022-07-10 20:14:24
...

目录

quagga简介

特性

安装


 

quagga简介

https://www.jianshu.com/p/300acac7801f


Quagga是一个开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件。它提供的CLI命令和Cisco IOS类似 ,可以使用 quagga 将linux 机器打造成一台功能完备的路由器。

Quagga:开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件

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位数字表示自治系统表示。

 

相关标签: 【计算机网络】