我已经设置了 GCE 实例(谷歌云)和 EC2 实例(aws),我想像这样设置路由:
AWS-DUB <-A-> GCE-LON <-B-> GCE-TOK <-C-> AWS-TOK
连接 A 是 wireguard VPN。连接 B 是 google cloud 内部网络。连接 C 是 wireguard VPN。
现在,我已经能够按照我想要的方式设置连接,但是带宽性能很差。
以下是使用 iperf 进行带宽测试的示例:
测试 1. GCE-TOK -> AWS-TOK = +200Mbits/s (通过 wireguard) 测试 2. GCE-LON -> GCE-TOK = +95Mbits/s (通过 google 内部网络) 测试 3. GCE-LON -> AWS-TOK = +20Mbits/s
路由设置部分由 Google Cloud Platform、VPC 网络路由以及实例上的路由完成。Iptables 不用于执行任何路由。IP 转发已正确启用。
我们可以看到,测试 3 中的带宽较差。
最明显的区别是测试 1 和 2 都有位于同一子网上的测试服务器和客户端,而在测试 3 中我们有一个额外的跳数。
流量从 GCE-LON(instance-Xcclp-perf.internal(10.158.0.99))路由到 AWS-TOK(172.54.0.229):
On ens4 interface using internal google cloud routing with a route set up for 172.54.0.0/16 with next hop as 10.188.0.4 (TOKYO GCE).
On 10.188.0.4 traffic arrives on ens4, then the route 172.54.0.0/16 dev wg0 forwards the traffic over wireguard ( (Tokyo GCE) 192.168.2.1 -> (AWS Tokyo) 192.168.2.2
(AWS Tokyo) Trafic is routed on 192.168.2.1 to 172.54.0.229 (eth0).
潜伏:
TEST A. GCE-TOK -> AWS-TOK = 4ms
TEST B. GCE-LON <-> GCE-TOK = 225ms
TEST C. GCE-LON -> AWS-TOK = 229ms (Adds up correctly)
单独来看,测试 1 和测试 2 中的链中的路由非常快。但是当它们组合在一起时(如测试 3 中所示),它们就变得很慢。我尝试过 MTU、TCP 窗口大小等,但尚未成功。
我知道这里可以提供更多细节,但我认为从这个描述中,有经验的人应该能够参与进来,并给我一些指点,说明为什么我会看到带宽性能如此严重的下降。
所有实例均运行 Ubuntu 16。
谢谢
答案1
最好进行 MTR 测试,检查是否有任何节点存在问题。您可以检查两侧。
从 GCE-LON
$ mtr --report <IP_AWS-TOK>
来自 AWS-TOK
$ mtr --report <GCE-LON>