这可能更像是一个设计问题。我有两个中转提供商,我可以从中接收完整的 Internet 路由表(通过 BGP),并且我还参与了一个 IX,我可以从该 IX 中的对等方接收路由(也通过 BGP)。然后我通过 OSPF 将这些路由重新分发到我的网络的其余部分。然后我有一个核心路由器,我已经将终端设备连接到该路由器。
下面的图表可以解释这一切:
所有边缘设备和核心路由器都运行 Vyatta 6.5。我的终端设备只是一个 Linux 机器,我可以从中执行跟踪路由(以查看我的流量流向何处)。
如您所见,我与提供商的链接速度不同。理想情况下,我希望几乎所有流量都通过 ISP B,我拥有 1Gbps 的连接,并且只有 ISP A 的传输等待 ISP。同样,如果通过我与 IX 的连接,表中有一个可用的网络,我希望优先选择该网络。
目前,我的所有流量都经过 ISP A。
使用 Vyatta,我该如何添加“权重”或某种偏好值来表示:
- 如果网络可以通过 Edge 3 访问,请转到那里
- 否则,如果网络可以通过 Edge 2 访问,则转到那里
- 否则,通过边缘 1
我希望我的问题已经清楚了。如果不清楚或者您想要这些路由器的输出,请告诉我。感谢您的帮助 :)
答案1
(假设 Vyatta 支持 BGP...)为什么不在 Edge1、Edge2、Edge3 和核心路由器之间使用 iBGP,而是将 BGP 重新分配到 OSFP?强烈不建议将完整的 BGP 路由重新分配到 OSPF,因为 OSPF 不是为处理如此大量的路由而设计的。
如果您使用 iBGP 分发来自 ISP 的路由,则使用 local-preference 来控制您的路由。
- 将从 Edge 3 接收的路由的本地优先级设置为 120。
- 将从 Edge 2 接收的路由的本地优先级设置为 110。
- 对于从 Edge 1 接收的路由,保持本地优先级不变。(假设默认本地优先级值为 100)
在 AS 内,每个 iBGP 路由器都优先选择本地优先级较高的路由。因此,如果 Edge 1、Edge 2 和 Edge 3 有相同的路由,则 Edge 3 的路由优先。
顺便说一句,你可以从网络工程对于这种问题。