我们得到两条 100G 链路,每个供应商提供一条,我们的总流量低于 100G。基本原理是一个提供者可能会失败,而另一个提供者将以零降级弥补不足。我们的流量模式是相当对称的(即 50G 上行将 50G 下行)
我正在使用 JunOS 平台并希望让社区考虑负载平衡策略。目前,我们只是从 ISP 获取完整的表并在没有额外配置的情况下公布我们的前缀。我有两个问题
入口
我怀疑由于我们没有预先考虑入口流量应该是大部分对称的。这些都是 T1 提供商,几乎所有“重要”的东西都在 1 个 AS 跳之外。你会认为带宽会平衡,但在大多数情况下它是相当不平衡的。为什么会这样?
出口
我查看路由表(即显示路由 8.8.8.8,显示路由 1.1.1.1)并注意到所有 tee 目的地主要是一个 AS 跃点,但流量似乎仍然相当不平衡。
inet.0: 823020 destinations, 1641766 routes (823020 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1.1.1.0/24 *[BGP/170] 04:36:45, MED 0, localpref 100, from 4.53.154.145
AS path: 3356 13335 I, validation-state: unverified
> to ISPA via et-0/0/1.0
to ISPB via et-0/0/3.0
[BGP/170] 6d 06:39:30, localpref 100
AS path: 1299 13335 I, validation-state: unverified
> to ISPA via et-0/0/1.0
我可能可以通过打开来平衡出口
bgp {
group isp {
/* peering info */
multipath {
multiple-as
}
}
policy-options {
policy-statement LB {
then {
load-balance destination-ip-only;
}
}
}
routing-options {
forwarding-table {
export LB;
}
}
我担心这会使故障排除“缓慢”变得困难,因为事情更难追查并且真的不会对称。这是一件坏事还是这是一个常见的地方?
问题和解决方案
入口\出口流量的不匹配导致我在两个 ISP 与 1 上突然爆发(ISP A 可能有高入口但低出口,ISP B 可能有高出口但低入口)。解决上述问题的社区策略是什么?我的建议
- 执行上述建议并启用 ISP 之间的负载共享
- 做一个主动\被动设置,我使用 ISP B 并预先\取消它。我担心这会导致不必要的延迟,因为我人为地偏爱 ISP A。我得到了满桌。不过,这是两个不错的 1 级 ISP,对于大多数情况,延迟都很好。
- 分解我的块,并以某种方式用 ISP A 首选和 ISP 首选宣传一半。我不得不以某种方式在单个路由表上对各个组进行本地偏好。
还有为什么 ISP A 在我上面的“显示路线”中显示两次