据了解,中国有两个主要的(唯一的)互联网服务提供商 – 中国电信(CT)和中国联通(CU) – 两者之间的stream量真的很慢,几乎和stream量一样糟糕防火墙。 要解决此问题,您(作为中国的网站运营商)应为您的网站获取两个外部IP地址,每个提供商一个IP地址。
如果真的有必要,请随意评论一下,但如果是这样的话,那么如何实现适当的路由呢? 把两个IP地址放到同一个主机名的DNS中,让客户弄清楚哪一个更好? 单独的主机名?
我住在中国,可以证实你在说什么。
像qq.com或baidu.com这样的大型中国互联网门户网站确实与大型互联网服务提供商build立了联系,然后根据您的互联网连接将您的stream量通过其中一个或另一个。
我不知道他们是怎么做的,但是我可以看到,根据我在哪里的DNSlogging,qq.com(中国最大的门户网站之一)parsing成不同的IP地址:
我的家庭连接:
mst@mst-gentoo-nb ~ $ nslookup qq.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: qq.com Address: 119.147.15.13 Name: qq.com Address: 119.147.15.17
我的办公室连接:
mauro@sylvester:~ ssh$ nslookup qq.com Server: 10.60.1.249 Address: 10.60.1.249#53 Non-authoritative answer: Name: qq.com Address: 220.181.138.59 Name: qq.com Address: 125.39.127.22
如果我检查这些不同IP的whoislogging,我可以看到它们属于不同的提供者。
所以我猜这个机制是以某种方式在他们的DNS中实现的。 但是我也不知道如何去做的细节。
路由多个IP非常简单,使用PBR很简单,您可以使用iproute2创build单独的路由表,并添加来自该IP的stream量或来自该IP的stream量通过相同接口重新路由出去的规则。 对于通过DNS的多个IP地址,您只需要在BIND中设置视图,为来自ISP1的用户和来自ISP2的用户创build一个ACL,然后使BIND服务器以该networking块的正确IP进行响应。
在我看来,DNS只是解决scheme的一部分(也可能是较less的部分),因为它处理传入的stream量。 响应通常比请求要大得多,因此您应该在服务器上安装一些路由表,以便通过正确的networking适配器发送出站stream量。
更新:显然,一些托pipe服务提供商提供“BGP连接”,摆脱这个问题,通过直接通过网关路由一个单一的IP地址,通过所有的供应商。