Quagga是一個開源路由軟件套件。在這個教程中,我將會重點講講如何把一個Linux系統(tǒng)變成一個BGP路由器,還是使用Quagga,演示如何建立BGP與其它BGP路由器對等。
在我們進入細節(jié)之前,一些BGP的背景知識還是必要的。邊界網(wǎng)關(guān)協(xié)議(即BGP)是互聯(lián)網(wǎng)的域間路由協(xié)議的實際標(biāo)準(zhǔn)。在BGP術(shù)語中,全球互聯(lián)網(wǎng)是由成千上萬相關(guān)聯(lián)的自治系統(tǒng)(AS)組成,其中每一個AS代表每一個特定運營商提供的一個網(wǎng)絡(luò)管理域(據(jù)說,美國前總統(tǒng)喬治.布什都有自己的 AS 編號)。
為了使其網(wǎng)絡(luò)在全球范圍內(nèi)路由可達,每一個AS需要知道如何在英特網(wǎng)中到達其它的AS。這時候就需要BGP出來扮演這個角色了。BGP是一個AS去與相鄰的AS交換路由信息的語言。這些路由信息通常被稱為BGP線路或者BGP前綴。包括AS號(ASN;全球唯一號碼)以及相關(guān)的IP地址塊。一旦所有的BGP線路被當(dāng)?shù)氐腂GP路由表學(xué)習(xí)和記錄,每一個AS將會知道如何到達互聯(lián)網(wǎng)的任何公網(wǎng)IP。
在不同域(AS)之間路由的能力是BGP被稱為外部網(wǎng)關(guān)協(xié)議(EGP)或者域間協(xié)議的主要原因。就如一些路由協(xié)議,例如OSPF、IS-IS、RIP和EIGRP都是內(nèi)部網(wǎng)關(guān)協(xié)議(IGPs)或者域內(nèi)路由協(xié)議,用于處理一個域內(nèi)的路由.
測試方案
在這個教程中,讓我們來使用以下拓撲。
我們假設(shè)運營商A想要建立一個BGP來與運營商B對等交換路由。它們的AS號和IP地址空間的細節(jié)如下所示:
路由器A和路由器B使用100.100.0.0/30子網(wǎng)來連接到對方。從理論上來說,任何子網(wǎng)從運營商那里都是可達的、可互連的。在真實場景中,建議使用掩碼為30位的公網(wǎng)IP地址空間來實現(xiàn)運營商A和運營商B之間的連通。
在 CentOS中安裝Quagga
如果Quagga還沒安裝好,我們可以使用yum來安裝Quagga。
如果你正在使用的是CentOS7系統(tǒng),你需要應(yīng)用一下策略來設(shè)置SELinux。否則,SElinux將會阻止Zebra守護進程寫入它的配置目錄。如果你正在使用的是CentOS6,你可以跳過這一步。
Quagga軟件套件包含幾個守護進程,這些進程可以協(xié)同工作。關(guān)于BGP路由,我們將把重點放在建立以下2個守護進程。
配置日志記錄
在Quagga被安裝后,下一步就是配置Zebra來管理BGP路由器的網(wǎng)絡(luò)接口。我們通過創(chuàng)建一個Zebra配置文件和啟用日志記錄來開始第一步。
在CentOS6系統(tǒng)中:
在CentOS7系統(tǒng)中:
Quagga提供了一個叫做vtysh特有的命令行工具,你可以輸入與路由器廠商(例如Cisco和Juniper)兼容和支持的命令。我們將使用vtysh shell來配置BGP路由在教程的其余部分。
啟動vtysh shell 命令,輸入:
提示將被改成該主機名,這表明你是在vtysh shell中。
現(xiàn)在我們將使用以下命令來為Zebra配置日志文件:
永久保存Zebra配置:
在路由器B操作同樣的步驟。
配置對等的IP地址
下一步,我們將在可用的接口上配置對等的IP地址。
配置eth0接口的參數(shù):
繼續(xù)配置eth1接口的參數(shù):
現(xiàn)在確認配置:
如果一切看起來正常,別忘記保存配置。
同樣地,在路由器B重復(fù)一次配置。
在我們繼續(xù)下一步之前,確認下彼此的IP是可以ping通的。
配置BGP對等
Quagga守護進程負責(zé)BGP的服務(wù)叫bgpd。首先我們來準(zhǔn)備它的配置文件。
在CentOS6系統(tǒng)中:
在CentOS7中:
現(xiàn)在,讓我們來進入Quagga 的shell。
第一步,我們要確認當(dāng)前沒有已經(jīng)配置的BGP會話。在一些版本,我們可能會發(fā)現(xiàn)一個AS號為7675的BGP會話。由于我們不需要這個會話,所以把它移除。
我們將移除一些預(yù)先配置好的BGP會話,并建立我們所需的會話取而代之。
路由器B將用同樣的方式來進行配置,以下配置提供作為參考。
當(dāng)相關(guān)的路由器都被配置好,兩臺路由器之間的對等將被建立?,F(xiàn)在讓我們通過運行下面的命令來確認:
從輸出中,我們可以看到"State/PfxRcd"部分。如果對等關(guān)閉,輸出將會顯示"Idle"或者"Active'。請記住,單詞'Active'這個詞在路由器中總是不好的意思。它意味著路由器正在積極地尋找鄰居、前綴或者路由。當(dāng)對等是up狀態(tài),"State/PfxRcd"下的輸出狀態(tài)將會從特殊鄰居接收到前綴號。
在這個例子的輸出中,BGP對等只是在AS100和AS200之間呈up狀態(tài)。因此沒有前綴被更改,所以最右邊列的數(shù)值是0。
配置前綴通告
正如一開始提到,AS 100將以100.100.0.0/22作為通告,在我們的例子中AS 200將同樣以200.200.0.0/22作為通告。這些前綴需要被添加到BGP配置如下。
在路由器-A中:
在路由器-B中:
在這一點上,兩個路由器會根據(jù)需要開始通告前綴。
測試前綴通告
首先,讓我們來確認前綴的數(shù)量是否被改變了。
為了查看所接收的更多前綴細節(jié),我們可以使用以下命令,這個命令用于顯示鄰居100.100.0.2所接收到的前綴總數(shù)。
查看哪一個前綴是我們從鄰居接收到的:
我們也可以查看所有的BGP路由器:
以上的命令都可以被用于檢查哪個路由器通過BGP在路由器表中被學(xué)習(xí)到。
代碼: K - 內(nèi)核路由, C - 已鏈接 , S - 靜態(tài) , R - 路由信息協(xié)議 , O - 開放式最短路徑優(yōu)先協(xié)議,
I - 中間系統(tǒng)到中間系統(tǒng)的路由選擇協(xié)議, B - 邊界網(wǎng)關(guān)協(xié)議, > - 選擇路由, * - FIB 路由
BGP學(xué)習(xí)到的路由也將會在Linux路由表中出現(xiàn)。
最后,我們將使用ping命令來測試連通。結(jié)果將成功ping通。
總而言之,本教程將重點放在如何在CentOS系統(tǒng)中運行一個基本的BGP路由器。這個教程讓你開始學(xué)習(xí)BGP的配置,一些更高級的設(shè)置例如設(shè)置過濾器、BGP屬性調(diào)整、本地優(yōu)先級和預(yù)先路徑準(zhǔn)備等,我將會在后續(xù)的教程中覆蓋這些主題。
標(biāo)簽:通化 汕頭 三亞 南充 昌都 濰坊 涼山 遼寧
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在CentOS中制作BGP路由的教程》,本文關(guān)鍵詞 在,CentOS,中,制作,BGP,路由,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。