BGP 可以指定使用某些網路的備援鏈路

BGP 可以指定使用某些網路的備援鏈路

假設我連接到兩個不同的 ISP 並將它們設定為冗餘連接,一個比另一個更重。我是否可以說,任何通往西班牙某個人的路線都應該使用較慢的鏈路而不是主要鏈路?

謝謝W

答案1

是的,您可以使用路線圖。

思科甚至有一個具體的例子:

http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800c95bb.shtml#weight

簡而言之,如果西班牙的網路有 AS100:

ip as-path access-list 5 permit ^100$ 

route-map setweightin permit 10 
match as-path 5 
set weight 200 

neighbor x.x.x.x route-map setweightin in

將重量更改為您想要的重量。

請注意,這只會更改從路由器到西班牙 AS 的流量路徑。它不會改變從西班牙 AS 到您的路徑。這對 BGP 來說是不可能的(除了可以使用 BGP 社群的特殊情況)。

另一件事:如果您希望流量大部分透過主 ISP 到達您,您應該將 AS 路徑新增至備用 ISP。

這篇文章解釋得很好:

http://blog.ioshints.info/2008/02/bgp-essentials-as-path-prepending.html

答案2

最好的方法是設定 local-pref per-prefix 將流量傳送到特定連結。這假設您從兩個提供者取得完整的 BGP 路由表。您可以透過針對所需提供者的入站應用程式的路線圖來完成此操作。

! First, create a prefix-list to match the traffic you want to send out a non-default ISP
ip prefix-list pfl-target-prefix permit 1.2.3.0/24

! create a route-map to match that prefix-list and set the local-pref
route-map rm-bgp-isp-in permit 10
match ip address prefix pfl-target-prefix
set local-preference 150
route-map rm-bgp-isp-in permit 1000

! apply the route-map inbound to your isp
router bgp 1234
neighbor 1.2.3.4 route-map rm-bgp-isp-in in

與權重相比,使用 local-pref 的好處是權重僅適用於本地路由器。您可以告訴本地路由器始終採用 ISP2 作為前綴,但這並不意味著網路的其餘部分也會這樣做。 Local-pref 將傳播到您的所有 iBGP 對等體,它們都會更喜歡有問題的路由。如果兩個提供者位於同一邊緣路由器上,則 local-pref 或weight 都可以正常運作。

如果您只採用預設路由,則需要採取一些措施來在自己的網路內重新發起目標路由,以便裝置遵循特定的 ISP。我能想到的最簡單的方法是建立靜態路由,指向您希望流量到達的 ISP,然後重新分配到本地 BGP 或 IGP。

ip route <target prefix> <wildcard mask> <isp next-hop>
router ospf 1
redistribute static subnets

同樣,如果兩個提供者都在同一路由器上,則無需重新分配到 IGP - 只要下一跳可達,靜態將指示您的邊緣路由器始終使用第二個 ISP。

正如另一位發文者所提到的,這些都不會影響遠端前綴到達您的方式。您需要在輔助連結上新增 as-path 來嘗試影響這一點,但仍然不能保證它實際上會進入您期望的路徑。

希望這可以幫助。

-凱勒

答案3

您可以使用 BGP 按照您的要求進行操作,提高某些路由的優先順序並不那麼複雜。問題在於定義你想提出什麼。在您的範例中,您希望將「西班牙的某個人」的偏好提升到不同的連結。您如何確定西班牙有什麼?那是你嗎真的想?西班牙的一些路線無法從西班牙其他地區直接到達(想想到偏遠地區的衛星連接,前往法國的基地台)。對於您正在嘗試做的事情要非常小心,並確保您正在以您想要的方式做影響您表現的事情。

相關內容