BGP EVPN方式部署分布式網關(同子網)

2021-02-14 鐵軍哥


    在學習EVPN、VXLAN過程中遇到些問題,一直沒能解決,看視頻、啃資料也沒能解答心中的疑惑。究其原因,主要是沒有實驗環境來驗證。

    前幾天和湯老師嘮嗑,他說最新版的VSR支持EVPN、VXLAN功能了。出於好奇,就搭建了個一套環境,測試了下,暫時沒發現什麼大的問題。今天我們來驗證下BGP EVPN方式部署分布式網關同子網的場景。

需求:

    在分布式網關場景中,通過BGP EVPN方式動態建立VXLAN隧道,來實現同網段主機的相互訪問

拓撲環境:

原理:

首先,S1與S3之間建立BGP EVPN鄰居,然後在S1、S3分別創建二層VSI,關聯VXLAN ID,同時,配置本地的 Route-distinguisher及出方向的VPN-Target,入方向的VPN-Target。配置完成後,S1和S2會生成BGP EVPN路由發送給對端,該路由攜帶本地的VSI下的Route-distinguisher、出方向的VPN-Target和BGP EVPN協議新定義的Type3路由即Inclusive Multicast路由。

S1和S2收到對端發送過來的BGP EVPN路由後,首先檢查該路由攜帶的VSI實例下的出方向VPN-Target,如果與本端VSI實例的入方向VPN-Target相等,則接收該路由,否則丟棄該路由。在接收該路由後,Leaf1和Leaf2將獲取其中攜帶的對端VTEP IP位址和二層VNI,如果對端VTEP IP位址是三層路由可達的,則建立一條到對端的VXLAN隧道;同時,如果對端二層VNI與本端相同,則創建一個頭端複製表,用於後續BUM(Broadcast&Unknown-unicast&Multicast)報文轉發。

BGP EVPN type 3路由格式如下:

由前綴和PMSI屬性組成

抓包信息:

主要配置:

S1配置

#

ip vpn-instance vpna

route-distinguisher 1:2

#

address-family ipv4

vpn-target 5000:1 1000:1 import-extcommunity

vpn-target 5000:1 1000:1 export-extcommunity

#

address-family evpn

vpn-target 300:1 import-extcommunity

vpn-target 300:1 export-extcommunity

l2vpn enable

#

vsi vpna

gateway vsi-interface 1

vxlan 10

evpn encapsulation vxlan

route-distinguisher 1:1

vpn-target 10:1 export-extcommunity

vpn-target 10:1 import-extcommunity

#

interface LoopBack0

ip address 1.1.1.1 255.255.255.255

#

interface GigabitEthernet1/0

description link_management

ip address 192.168.1.5 255.255.255.0

#

interface GigabitEthernet2/0

description link_to_servera

xconnect vsi vpna

#

interface GigabitEthernet3/0

description link_to_s2

ip address 12.1.1.1 255.255.255.0

#

interface Vsi-interface1

ip binding vpn-instance vpna

ip address 192.168.2.254 255.255.255.0

distributed-gateway local

#

interface Vsi-interface3

ip binding vpn-instance vpna

l3-vni 2000

#

bgp 200

peer 3.3.3.3 as-number 200

peer 3.3.3.3 connect-interface LoopBack0

#

address-family ipv4 unicast

peer 3.3.3.3 enable

#

address-family l2vpn evpn

peer 3.3.3.3 enable

S2隻涉及路由配置,這裡省略

S3主要配置:

sysname S3

#

ip vpn-instance vpna

route-distinguisher 1:2

#

address-family ipv4

vpn-target 1000:1 import-extcommunity

vpn-target 1000:1 export-extcommunity

#

address-family evpn

vpn-target 400:1 300:1 import-extcommunity

vpn-target 400:1 300:1 export-extcommunity

#

vsi vpna

gateway vsi-interface 1

vxlan 10

evpn encapsulation vxlan

route-distinguisher 1:2

vpn-target 10:1 export-extcommunity

vpn-target 10:1 30:1 import-extcommunity

#

interface LoopBack0

ip address 3.3.3.3 255.255.255.255

#

interface LoopBack11

ip binding vpn-instance vpna

ip address 11.11.11.11 255.255.255.255

#

interface GigabitEthernet1/0

description link_management

ip address 192.168.1.7 255.255.255.0

#

interface GigabitEthernet2/0

description link_to_s2

ip address 23.1.1.3 255.255.255.0

#

interface GigabitEthernet3/0

description link_to_serverb

xconnect vsi vpna

#

interface Vsi-interface1

ip binding vpn-instance vpna

ip address 192.168.2.254 255.255.255.0

distributed-gateway local

#

interface Vsi-interface3

ip binding vpn-instance vpna

l3-vni 2000

#

bgp 200

peer 1.1.1.1 as-number 200

peer 1.1.1.1 connect-interface LoopBack0

#

address-family ipv4 unicast

peer 1.1.1.1 enable

#

address-family l2vpn evpn

peer 1.1.1.1 enable

#

ip vpn-instance vpna

#

address-family ipv4 unicast

import-route direct

import-route static

#配置完成後查看S1上的BGP EVPN路由信息,可以看到type 2類,3類和5類

#查看type 3類路由明細信息

#查看自動生成的VXLAN 隧道信息

#查看S1上的路由

#查看S1上學習的mac地址信息

驗證:

#PCA ping訪問PCB,是可以實現互訪的

#抓包信息中可以看到二層互訪時,封裝的VXLAN值為二層VNI的值

    學習過程中遇到的問題是對於分布式網關二層互訪,本端生成的BGP EVPN type 3類路由發送給對端時究竟攜帶的是哪個RT值,對端接收時會根據哪個RT值做路由取捨,是二層VNI下的RT值,還是三層vpn實例下evpn的RT值?還是說兩個RT值都會參與?這裡我們做個簡單的測試:

測試一:

#修改兩端三層VPN實例下EVPN的RT值,使得兩端設備的RT值均不一致,兩端VSI下的RT值一致,看能否實現互訪,修改後路由能否學習到,mac地址能否學習到?

修改後的主要配置如下:

S1配置:

ip vpn-instance vpna

route-distinguisher 1:2

#

address-family ipv4

vpn-target 5000:1 1000:1 import-extcommunity

vpn-target 5000:1 1000:1 export-extcommunity

#

address-family evpn

vpn-target 300:1 import-extcommunity

vpn-target 300:1 export-extcommunity

#

vsi vpna

gateway vsi-interface 1

vxlan 10

evpn encapsulation vxlan

route-distinguisher 1:1

 vpn-target 10:1 export-extcommunity

 vpn-target 10:1 import-extcommunity

S3配置:

ip vpn-instance vpna

route-distinguisher 1:2

#

address-family ipv4

vpn-target 1000:1 import-extcommunity

vpn-target 1000:1 export-extcommunity

#

address-family evpn

 vpn-target 400:1 import-extcommunity

 vpn-target 400:1 export-extcommunity

#

vsi vpna

gateway vsi-interface 1

vxlan 10

evpn encapsulation vxlan

route-distinguisher 1:2

 vpn-target 10:1 export-extcommunity

 vpn-target 10:1 30:1 import-extcommunity

#為了保證接口的準確性,我們reset下兩端bgp的鄰居關係

reset bgp all

Reset BGP sessions? [Y/N]:y

reset bgp all

Reset BGP sessions? [Y/N]:y

#PCA ping訪問PCB,發現是可以正常互訪的

#查看S1上的路由條目,發現已經學習不到對端的32位主機路由了,但是mac地址依然能夠學習到

#同理,查看S3上的主機路由條目,發現也學習不到對端的32位主機路由了,mac地址也能正常學習

測試總結:在BGP EVPN分布式網關場景中,網子網互訪的環境中,當二層VSI下的RT值一致而三層VPN實例下的EVPN RT不一致時,能夠正常學習mac,但是學習不到路由

測試二:

#修改二層VSI下的RT值,使得兩端VSI的RT值不一致,而三層VPN實例下EVPN的RT值一致,然後reset bgp的鄰居,看看路由能否正常學習,mac能否正常學習,能否實現PCA訪問PCB?

修改後的主要配置如下:

#S1主要配置

sysname S1

#

ip vpn-instance vpna

route-distinguisher 1:2

#

address-family ipv4

 vpn-target 5000:1 1000:1 import-extcommunity

 vpn-target 5000:1 1000:1 export-extcommunity

#

address-family evpn

 vpn-target 300:1 import-extcommunity

 vpn-target 300:1 export-extcommunity

#

vsi vpna

gateway vsi-interface 1

vxlan 10

evpn encapsulation vxlan

 route-distinguisher 1:1

 vpn-target 10:1 export-extcommunity

 vpn-target 10:1 import-extcommunity

#S3主要配置:

sysname S3

#

ip vpn-instance vpna

route-distinguisher 1:2

#

address-family ipv4

 vpn-target 1000:1 import-extcommunity

 vpn-target 1000:1 export-extcommunity

#

address-family evpn

 vpn-target 400:1 300:1 import-extcommunity

 vpn-target 400:1 300:1 export-extcommunity

#

vsi vpna

gateway vsi-interface 1

vxlan 10

evpn encapsulation vxlan

 route-distinguisher 1:2

 vpn-target 20:1 export-extcommunity

 vpn-target 20:1 import-extcommunity

#為了保證接口的準確性,我們reset下兩端bgp的鄰居關係

reset bgp all

Reset BGP sessions? [Y/N]:y

reset bgp all

Reset BGP sessions? [Y/N]:y

#此時PCA訪問PCB,發現是無法互訪的

#S1上可以學習到32位主機路由,學習不到mac地址信息

#S3上可以學習到32位主機路由,也學習不到mac地址信息

#由於二層互訪根據源mac學習,依賴目標mac轉發,學習不到mac地址信息,所以導致無法互訪

測試總結:在BGP EVPN分布式網關場景中,網子網互訪的環境中,當三層VPN實例EVPN 的RT值一致而二層VSI下的RT值不一致,路由能夠正常學習,mac無法正常學習

總結:

1、BGP EVPN分布式網關場景中,網子網互訪,發布的路由條目會攜帶二層VSI下的RT值屬性,對端接收時會先判斷接收的路由和自己VSI的RT 入向的值是否一致,如果一致,且對端VTEP地址可達,本地VNI與遠端VNI相同,則創建VXLAN頭端複製表,學習遠端MAC地址,為二層互訪做準備。如果二層VSI的RT不一致而三層VPN實例的EVPN實例RT值一致,則無法學習到mac地址,但不影響路由的學習。

2、文章內容為個人學習時梳理,難免有誤,如有錯誤之處,歡迎私信指正。


相關焦點

  • BGP(邊界網關協議)基礎配置
    BGP是一種外部網關協議(EGP),與OSPF、RIP等內部網關協議(IGP)不同,BGP協議本身不產生路由,不發現路由,不計算路由,主要完成最佳路由的選擇並在BGP鄰居之間傳播最佳的路由。BGP使用TCP的179埠工作,使用TCP協議讓BGP在傳播大量路由時具有更高的可靠性並且更有效率,提升管理大量路由的能力。
  • BGP(邊界網關協議)高級配置
    請根據如下需求對網絡進行部署:1)按照拓撲搭建網絡,在所有AS間使用直連接口建立EBGP鄰居關係;2)在公司總部AS400中,R4與R5,R5與R7,R7與R6,R6與R4間使用環回接口建立IBGP鄰居關係,IGP協議使用OSPF;
  • 一文講懂什麼是三層交換機、網關、DNS、子網掩碼、MAC地址
    選擇 優質文章,及時送達來自:有為網絡服務很多朋友多次問到什麼是網關、dns、子網掩碼,三層交換機,它們定位的用途;確實,因為網絡技術在弱電中確實應用非常廣泛,我們平時在vip技術群中也是不斷的討論到網關、vlan、三層交換機或子網掩碼等問題,今天我們就一起用通俗方式一次性了解清楚。一、什麼是vlan?
  • SpringCloud:分布式微服務架構
    SpringCloud 簡介當我們的系統是分布式架構的時候,由於一個大的業務被拆分成各個不同的子業務,此時就會出現各種各樣的問題(之前文章有過介紹),而SpringCloud提供了一整套的解決方案!它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控、服務降級等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。
  • 安全網關設備有哪些 安全網關產品介紹
    終端安全檢查等機制保障移動用戶SSL安全接入●內置防火牆、入侵檢測等功能保證傳輸內容安全適宜多種應用場景●集成了新一代的網絡加速引擎,在廣域網中對VPN做到更佳優化,從而大幅提高VPN傳輸速度,整體通信性能顯著提高5倍以上,並大幅減少帶寬的使用●允許各個VPN子網之間的
  • 【Calico系列】2 BGP入門筆記
    •中國電信163 AS號:4134•中國電信CN2 AS號:48092.IGP(Interior Gateway Protocol):內部網關協議,在一個AS內部所使用的一種路由協議。一個AS內部也可以有多個路由器管理多個網絡。各個路由器之間需要路由信息以知道子網絡的可達信息。IGP就是用來管理這些路由。代表的實現有RIP和OSPF。
  • 盈世Coremail異地部署解決方案 分布式部署集中管理
    許多大型企業都有很多子公司,分布全國各地甚至海外,傳統的郵件系統集中部署在總公司內,由於子公司與總公司的物理距離遠,網絡連接通常是低帶寬、不可靠的,導致子公司訪問郵箱的速度和穩定性難以保障,常常影響工作。
  • BGP路由優選原則:優選最小的Originator ID​
    (使用IGP,如OSPF實現全網可達。)5、R1新增路由。(創建loopback10,ip地址為:10.10.10.0/24,宣告BGP)6、查看BGP路由。GigabitEthernet0/0/1]undo shut[R1-GigabitEthernet0/0/1]quit[R1]使用IGP,本次實驗我將實驗OSPF路由協議,6臺設備都運行再OSPF 區域0中,實現全網可達
  • 網關和路由器的區別
    網關與路由器兩者它們的作用都是用在網絡當中,主要是用來連接不同子網的主機,這兩種都是屬於硬體設施,它們都可以對到達該主機的數據包進行轉發。在路由器的子接口,是有分割廣播域的作用,所以當我們用交換機做VLAN以後,都是要在路由器上做一個三層的路由。而我們在這個路由器的子接口出設置的IP位址就是網關。當然在現在我們最常用的乙太網當中,網關就會被退化成路由器。
  • 無線網 清華大學:校園無線網建設七點思考
    認證網關伺服器與無線控制器完全獨立,一方面避免了不同廠商設備之間緊耦合可能帶來的兼容性互操作問題,另一方面,自建無線網的二級院系單位可以通過將上聯直接接入到學校無線網核心交換機上,通過學校的網關伺服器進行認證,簡化了院系自建無線網的認證管理難度,實現了校建無線網與單位自建無線網的統一認證管理。
  • 區塊鏈專題報告:分布式帳本為國際支付體系帶來的啟示
    現有的分布式 帳本項目中,瑞波網絡(Ripple)實際並未採用區塊鏈帳本,而比特幣、以太坊(包括 摩根幣 JPM Coin)等更多有潛力的分布式帳本項目大多都採用區塊鏈的方式,在某種意 義上,並不需要嚴格區分分布式帳本和區塊鏈。本文以瑞波網絡為典型案例,分析分布 式帳本為國際支付、清算體系帶來的啟示。
  • 網絡IP 、子網掩碼 、路由器 、DNS基礎知識總結!
    什麼是子網掩碼子網掩碼不能單獨存在,它必須結合IP位址一起使用。子網掩碼只有一個作用,就是將某個IP位址劃分成網絡地址和主機地址兩部分子網掩碼的設定必須遵循一定的規則。與IP位址相同,子網掩碼的長度也是32位,左邊是網絡位,用二進位數字「1」表示;右邊是主機位,用二進位數字「0」表示。假設IP位址為「192.168.1.1」子網掩碼為「255.255.255.0」。
  • 淺談集群、分布式、微服務的異同
    各分開部署的部分彼此通過各種通訊協議交互信息,並且每臺伺服器都缺一不可,如果某臺伺服器故障,則部分功能缺失,或導致整體無法運行。分布式存在的主要作用是大幅度的提高效率,緩解伺服器的訪問和存儲壓力。區別分布式的方式是一個業務分拆多個子業務,部署在不同的伺服器上。例如:將一個大的系統劃分為多個業務模塊,業務模塊分別部署到不同的機器上,各個業務模塊之間通過接口進行數據交互。
  • 詳解API網關核心功能和API管理擴展
    由於實現了位置透明,帶來一點就是數據流必須通過網關,那麼網關本身又成為了去中心的微服務架構中的中心化節點,那麼就必須考慮網關節點的性能,可靠性和彈性擴展能力。如果僅僅是這種方式的熔斷話,實際上意義並不是很大。但是可用的地方就在於當某個業務系統進行發版部署的時候我們可以對該業務系統或該業務系統所提供的所有服務進行熔斷。
  • 什麼是邊界網關協議以及武漢BGP機房的運作模式?
    邊界網關協議的英文全稱是Border Gateway Protocol,簡稱BGP,是一種連接網際網路(Internet)的獨立系統路由協議。同理,當你通過網際網路(Internet)提交數據時,BGP就會幫你選擇最佳的路徑,讓你提交的數據高效且穩定的發送到接收人那裡,真正實現高速的單IP高速訪問。如果你在發送數據的過程中有其中一條線路出現問題,它會自動切換到其它正常線路上,充分反映了BGP自治系統(AS)的特點。
  • 網關、DNS和MAC地址
    什麼是子網掩碼?還有朋友多次問到什麼是網關、dns,它有什麼作用,本文主要來講述一下網關(Gateway)又稱網間連接器、協議轉換器。網關在傳輸層上以實現網絡互連,是最複雜的網絡互連設備,僅用於兩個高層協議不同的網絡互連。大家都知道,從一個房間走到另一個房間,必然要經過一扇門。
  • 簡述BGP知識點
    (可以通過bgp redistribute-internal修改)。eBGP沒有這個限制。Cisco路徑決策共有有13步,其中第10條是按照接收的先後順序,一般情況下比較到第10條就結束了。如果在下列情況下,第10條(先後順序)將被忽略而繼續比較:1. bgp bestpath compare-routerid;2. 多條路徑都是有相同的路由器ID,即是從同一鄰居過來的。(這種情況比較少見,因為BGP通常只宣告***的一條路徑)。
  • 雙網卡電腦怎麼設置兩個網關?
    那麼雙網卡的網關如何設置,路由該如何設置呢?雙網卡電腦多數情況下是有特殊作用的,比如第一塊網卡作為代理伺服器,可以設置內部IP位址,把其他客戶端電腦的網關設置成這個IP位址。第二塊網卡就可以正常設置IP位址了,然後連接外網。雙網卡網關設置:雙網卡的網關地址同正常單網卡設置相同;僅需要分別在不同網卡的默認網關處分別設置即可。
  • 深信服WOC-3050分布式應用網絡方案
    如何在分布式的網絡中提升ERP、CRM、Notes、FTP、網絡鄰居、E-mail、OA等應用系統的訪問和操作速度,如何為企業打造一個低成本、高效率、高安全、易管理的信息化管理網絡平臺?銘冠科技為企業提出了精品解決方案:  背景介紹 隨著企業業務規模的增長,市場競爭的加劇,為獲得更多的市場資源,企業的分支機構也越來越來多。
  • 「新四化」趨勢下的汽車網關的大變局
    傳統燃油車的技術進步基本是以機械部件為主,電子系統相對簡單,大多採用ECU(電子控制器)分布式電子電氣(Electrical/Electronic Architecture,EEA)架構,每個帶有嵌入式軟體的ECU對應一個功能或少數幾個功能,通過CAN、FlexRay等總線技術連接,系統相對封閉。