我可以为某些网络指定 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,以便将您的流量发送到特定链接。这假设您从两个提供商处获取完整的 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 而不是 weight 的好处是 weight 仅适用于本地路由器。您可以告诉本地路由器始终采用 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 按照你要求的方式做,提高某些路由的优先级并不复杂。问题在于定义你想要提高什么。在你的例子中,你想将“西班牙的某个人”的优先级提高到不同的链接。你如何确定西班牙的是什么?这就是你想要的真的想要什么?西班牙境内的一些线路无法从西班牙其他地区直接到达(例如卫星连接到偏远地区,前往法国的基站)。请非常小心地考虑您要做的事情,并确保您正在做的事情以您想要的方式影响您的表现。

相关内容