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