转载 Sean 大佬:https://zhuanlan.zhihu.com/p/638617884
由于一台 EC 目前最大吞吐量为 10Gbps,在一些超大规模部署中可能出现吞吐量大于 10Gbps 的需求,常见于 ISP 或全球性质跨国公司。这种情况就需要用到所谓的 Scale Out 设计,也称为 Horizontal Scale。我们假设一个场景:一个数据中心需要为所有远程站点提供 30Gbps 的 WAN 吞吐量,我们可以做如下设计:

部署 3 台 EC,每台 EC 可以支持 10Gbps,将远程站点分为 3 组,每组的总吞吐量限制在 10Gbps 以内。如果需要的吞吐量增加,或者远程站点增多,我们可以以此类推增加数据中心里 EC 的数量。
以上的方案有一个问题,即没有冗余设计,数据中心任意一台 EC 死掉都会造成一组远程站点业务中断。我们可以结合 N+X 的思路来设计冗余,比如常见的 N+1:

在该方案里,我们在数据中心增设一台 EC,该 EC 和所有远程站点建立 Overlay Tunnel,该 EC 作为冗余备份使用。
还有一些需要考虑的细节,我们通过下面的实验进行讲解,实验拓扑如下:

ECV-Hot-1,ECV-Hot-2, ECV-Hot-3, ECV-Hot-4 代表在数据中心内部署的 4 台 EC,其中 ECV-Hot-4 为冗余设备;ECV-Hot-5,ECV-Hot-6,ECV-Hot-7 代表 3 个远程站点组。
首先要解决的问题是如何设计 Overlay Tunnel 的连接,使得每个远程站点只和自己对应的数据中心的 EC 及 ECV-Hot-4 建立连接。这里需要利用到 Cross Connect 及 Tunnel Exception。先创建 4 个 Interface Label:
G1, G2,G3,Backup (G 代表 Group)并分配给对应的 EC。例如 ECV-Hot-1 和 ECV-Hot-5 使用 G1,以此类推。这样配置后我们可以看到 ECV-Hot-1 和 ECV-Hot-5,ECV-Hot-2 和 ECV-Hot-6,ECV-Hot-3 和 ECV-Hot-7 分别建立了 Overlay Tunnel。接下来利用 Cross Connect 让所有远程站点和 ECV-Hot-4 也建立 Overlay Tunnel 用来提供冗余。

这样过后造成了一个问题,我们将 G1,G2,G3 及 Backup 放进了同一个 Cross Connect Group 他们会进行全互联。这时需要利用 Tunnel Exception 将不需要的 tunnel 剔除掉:
- G1 不与 G2 建立 tunnel
- G1 不于 G3 建立 tunnel
- G2 不于 G3 建立 tunnel

这样配置以后我们的 tunnel 如下:

在 DC Router 与 DC ECV 上配置 eBGP,router eBGP 配置如下:
router bgp 65000
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 172.16.10.1 remote-as 65001
neighbor 172.16.20.1 remote-as 65001
neighbor 172.16.30.1 remote-as 65001
neighbor 172.16.40.1 remote-as 65001
!
address-family ipv4
network 99.99.99.99 mask 255.255.255.255
neighbor 172.16.10.1 activate
neighbor 172.16.20.1 activate
neighbor 172.16.30.1 activate
neighbor 172.16.40.1 activate
exit-address-family
99.99.99.99 是一个环回口地址用于测试。
接下来需要考虑路由策略,DC Router 会通过 ECV-Hot-1 及 ECV-Hot-4 同时收到来自 ECV-Hot-5 的路由 (其他组同理),我们需要一个策略让 DC Rotuer 优先使用来自 ECV-Hot-1 的路由。方法有几种,我们这里讲如何利用 EC 的配置来实现。同时,远端站点也需要类似的策略,ECV-Hot-5 通过 ECV-Hot-1 及 ECV-Hot-4 同时收到来自 DC Router 的路由,我们需要让它优先使用 ECV-Hot-1。两个方向的策略可以利用 Peer Priority 实现。
我们给每个组创建一个 Template Group,每个 Template Group 里都配置相应的 Peer Priority



以 G1_PP 为例,Peer Priority 10 和 20 可以让 ECV-Hot-5 优先使用来自 ECV-Hot-1 的路由,Advertise Metric 111 和 444 则是 ECV-Hot-5 对 ECV-Hot-1 于 ECV-Hot-4 宣告路由的时候使用的 metric,这样的 metric 会通过 eBGP 宣告给 DC Router 从而让其优先使用 ECV-Hot-1。


从 ECV-Hot-5 的角度看:

将 ECV-Hot-1 的 WAN 接口 down 掉测试冗余:
