在之前的教程中,我對如何簡單地使用Quagga把CentOS系統變成一個不折不扣地OSPF路由器做了一些介紹。Quagga是一個開源路由軟件套件。在這個教程中,我將會重點講講如何把一個Linux系統變成一個BGP路由器,還是使用Quagga,演示如何建立BGP與其它BGP路由器對等。
在我們進入細節之前,一些BGP的背景知識還是必要的。邊界網關協議(即BGP)是互聯網的域間路由協議的實際標准。在BGP術語中,全球互聯網是由成千上萬相關聯的自治系統(AS)組成,其中每一個AS代表每一個特定運營商提供的一個網絡管理域(據說,美國前總統喬治.布什都有自己的 AS 編號)。
為了使其網絡在全球范圍內路由可達,每一個AS需要知道如何在英特網中到達其它的AS。這時候就需要BGP出來扮演這個角色了。BGP是一個AS去與相鄰的AS交換路由信息的語言。這些路由信息通常被稱為BGP線路或者BGP前綴。包括AS號(ASN;全球唯一號碼)以及相關的IP地址塊。一旦所有的BGP線路被當地的BGP路由表學習和記錄,每一個AS將會知道如何到達互聯網的任何公網IP。
在不同域(AS)之間路由的能力是BGP被稱為外部網關協議(EGP)或者域間協議的主要原因。就如一些路由協議,例如OSPF、IS-IS、RIP和EIGRP都是內部網關協議(IGPs)或者域內路由協議,用於處理一個域內的路由.
在這個教程中,讓我們來使用以下拓撲。
我們假設運營商A想要建立一個BGP來與運營商B對等交換路由。它們的AS號和IP地址空間的細節如下所示:
運營商 A: ASN (100), IP地址空間 (100.100.0.0/22), 分配給BGP路由器eth1網卡的IP地址(100.100.1.1)
運營商 B: ASN (200), IP地址空間 (200.200.0.0/22), 分配給BGP路由器eth1網卡的IP地址(200.200.1.1)
路由器A和路由器B使用100.100.0.0/30子網來連接到對方。從理論上來說,任何子網從運營商那裡都是可達的、可互連的。在真實場景中,建議使用掩碼為30位的公網IP地址空間來實現運營商A和運營商B之間的連通。
如果Quagga還沒安裝好,我們可以使用yum來安裝Quagga。
如果你正在使用的是CentOS7系統,你需要應用一下策略來設置SELinux。否則,SElinux將會阻止Zebra守護進程寫入它的配置目錄。如果你正在使用的是CentOS6,你可以跳過這一步。
Quagga軟件套件包含幾個守護進程,這些進程可以協同工作。關於BGP路由,我們將把重點放在建立以下2個守護進程。
在Quagga被安裝後,下一步就是配置Zebra來管理BGP路由器的網絡接口。我們通過創建一個Zebra配置文件和啟用日志記錄來開始第一步。
在CentOS6系統中:
在CentOS7系統中:
Quagga提供了一個叫做vtysh特有的命令行工具,你可以輸入與路由器廠商(例如Cisco和Juniper)兼容和支持的命令。我們將使用vtysh shell來配置BGP路由在教程的其余部分。
啟動vtysh shell 命令,輸入:
提示將被改成該主機名,這表明你是在vtysh shell中。
現在我們將使用以下命令來為Zebra配置日志文件:
永久保存Zebra配置:
在路由器B操作同樣的步驟。
下一步,我們將在可用的接口上配置對等的IP地址。
配置eth0接口的參數:
繼續配置eth1接口的參數:
現在確認配置:
如果一切看起來正常,別忘記保存配置。
同樣地,在路由器B重復一次配置。
在我們繼續下一步之前,確認下彼此的IP是可以ping通的。
下一步,我們將繼續配置BGP對等和前綴設置。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-01/111432p2.htm