利用Quagga軟件 將你的CentOS設(shè)備變成OSPF路由器的方法
Quagga是一款開源路由軟件套件,它可以用來將你的Linux設(shè)備變成一個(gè)功能完備的路由器,支持幾種主要的路由協(xié)議,比如RIP、OSPF、BGP或ISIS路由器。它完全為IPv4和IPv6作好了準(zhǔn)備,還支持路由/前綴過濾。萬一你生產(chǎn)環(huán)境中的路由器出現(xiàn)了故障,手頭又沒有備用的路由器,死等替換件送來,Quagga就能派得上大用場(chǎng)。只要配置得當(dāng),Quagga甚至可以配置成生產(chǎn)環(huán)境中的路由器。
我們?cè)诒窘坛讨袑⑦B接兩個(gè)假設(shè)的分支機(jī)構(gòu)網(wǎng)絡(luò)(比如192.168.1.0/24和172.17.1.0/24),這兩個(gè)網(wǎng)絡(luò)之間采用了一條專用的鏈路。
我們的CentOS設(shè)備位于這條專用鏈路的兩端。這兩個(gè)設(shè)備的主機(jī)名稱分別被設(shè)為“site-A-RTR”和“site-B-RTR”。下面提供了IP地址的信息信息。
Site-A:192.168.1.0/24
Site-B:172.16.1.0/24
兩個(gè)Linux設(shè)備之間的對(duì)等:10.10.10.0/30
Quagga軟件包含有幾個(gè)協(xié)同運(yùn)行的后臺(tái)程序。我們?cè)诒窘坛讨袑⒅亟榻B設(shè)置下列后臺(tái)程序。
Zebra:核心后臺(tái)程序,負(fù)責(zé)內(nèi)核接口和靜態(tài)路由。
Ospfd:IPv4 OSPF后臺(tái)程序。
將Quagga安裝到CentOS上
我們首先使用yum來安裝Quagga。
# yum install quagga
在CentOS 7上,SELinux在默認(rèn)情況下阻止/usr/sbin/zebra寫入到其配置目錄中。這個(gè)SELinux策略干擾了我們所要描述的安裝過程,于是我們想禁止該策略。為此,關(guān)閉SELinux(不推薦),或者啟用“zebra_write_config”布爾表達(dá)式,如下所示。如果你使用CentOS 6,可以跳過這一步。
# setsebool -P zebra_write_config 1
要是不進(jìn)行這種更改,我們?cè)谠噲D從Quagga的命令外殼里面保存Zebra配置時(shí),就會(huì)看到下列錯(cuò)誤。
Can't open configuration file /etc/quagga/zebra.conf.OS1Uu5.
(無法打開配置文件/etc/quagga/zebra.conf.OS1Uu5。)
Quagga安裝完畢后,我們就配置必要的對(duì)等IP地址,并更新OSPF設(shè)置。Quagga隨帶一個(gè)名為vtysh的命令行外殼。vtysh里面使用的Quagga命令類似思科或瞻博等各大路由器廠商的那些命令。
第一個(gè)階段:配置Zebra
我們首先創(chuàng)建一個(gè)Zebra配置文件,然后啟動(dòng)Zebra后臺(tái)程序。
# cp /usr/share/doc/quagga-XXXXX/zebra.conf.sample /etc/quagga/zebra.conf
# service zebra start
# chkconfig zebra on
啟動(dòng)vtysh命令外殼:
# vtysh
首先,我們?yōu)閆ebra配置日志文件。為此,輸入下列內(nèi)容,進(jìn)入vtysh中的全局配置模式:
site-A-RTR# configure terminal
并指定日志文件位置,然后退出該模式:
site-A-RTR(config)# log file /var/log/quagga/quagga.log
site-A-RTR(config)# exit
永久性保存配置:
site-A-RTR# write
下一步,我們?cè)诒匾獣r(shí)確定可用接口,然后配置IP地址。
site-A-RTR# show interface
Interface eth0 is up, line protocol detection is disabled
. . . . .
Interface eth1 is up, line protocol detection is disabled
. . . . .
配置eth0參數(shù):
site-A-RTR# configure terminal
site-A-RTR(config)# interface eth0
site-A-RTR(config-if)# ip address 10.10.10.1/30
site-A-RTR(config-if)# description to-site-B
site-A-RTR(config-if)# no shutdown
繼續(xù)配置eth1參數(shù):
site-A-RTR(config)# interface eth1
site-A-RTR(config-if)# ip address 192.168.1.1/24
site-A-RTR(config-if)# description to-site-A-LAN
site-A-RTR(config-if)# no shutdown
現(xiàn)在驗(yàn)證配置:
site-A-RTR(config-if)# do show interface
Interface eth0 is up, line protocol detection is disabled
. . . . .
inet 10.10.10.1/30 broadcast 10.10.10.3
. . . . .
Interface eth1 is up, line protocol detection is disabled
. . . . .
inet 192.168.1.1/24 broadcast 192.168.1.255
. . . . .
site-A-RTR(config-if)# do show interface description
Interface Status Protocol Description
eth0 up unknown to-site-B
eth1 up unknown to-site-A-LAN
永久性保存配置:
site-A-RTR(config-if)# do write
針對(duì)site-B服務(wù)器,也重復(fù)IP地址配置這個(gè)步驟。
要是一切順利,你應(yīng)該能夠從site-A服務(wù)器來ping檢測(cè)site-B的對(duì)等IP 10.10.10.2。
請(qǐng)注意:一旦Zebra后臺(tái)程序已啟動(dòng),用vtysh的命令行接口進(jìn)行的任何更改會(huì)立即生效。不需要在配置變更后重啟Zebra后臺(tái)程序。
第2個(gè)階段:配置OSPF
我們先創(chuàng)建一個(gè)OSPF配置文件,然后啟動(dòng)OSPF后臺(tái)程序:
# cp /usr/share/doc/quagga-XXXXX/ospfd.conf.sample /etc/quagga/ospfd.conf
# service ospfd start
# chkconfig ospfd on
現(xiàn)在啟動(dòng)vtysh外殼,繼續(xù)進(jìn)行OSPF配置:
# vtysh
進(jìn)入路由器配置模式:
site-A-RTR# configure terminal
site-A-RTR(config)# router ospf
還可以手動(dòng)設(shè)置router-id:
site-A-RTR(config-router)# router-id 10.10.10.1
添加將參與OSPF的網(wǎng)絡(luò):
site-A-RTR(config-router)# network 10.10.10.0/30 area 0
site-A-RTR(config-router)# network 192.168.1.0/24 area 0
永久性保存配置:
site-A-RTR(config-router)# do write
針對(duì)site-B,也重復(fù)類似的OSPF配置:
site-B-RTR(config-router)# network 10.10.10.0/30 area 0
site-B-RTR(config-router)# network 172.16.1.0/24 area 0
site-B-RTR(config-router)# do write
OSPF鄰居現(xiàn)在應(yīng)該會(huì)出現(xiàn)。只要ospfd在運(yùn)行,通過vtysh外殼所作的任何與OSPF有關(guān)的配置變更都會(huì)立即生效,沒必要重啟ospfd。
在下一個(gè)部分,我們將驗(yàn)證已安裝的Quagga環(huán)境。
驗(yàn)證
1. 用ping來測(cè)試
首先,你應(yīng)該能夠從site-A來ping檢測(cè)site-B的局域網(wǎng)了網(wǎng)。確保你的防火墻沒有阻止ping檢測(cè)流量。
[root@site-A-RTR ~]# ping 172.16.1.1 -c 2
2. 檢查路由表
內(nèi)核和Quagga路由表里面應(yīng)該都有必要的路由。
[root@site-A-RTR ~]# ip route
10.10.10.0/30 dev eth0 proto kernel scope link src 10.10.10.1
172.16.1.0/30 via 10.10.10.2 dev eth0 proto zebra metric 20
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
[root@site-A-RTR ~]# vtysh
site-A-RTR# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route
O 10.10.10.0/30 [110/10] is directly connected, eth0, 00:14:29
C>* 10.10.10.0/30 is directly connected, eth0
C>* 127.0.0.0/8 is directly connected, lo
O>* 172.16.1.0/30 [110/20] via 10.10.10.2, eth0, 00:14:14
C>* 192.168.1.0/24 is directly connected, eth1
3. 驗(yàn)證OSPF鄰居和路由器
在vtysh外殼里面,你可以檢查必要的鄰居有沒有出現(xiàn),是否記住合適的路由。
[root@site-A-RTR ~]# vtysh
site-A-RTR# show ip ospf neighbor
以上就是使用Quagga配置基本的OSPF。通常來說,Quagga讓我們很容易配置普通的Linux設(shè)備,以便支持OSPF、RIP或BGP等動(dòng)態(tài)路由協(xié)議。支持Quagga的設(shè)備能夠與你網(wǎng)絡(luò)中可能擁有的其他任何路由器進(jìn)行聯(lián)系、交換路由。
由于Quagga支持幾種主要的開放標(biāo)準(zhǔn)路由協(xié)議,它在許多場(chǎng)景下可能是優(yōu)先的選擇。更棒的是,Quagga的命令行接口與思科或瞻博等各大路由器廠商的命令行接口幾乎一樣;這樣一來,部署和維護(hù)設(shè)備Quagga設(shè)備就顯得非常容易。謝謝閱讀,希望能幫到大家,請(qǐng)繼續(xù)關(guān)注腳本之家,我們會(huì)努力分享更多優(yōu)秀的文章。
相關(guān)文章

集成系統(tǒng)級(jí)Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內(nèi)測(cè)成果,在 AI 能力、內(nèi)核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進(jìn)行了更新2026-04-13
又一代老硬件退場(chǎng)! Linux 內(nèi)核正式放棄Intel 486 CPU
在過去的幾十年間,CPU 的架構(gòu)已經(jīng)經(jīng)歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個(gè),當(dāng)前,i486 的CPU處理器已經(jīng)夠老,從 Linux 7.1 開始將不再有對(duì)2026-04-09
趕緊收藏! 全網(wǎng)最全 Linux 命令總結(jié)
我把 Linux 中最常用、最實(shí)用、最常被問到的命令按照實(shí)際使用場(chǎng)景分類整理,方便你快速查閱和記憶,內(nèi)容覆蓋日常運(yùn)維、開發(fā)調(diào)試、性能分析、文件處理、網(wǎng)絡(luò)、安全、系統(tǒng)管2026-04-08
一分鐘內(nèi)檢查L(zhǎng)inux服務(wù)器性能? 9個(gè)性能檢測(cè)常用的基本命令
今天我們來看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機(jī)器的負(fù)載情況,詳細(xì)請(qǐng)看下文介紹2026-03-18
從零基礎(chǔ)到精通! 適合高級(jí)用戶的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領(lǐng)域靈活性和可定制性的基石,提供了大量滿足不同用戶需求的發(fā)行版,今天分享適合高級(jí)用戶的15款Linux發(fā)行版2026-03-10
開箱即用? 這4個(gè)高手級(jí)Linux發(fā)行版遠(yuǎn)沒你想象的那么安全易用
如果你正在糾結(jié)用哪個(gè)發(fā)行版?零基礎(chǔ)新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進(jìn)階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個(gè)SSH客戶端,今天整理找到的8 款 SSH / 終端工具,從免費(fèi)開源到企業(yè)級(jí)商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對(duì)比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶,即高級(jí)用戶root,普通用戶,高級(jí)用戶root可以在系統(tǒng)中做任何事情,普通用戶僅可在Linux系統(tǒng)中做有限的事情,下面我們就來看看切換方法2026-02-28
揭秘當(dāng)前登錄用戶的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個(gè)簡(jiǎn)單但強(qiáng)大的工具,它能幫助我們輕松獲取當(dāng)前登錄用戶的用戶名,今天,我們就來深入探索一下這個(gè)命令的工作原理、使用方法和最佳實(shí)踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關(guān)系緩存在本地的機(jī)制,可以加快域名解析速度,并減輕 DNS 服務(wù)器的負(fù)載2026-02-26



