0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

BGP進(jìn)階:BGP基礎(chǔ)實驗配置

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 作者:圈圈 ? 2022-11-14 11:01 ? 次閱讀

實驗拓?fù)?/p>

實驗需求

R1、R2、R3屬于AS123,R4屬于AS 400;

AS123內(nèi)的R1、R2、R3運行OSPF,通告各自直連接口,注意OSPF域的工作范圍;

R3-R4之間建立eBGP鄰居關(guān)系,R2暫時不運行BGP,R1-R3之間建立iBGP鄰居關(guān)系,所有的BGP鄰居關(guān)系基于直連接口建立;在R4上創(chuàng)建Loopback0接口并將接口IP地址設(shè)置為4.4.4.4/32,同時將該條直連路由通告到BGP,要求R1的路由表中能看到4.4.4.4/32;

修改BGP配置,使得R1、R3基于Loopback接口建立iBGP鄰居關(guān)系,R1、R3的Loopback接口地址分別為1.1.1.1/32及3.3.3.3/32;

要求R1能夠ping通4.4.4.4。

實驗步驟及配置

所有設(shè)備完成接口IP地址的配置(這部分配置不再貼出)

R1、R2、R3運行OSPF;R1、R3建立IBGP鄰居關(guān)系,R3、R4建立EBGP鄰居關(guān)系

R1的配置如下

[R1]ospf1router-id1.1.1.1
[R1-ospf-1]area0
[R1-ospf-1-area-0.0.0.0]network10.1.12.00.0.0.255
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]quit

[R1]bgp123#進(jìn)入BGP進(jìn)程,AS號為123
[R1-bgp]router-id1.1.1.1#配置BGProuterID
[R1-bgp]peer10.1.23.3as-number123#配置BGP鄰居,由于鄰居的AS號與本地一致,因此兩者之間為iBGP鄰居關(guān)系

R2的配置如下(R2先不運行BGP)

[R2]ospf1router-id2.2.2.2
[R2-ospf-1]area0
[R2-ospf-1-area-0.0.0.0]network10.1.12.00.0.0.255
[R2-ospf-1-area-0.0.0.0]network10.1.23.00.0.0.255
[R2-ospf-1-area-0.0.0.0]quit
[R2-ospf-1]quit

R3的配置如下:

[R3]ospf1router-id3.3.3.3
[R3-ospf-1]area0
[R3-ospf-1-area-0.0.0.0]network10.1.23.00.0.0.255
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]quit

[R3]bgp123
[R3-bgp]router-id3.3.3.3
[R3-bgp]peer10.1.34.4as-number400#配置eBGP鄰居R4
[R3-bgp]peer10.1.12.1as-number123#配置iBGP鄰居R1

R4的配置如下:

[R4]interfaceloopback0
[R4-loopback0]ipaddress4.4.4.432

[R4]bgp400
[R4-bgp]router-id4.4.4.4
[R4-bgp]peer10.1.34.3as-number123
[R4-bgp]network4.4.4.432#把本地直連路由network進(jìn)BGP
d8b97fdc-62e2-11ed-8abf-dac502259ad0.png
[R3]displaybgprouting-table
BGPLocalrouterIDis10.1.23.3
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:1
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>4.4.4.4/3210.1.34.400400i

我們看到R3已經(jīng)學(xué)習(xí)到了R4傳遞過來的BGP路由4.4.4.4/32。并且該條BGP路由的NextHop屬性值為10.1.34.4,這個下一跳是可達(dá)的,因此該條路由在R3的BGP表里有標(biāo)記“* >”,其中“*”號表示這條路由是可用(Valid)的,而“>”則表示這條路由是去往該目的地最優(yōu)(Best)的路由。再到在R3上查看路由表:

[R3]displayiprouting-tableprotocolbgp
Destination/MaskProtoPreCostFlagsNextHopInterface
4.4.4.4/32EBGP2550D10.1.34.4GigabitEthernet0/0/1

該條BGP路由由于是best,因此被裝載進(jìn)了路由表。那么,既然在R3上,這條BGP路由是best的,它就會傳遞給自己的iBGP鄰居R1,在R1上查看BGP表。

[R1]displaybgprouting-table
NetworkNextHopMEDLocPrfPrefValPath/Ogn
i4.4.4.4/3210.1.34.401000400i

我們看到,R1的BGP表里,已經(jīng)有4.4.4.4/32的路由,而這條路由NextHop屬性值是10.1.34.4,但是R1在本地路由表中沒有到達(dá)10.1.34.0/24的路由,因此此時BGP路由4.4.4.4/32的下一跳不可達(dá),該BGP條目則不可用(在BGP表中沒有“ * ”星號標(biāo)記),既然不可用,自然就不能裝載進(jìn)路由表中使用。那么怎么解決這個問題呢?一個最簡單的方法是,為R1配置一條靜態(tài)路由,ip route-static 10.1.34.0 24 10.1.23.3,這樣一來R1的路由表里就有了到達(dá)10.1.34.0/24網(wǎng)段的路由,那么BGP路由4.4.4.4/32的下一跳就可達(dá)了,路由自然也就可用了。但是這種方法有點鉆空子、取巧。另一種方法是,在R3上OSPF進(jìn)程中將10.1.34.0/24網(wǎng)段也注入到OSPF,使得R1能夠通過OSPF學(xué)習(xí)到10.1.34.0/24網(wǎng)段的路由,但是由于R3-R4之間的互聯(lián)鏈路被視為AS外部鏈路,因此10.1.34.0/24作為外部網(wǎng)段往往不會被宣告進(jìn)AS內(nèi)的IGP。那么還有什么其他辦法能解決這個問題?

修改下一跳為自身

BGP是AS-by-AS的路由協(xié)議,而不是router-by-router的路由協(xié)議。在BGP中,next-hop并不意味著是下一臺路由器,而是到達(dá)下一個AS的IP地址。當(dāng)一臺BGP路由器將路由傳遞給自己的eBGP鄰居時,該路由的NextHop屬性值為其BGP更新源地址。如下圖,R4將4.4.4.4/24傳遞給R3時,下一跳為10.1.34.4,也就是R4的GE0/0/0口地址。

當(dāng)一臺BGP路由器將eBGP路由傳遞給自己的iBGP鄰居時,默認(rèn)情況下這些eBGP路由的NextHop屬性值保持不變。因此R3收到R4傳遞過來的eBGP路由,下一跳屬性值為10.1.34.4,那么它將該條路由傳遞給iBGP鄰居R1的時候,路由的下一跳屬性值不會發(fā)生改變,仍然為10.1.34.4。

d8d523a4-62e2-11ed-8abf-dac502259ad0.png

這就造成了我們上面所述的問題,R1由于沒有到達(dá)10.1.34.0/24的路由,因此下一跳地址10.1.34.4不可達(dá),從而導(dǎo)致BGP路由4.4.4.4/32不可用。

有一個方法可以解決這個問題:在R3上使用next-hop-local命令,可修改BGP路由的下一跳屬性值為自身。在下圖中,我們在R3上增加了peer 10.1.12.1 next-hop-local命令,這樣一來當(dāng)R3再更新eBGP路由給R1的時候,這些路由的下一跳屬性值就會被修改為R3自己的更新源地址,而這個地址,R1能夠通過OSPF學(xué)習(xí)到,因此是可達(dá)的。

d8ee4abe-62e2-11ed-8abf-dac502259ad0.png

完成配置后,我們在R1上查看BGP表:

[R1]displaybgprouting-table
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>i4.4.4.4/3210.1.23.301000400i

R3將EBGP路由4.4.4.4/32傳遞給R1時,將路由的下一跳屬性值改成了自身的IP(10.1.23.3),而這個IP對于R1來說是路由可達(dá)的,因此路由優(yōu)化了,并被裝載進(jìn)了路由表。

指定更新源IP

內(nèi)部網(wǎng)關(guān)協(xié)議例如RIP、OSPF等,能夠自動在接口上發(fā)現(xiàn)直連鄰居,但是BGP在這點上卻大不相同,BGP無法自動發(fā)現(xiàn)鄰居,必須手工使用peer命令指定鄰居。BGP路由器之間交互BGP報文時,報文的目的地址就是peer命令所配置的地址,而源地址默認(rèn)則是數(shù)據(jù)包出接口的地址。iBGP鄰居在一個AS內(nèi)部被部署,一般而言,AS內(nèi)部的網(wǎng)絡(luò)是具有一定冗余性的,例如下圖所示,我們在本實驗拓?fù)涞幕A(chǔ)上做了一點小小的修改,在AS123中增加了一臺路由器:R5。R1、R2、R3、R5運行了OSPF?,F(xiàn)在設(shè)想一下,如果R1與R3之間的iBGP鄰居關(guān)系使用物理接口來建,例如R1使用GE0/0/0接口,R3使用GE0/0/0接口的話,則一旦R2發(fā)生故障,R1、R3的GE0/0/0接口都會DOWN掉,于此同時R1、R3的BGP鄰居也就DOWN掉了。但是仔細(xì)觀察我們就會發(fā)現(xiàn),其實R1、R3之間的IP連通性其實還是存在的,經(jīng)過R5的這條冗余路徑完全可以在R2發(fā)生故障時實現(xiàn)R1、R3之間的數(shù)據(jù)互通。因此為了保障iBGP鄰居關(guān)系的穩(wěn)定性,我們提倡在建立iBGP鄰居關(guān)系時,使用Loopback來建立,而不是物理接口。

d90c644a-62e2-11ed-8abf-dac502259ad0.png

思路很簡單,就是在R1及R3上各開設(shè)一個Loopback接口并為這個接口配置IP地址,然后在各自的Loopback接口上激活OSPF,使得OSPF域能夠獲知這兩條Loopback路由。接下來R1、R3之間部署iBGP鄰居時,使用Loopback地址來建,如此一來,即使R2發(fā)生故障,由于R1、R3雙方依然可以通過OSPF學(xué)習(xí)到對端的Loopback路由,所以故障發(fā)生時,R1、R3的BGP鄰居關(guān)系不會DOWN。

回到本實驗,在上文的配置中,我們在R1-R3之間建立iBGP鄰居關(guān)系時,使用的就是物理接口,現(xiàn)在我們將配置做些修改:

d927f8e0-62e2-11ed-8abf-dac502259ad0.png

在R1及R3上創(chuàng)建loopback0,地址分別為1.1.1.1/32及3.3.3.3/32,然后各自將loopback0宣告進(jìn)OSPF,使得彼此都能通過OSPF學(xué)習(xí)到對方的Loopback0路由,再修改BGP的配置,使得R1-R3之間的iBGP鄰居關(guān)系基于Loopback0來建立。

peerx.x.x.xconnect-interfaceintf[ipv4-src-address]

上面這條命令用于指定BGP的更新源地址或接口。

R1增加的配置如下:

[R1]interfaceloopback0
[R1-LoopBack0]ipaddress1.1.1.132
[R1-LoopBack0]quit

[R1]ospf1
[R1-ospf-1]area0
[R1-ospf-1-area-0.0.0.0]network1.1.1.10.0.0.0
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]quit

[R1]bgp123
[R1-bgp]undopeer10.1.23.3
[R1-bgp]peer3.3.3.3as-number123
[R1-bgp]peer3.3.3.3connect-interfaceLoopBack0

由于R1、R3現(xiàn)在是使用Loopback接口來建立鄰居關(guān)系,因此在R1上使用peer命令指定鄰居的時候,必須使用R3的Loopback地址作為鄰居IP。同時使用connect-interface關(guān)鍵字指定本設(shè)備用于和對端建立鄰居關(guān)系的接口,這個接口的地址將作為更新源。

R3的關(guān)鍵性配置如下:

[R3]interfaceloopback0
[R3-LoopBack0]ipaddress3.3.3.332
[R3-LoopBack0]quit

[R3]ospf1
[R3-ospf-1]area0
[R3-ospf-1-area-0.0.0.0]network3.3.3.30.0.0.0
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]quit

[R3]bgp123
[R3-bgp]undopeer10.1.12.1
[R3-bgp]peer1.1.1.1as-number123
[R3-bgp]peer1.1.1.1connect-interfaceLoopBack0
[R3-bgp]peer1.1.1.1next-hop-local

完成上述配置后,R1與R3即會基于Loopback0接口建立鄰居關(guān)系。

完成這個實驗

d94a3bc6-62e2-11ed-8abf-dac502259ad0.png

經(jīng)過前面的講解,我們的環(huán)境現(xiàn)在是這樣的:R1-R3之間建立基于Loopback的iBGP鄰居關(guān)系;R3對R1配置了next-hop-local;R3與R4之間仍然是建立基于直連的eBGP鄰居關(guān)系;R4在BGP中network本地的4.4.4.4/32路由。

現(xiàn)在R1是能夠?qū)W習(xí)到BGP路由4.4.4.4/32的,并且該路由在BGP表中也是優(yōu)化的,這條路由就會被裝載進(jìn)R1的路由表。那么是不是意味著R1就能夠ping通4.4.4.4了呢?經(jīng)過測試你可能會發(fā)現(xiàn),R1雖然有了4.4.4.4/32網(wǎng)段的路由,但是無法ping通,為什么?因為數(shù)據(jù)包在R2這里就被丟棄了,還記得么,R2并沒有運行BGP,因此它無法學(xué)習(xí)到BGP路由4.4.4.4/32,現(xiàn)在問題來了,怎么讓R1 ping通R4呢?方法之一是在R3上將BGP路由重發(fā)布進(jìn)OSPF,使得R2能夠通過OSPF學(xué)習(xí)到BGP路由,但是這種方法存在一定的風(fēng)險,因為我們知道BGP承載的前綴數(shù)量往往是非常龐大的;另一種方法是,讓R2也運行BGP,并與R3建立iBGP鄰居關(guān)系,這樣一來問題就解決了。那么BGP鄰居關(guān)系就變成了這樣:

d9758d44-62e2-11ed-8abf-dac502259ad0.png

R3增加如下配置:

[R3]bgp123
[R3-bgp]peer2.2.2.2as-number123
[R3-bgp]peer2.2.2.2connect-interfaceLoopBack0

R2增加如下配置:

[R2]interfaceloopback0
[R2-LoopBack0]ipaddress2.2.2.232
[R2-LoopBack0]quit

[R2]ospf1router-id2.2.2.2
[R2-ospf-1]area0
[R2-ospf-1-area-0.0.0.0]network2.2.2.20.0.0.0
[R2-ospf-1-area-0.0.0.0]quit
[R2-ospf-1]quit
[R2]bgp123
[R2-bgp]peer3.3.3.3as-number123
[R2-bgp]peer3.3.3.3connect-interfaceLoopBack0

完成上述配置后,R1、R2和R3就都學(xué)習(xí)到了4.4.4.4/32的BGP路由。最后要實現(xiàn)R1能夠ping通4.4.4.4,則要求R4的路由表中也有10.1.12.0/24的路由,以保證數(shù)據(jù)包的回程。因此在R1上增加如下配置:

[R1]bgp123
[R1-bgp]network10.1.12.024

也就是將10.1.12.0/24這條路由注入到BGP,如此一來R4就能通過BGP學(xué)習(xí)到這條哦路由,那么當(dāng)R1去ping 4.4.4.4時,報文能夠順利到達(dá)4.4.4.4,并且回程的報文能順利地回來。

學(xué)會看三張表

查看BGP鄰居表:

d993269c-62e2-11ed-8abf-dac502259ad0.png

查看BGP表:

d9b49124-62e2-11ed-8abf-dac502259ad0.png

查看BGP路由條目的詳細(xì)信息

d9cc16a0-62e2-11ed-8abf-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8255

    瀏覽量

    149948
  • BGP
    BGP
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    15289

原文標(biāo)題:BGP進(jìn)階:BGP 基礎(chǔ)實驗配置

文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    bgp配置實例講解 如何配置Cilium和BGP協(xié)同工作

    ? 背景 官方提供了多篇文檔說明如何配置 Cilium 和 BGP 協(xié)同工作,本文主要對以下部分功能進(jìn)行驗證: Using BIRD to run BGP[1] Using kube-router
    的頭像 發(fā)表于 08-15 09:15 ?1753次閱讀
    <b class='flag-5'>bgp</b><b class='flag-5'>配置</b>實例講解 如何<b class='flag-5'>配置</b>Cilium和<b class='flag-5'>BGP</b>協(xié)同工作

    BGP硬核筆記分享

    BGP——邊界網(wǎng)關(guān)路由協(xié)議,是一種基于策略的路徑矢量路由協(xié)議(可以理解為距離矢量型協(xié)議的升級版),BGP在確定最佳路徑時考慮的不是速度,而是讓AS能夠根據(jù)多種BGP屬性來控制數(shù)據(jù)流的傳輸。
    的頭像 發(fā)表于 12-11 09:15 ?608次閱讀
    <b class='flag-5'>BGP</b>硬核筆記分享

    測量BGP傳遞時間

    測量BGP傳遞時間
    發(fā)表于 07-22 08:46

    測量BGP傳遞時間

    測量BGP傳遞時間
    發(fā)表于 07-22 10:06

    動態(tài)BGP與靜態(tài)BGP的區(qū)別

    動態(tài)BGP與靜態(tài)BGP的區(qū)別 動態(tài)BGP與靜態(tài)BGP的區(qū)別 1.靜態(tài)BGP功能簡單,其帶寬功能,可以實現(xiàn)多網(wǎng)接入,但路徑上只有通向幾大運營商
    發(fā)表于 12-01 16:55

    bgp路由協(xié)議的路由屬性_BGP路由協(xié)議的優(yōu)勢

    BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定義的;一個路由器只能屬于一個AS。AS的范圍從1-65535(64512-65535是私有AS號),RFC1930提供了AS號使用指南。
    發(fā)表于 08-20 15:00 ?3682次閱讀
    <b class='flag-5'>bgp</b>路由協(xié)議的路由屬性_<b class='flag-5'>BGP</b>路由協(xié)議的優(yōu)勢

    什么是BGP高防,BGP高防的優(yōu)勢是什么

    什么是BGP高防?BGP全稱是Border Gateway Protocol,即邊界網(wǎng)關(guān)協(xié)議,是用來連接Internet上的獨立系統(tǒng)的路由選擇協(xié)議。
    發(fā)表于 12-28 11:22 ?1006次閱讀

    如何使用自動BGP在數(shù)據(jù)中心構(gòu)建最佳 ASN 配置

    NVIDIA Cumulus Linux 4.2.0 版本引入了一項名為自動 BGP (Auto BGP) 的新功能,該功能使二層葉脊網(wǎng)絡(luò)配置中的 BGP ASN 分配變得快速而簡單。
    的頭像 發(fā)表于 07-28 18:10 ?2114次閱讀

    動態(tài)BGP是什么,如何判定它的真假

    一、什么叫動態(tài)BGP: 中國電信 、中國聯(lián)通、中國移動和一些擁有AS自治域的大型民營IDC運營商可以通過BGP協(xié)議來實現(xiàn)多線互聯(lián),這個唯一能夠妥善處理不相關(guān)路由域間的多路連接的邊界網(wǎng)關(guān)協(xié)議,是運行于
    發(fā)表于 04-18 09:47 ?1119次閱讀

    使用自動BGP在數(shù)據(jù)中心構(gòu)建最佳ASN配置

      NVIDIA Cumulus Linux 4.2.0版本引入了一項名為自動BGP(Auto BGP)的新功能,該功能使二層葉脊網(wǎng)絡(luò)配置中的BGP ASN分配變得快速而簡單。
    的頭像 發(fā)表于 04-30 07:39 ?795次閱讀
    使用自動<b class='flag-5'>BGP</b>在數(shù)據(jù)中心構(gòu)建最佳ASN<b class='flag-5'>配置</b>

    BGP路由優(yōu)選規(guī)則的深入了解

      一臺BGP路由器有可能學(xué)習(xí)到關(guān)于同一個目的路由前綴的多條BGP路徑,當(dāng)這些BGP路徑都是valid有效時,路由器將如何優(yōu)選呢?BGP的眾多路徑屬性如何影響
    的頭像 發(fā)表于 11-14 09:54 ?3114次閱讀

    跟大家聊聊BGP與OSPF

    BGP和OSPF是兩種最常見的路由協(xié)議,BGP在大型網(wǎng)絡(luò)中具有動態(tài)路由優(yōu)勢,而OSPF具有更高效的路徑選擇和收斂速度。
    的頭像 發(fā)表于 01-30 11:56 ?3499次閱讀

    BGP知識點總結(jié)

    該路由同時作為與其他BGP鄰居建立鄰居關(guān)系時的底層路由,那么這條BGP路由將不優(yōu),不能傳遞也不能加表
    的頭像 發(fā)表于 04-10 10:42 ?1348次閱讀

    如何配置Cilium和BGP協(xié)同工作呢?

    官方提供了多篇文檔說明如何配置 Cilium 和 BGP 協(xié)同工作,本文主要對以下部分功能進(jìn)行驗證
    的頭像 發(fā)表于 08-15 09:15 ?1631次閱讀
    如何<b class='flag-5'>配置</b>Cilium和<b class='flag-5'>BGP</b>協(xié)同工作呢?

    華為路由器BGP基礎(chǔ)配置實驗記錄

    配置BGP的前提是要保證各個自治區(qū)域的路由均可達(dá),所以要首先在AS 2 配置OSPF使AS 2 通暢,然后再配置BGP。由于
    發(fā)表于 01-06 10:07 ?604次閱讀
    華為路由器<b class='flag-5'>BGP</b>基礎(chǔ)<b class='flag-5'>配置</b><b class='flag-5'>實驗</b>記錄