具有預設路由的瞻博網路 EX BGP
我是 BGP 的新手——所以這當然是一個學習練習。我正在從 2 個路由上行鏈路上提供的 PA 空間轉移到擁有自己的 IP 空間和多宿主我的傳輸。
首先,只有一個傳輸提供商——他們提供了 2 個 RJ45 電纜分接器,每個分接器上都有一個不同的 /30 VLAN——連接到我的每個瞻博網路 EX3200 交換機。
我現在只打算採用預設路由——同時,我需要繼續使用路由的上行鏈路和 PA 空間——同時為新的 BGP 網關/網路維護另一個路由表。
我的 WAN 粘合塊 VLAN 駐留有 2 個上行鏈路(ge-0/0/0 和 ge-0/0/1)(
vlan4000
)。VRRP 在這個 VLAN 上執行,我的所有 IP 都從我的提供商路由到這個虛擬 IP。然後內部路由直接通過 VLAN L3 介面。網關 IP(即我的提供商的路由器虛擬 IP)vlan4000
充當我的預設路由。所以我知道我可能需要執行兩個路由表 (VRF) 以將 BGP IP 與“其他”IP 分開 - 並且可能會進行一些基於過濾器的轉發以選擇正確的網關。
我一直在對兩者進行相當廣泛的閱讀,
- http://www.juniper.net/us/en/training/certification/JNCIA_studyguide.pdf
- http://www.juniper.net/us/en/training/certification/JNCIS_studyguide.pdf
為了更好地理解所需的配置。
到目前為止,根據我的(有限)理解,我認為我需要…
- 與我的傳輸提供商建立 BGP 會話
- 通過我的 ASN 宣布我的 IP 塊
- 通過該特定介面路由 BGP IP 塊
- 在兩個 EX3200 之間形成某種故障/HA,以便單個故障不會中斷 BGP 會話。
我基本上不確定的是這兩個 EX3200 是如何啟動它們的 BGP 會話的。由於每個人在兩個單獨的 VLAN 中都有自己的 IP(路由器 ID) - 這看起來是兩個單獨的 BGP 會話 - 如果其中一個出現故障,我需要有條件地在每個 BGP 預設網關之間路由?
有沒有人有任何從哪裡開始的範例配置?
感謝@Sebastian 讓我走上正軌。我想用我迄今為止在實驗室中使用單個 EX3200 學習/實施的內容來跟進這一點。這是一個工作配置。
我最初的請求中唯一缺少的一點是高可用性如何在 BGP 連接上為預設網關工作——但我認為 iBGP 將符合該要求。
我可能會添加另一個路由實例來模擬第二個交換機 - 然後在分配給每個實例的介面之間執行物理中繼。然後在兩者上啟動 eBGP 和 iBGP。
我設置了兩個路由實例,以隔離兩個網路(PA IP 和 BGP IP)和網關。
vlan.10
並vlan.20
用作 BGP 上行鏈路,vlan.3999
用於我們通過 ASN 宣布的 /22 IP。
vlan.30
是現有的 /24 的 PA 空間 - 具有到主網關的靜態路由vlan.40
您可以看到 BGP 實例是在該路由實例上專門配置的 - 因此它不會在其他路由表中共享。
routing-instances { transit-bgp { instance-type virtual-router; interface vlan.10; interface vlan.20; interface vlan.3999; routing-options { router-id x.x.x.50; autonomous-system xxxxx; } protocols { bgp { group bgp1 { type external; peer-as xxxxx; neighbor x.x.x.109 { import import-route-transit1; export export-route; } } group bgp2 { type external; peer-as xxxxx; neighbor x.x.x.113 { import import-route-transit2; export export-route; } } } } } transit-pa { instance-type virtual-router; interface vlan.30; interface vlan.40; routing-options { static { route 0.0.0.0/0 next-hop x.x.x.1; } } } }
所以VLAN分配如下
vlans { bgp1 { vlan-id 10; l3-interface vlan.10; } bgp2 { vlan-id 20; l3-interface vlan.20; } liveips { vlan-id 3999; l3-interface vlan.3999; } routedips { vlan-id 30; l3-interface vlan.30; } routedgw { vlan-id 40; l3-interface vlan.40; } }
然後,為了確保兩個 BGP 鏈路優先(如果一個失敗),設置了策略來更改
local-preference
. 還創建了一個策略來導出要通過 BGP 通告的特定路由。policy-options { policy-statement export-route { term local-routes { from { route-filter x.x.x.0/22 exact; } then accept; } } policy-statement import-route-transit1 { term default { then { local-preference 220; next policy; } } } policy-statement import-route-transit2 { term default { then { local-preference 200; next policy; } } } }
在這一點上 - 一切都很完美,兩個路由表和諧地工作 - 但完全隔離。IE。彼此之間沒有共享/洩漏的路線。所以我設置了一些基於過濾器的轉發來允許分發路由。
vlan
首先,我在界面上使用了一個輸入過濾器interfaces { vlan { unit 10 { family inet { address x.x.x.110/30; } } unit 20 { family inet { address x.x.x.114/30; } } unit 30 { family inet { filter { input transit-pa-int; } address x.x.x.50/24; } } unit 30 { family inet { address x.x.x.1/24; } } unit 3999 { family inet { filter { input transit-bgp-int; } address x.x.x.1/22; } } } }
其中使用了以下防火牆規則
firewall { family inet { filter transit-pa-int { term one { from { destination-address { x.x.x.0/22; } } then { routing-instance transit-bgp; } } term default { then { routing-instance transit-pa; } } } filter transit-bgp-int { term one { condition { destination-address { x.x.x.0/24; } } then { routing-instance transit-pa; } } term default { then { routing-instance transit-bgp; } } } } }
EX交換機可以做VRF-Lite來支持多個路由表。首先,您可以查看瞻博網路的這篇知識庫文章:
http://kb.juniper.net/InfoCenter/index?page=content&id=KB14926
您需要的是對 VRF/虛擬路由器的 BGP 支持。為此,您需要 EX 交換機上的 AFL 許可證。這是 EX 系列的軟體功能表,它總是有用的:
如果您已安裝許可證,則可以在其下配置路由實例和 BGP 協議:
routing-instances { test { instance-type virtual-router; protocols { bgp { local-as 65565; } } }
eBGP(外部 BGP,對您的提供商)會話通常在介面 IP 之間進行。因此,您在介面上的 /30 中配置您的 IP(在另一個交換機上重複第二個上行鏈路)並建立與提供商路由器 IP 的 BGP 會話。請您的提供商向您宣布預設路由。
您應該連接兩台交換機並在它們之間使用 iBGP(內部 BGP),以便它們都從彼此獲取路由資訊。
如果一個上行鏈路發生故障或 BGP 會話斷開,您的交換機將自動切換到另一個上行鏈路。
關於 EX 交換機上的 BGP 的一般資訊在這裡:
這只是一個簡短的回答。請注意,BGP 路由是一個非常廣泛的主題,不僅在您的網路中,而且在您的提供商網路中,甚至在極端情況下甚至在全球範圍內,都很容易造成嚴重破壞。我建議為初始設置獲得專業幫助。