Juniper

具有預設路由的瞻博網路 EX BGP

  • April 11, 2013

我是 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 分開 - 並且可能會進行一些基於過濾器的轉發以選擇正確的網關。

我一直在對兩者進行相當廣泛的閱讀,

  1. http://www.juniper.net/us/en/training/certification/JNCIA_studyguide.pdf
  2. http://www.juniper.net/us/en/training/certification/JNCIS_studyguide.pdf

為了更好地理解所需的配置。


到目前為止,根據我的(有限)理解,我認為我需要…

  1. 與我的傳輸提供商建立 BGP 會話
  2. 通過我的 ASN 宣布我的 IP 塊
  3. 通過該特定介面路由 BGP IP 塊
  4. 在兩個 EX3200 之間形成某種故障/HA,以便單個故障不會中斷 BGP 會話。

我基本上不確定的是這兩個 EX3200 是如何啟動它們的 BGP 會話的。由於每個人在兩個單獨的 VLAN 中都有自己的 IP(路由器 ID) - 這看起來是兩個單獨的 BGP 會話 - 如果其中一個出現故障,我需要有條件地在每個 BGP 預設網關之間路由?

有沒有人有任何從哪裡開始的範例配置?

感謝@Sebastian 讓我走上正軌。我想用我迄今為止在實驗室中使用單個 EX3200 學習/實施的內容來跟進這一點。這是一個工作配置。

我最初的請求中唯一缺少的一點是高可用性如何在 BGP 連接上為預設網關工作——但我認為 iBGP 將符合該要求。

我可能會添加另一個路由實例來模擬第二個交換機 - 然後在分配給每個實例的介面之間執行物理中繼。然後在兩者上啟動 eBGP 和 iBGP。


我設置了兩個路由實例,以隔離兩個網路(PA IP 和 BGP IP)和網關。

vlan.10vlan.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 系列的軟體功能表,它總是有用的:

http://www.juniper.net/techpubs/en_US/junos10.2/topics/concept/ex-series-software-features-overview.html#layer-3-protocols-features-by-platform-table

如果您已安裝許可證,則可以在其下配置路由實例和 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 的一般資訊在這裡:

http://www.juniper.net/techpubs/en_US/junos10.4/information-products/pathway-pages/ex-series/bgp.html

這只是一個簡短的回答。請注意,BGP 路由是一個非常廣泛的主題,不僅在您的網路中,而且在您的提供商網路中,甚至在極端情況下甚至在全球範圍內,都很容易造成嚴重破壞。我建議為初始設置獲得專業幫助。

引用自:https://serverfault.com/questions/495344