1. 程式人生 > 其它 >Quagga:開源的基於Zebra實現了RIP, OSPF, BGP的動態路由軟體

Quagga:開源的基於Zebra實現了RIP, OSPF, BGP的動態路由軟體

技術標籤:【計算機網路】

目錄

quagga簡介

特性

安裝


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