用 CentOS 做一個 BGP 路由器

來源:互聯網
上載者:User

標籤:

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之間的連通。

在 CentOS中安裝Quagga

如果Quagga還沒安裝好,我們可以使用yum來安裝Quagga。

# yum install quagga

如果你正在使用的是CentOS7系統,你需要應用一下策略來設定SELinux。否則,SElinux將會阻止Zebra守護進程寫入它的配置目錄。如果你正在使用的是CentOS6,你可以跳過這一步。

# setsebool -P zebra_write_config 1

Quagga軟體套件包含幾個守護進程,這些進程可以協同工作。關於BGP路由,我們將把重點放在建立以下2個守護進程。

 

Zebra:一個核心守護進程用於核心介面和靜態路由.

BGPd:一個BGP守護進程.

配置日誌記錄

在Quagga被安裝後,下一步就是配置Zebra來管理BGP路由器的網路介面。我們通過建立一個Zebra設定檔和啟用日誌記錄來開始第一步。

# cp /usr/share/doc/quagga-XXXXX/zebra.conf.sample /etc/quagga/zebra.conf

在CentOS6系統中:

# service zebra start# chkconfig zebra on

在CentOS7系統中:

# systemctl start zebra# systemctl enable zebra

Quagga提供了一個叫做vtysh特有的命令列工具,你可以輸入與路由器廠商(例如Cisco和Juniper)相容和支援的命令。我們將使用vtysh shell來配置BGP路由在教程的其餘部分。

啟動vtysh shell 命令,輸入:

# vtysh

提示將被改成該主機名稱,這表明你是在vtysh shell中。

Router-A#

現在我們將使用以下命令來為Zebra配置記錄檔:

Router-A# configure terminalRouter-A(config)# log file /var/log/quagga/quagga.logRouter-A(config)# exit

永久儲存Zebra配置:

Router-A# write

在路由器B操作同樣的步驟。

配置對等的IP地址

下一步,我們將在可用的介面上配置對等的IP地址。

Router-A# show interface #顯示介面資訊
Interface eth0 is up, line protocol detection is disabled. . . . .Interface eth1 is up, line protocol detection is disabled. . . . .

配置eth0介面的參數:

site-A-RTR# configure terminalsite-A-RTR(config)# interface eth0site-A-RTR(config-if)# ip address 100.100.0.1/30site-A-RTR(config-if)# description "to Router-B"site-A-RTR(config-if)# no shutdownsite-A-RTR(config-if)# exit

繼續配置eth1介面的參數:

site-A-RTR(config)# interface eth1site-A-RTR(config-if)# ip address 100.100.1.1/24site-A-RTR(config-if)# description "test ip from provider A network"site-A-RTR(config-if)# no shutdownsite-A-RTR(config-if)# exit

現在確認配置:

Router-A# show interface
Interface eth0 is up, line protocol detection is disabled  Description: "to Router-B"  inet 100.100.0.1/30 broadcast 100.100.0.3Interface eth1 is up, line protocol detection is disabled  Description: "test ip from provider A network"  inet 100.100.1.1/24 broadcast 100.100.1.255
Router-A# show interface description #顯示介面描述
Interface       Status  Protocol  Descriptioneth0            up      unknown   "to Router-B"eth1            up      unknown   "test ip from provider A network"

如果一切看起來正常,別忘記儲存配置。

Router-A# write

同樣地,在路由器B重複一次配置。

在我們繼續下一步之前,確認下彼此的IP是可以ping通的。

Router-A# ping 100.100.0.2
PING 100.100.0.2 (100.100.0.2) 56(84) bytes of data.64 bytes from 100.100.0.2: icmp_seq=1 ttl=64 time=0.616 ms

下一步,我們將繼續配置BGP對等和首碼設定。

  • 本文來自:Linux教程網

用 CentOS 做一個 BGP 路由器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: