负载均衡归根究底就是对数据进行合理的分配,让固定数量的数据流分配到每一个处理设备中,进行处理。在负载均衡技术应用中,数据流可以被引导在两个链路或者多个链路中进行传递,也就是前面我们提及过的多链路负载均衡的问题。现在我们以数据流为重点,谈一下负载均衡问题。
在网内实际存在着3种不同的数据连接请求,因此通过对这3种请求进行必要的引导,数据流便可以有效地在两条链路上进行传递。这三种数据连接包括:
DNS解析请求
Inbound数据流
Outbound数据流
Load Balance Controller承担起了对两条ISP连接的负载均衡工作。它作为数据传递的中间枢纽将所有设备连接在了一起。
DNS解析请求当外部用户需要对WWW、FTP和e-mail服务器进行访问时,首先进行的便是必要的DNS解析。接下来,我们以WWW域名为例来描述用户如何通过Load Balance Controller得到恰当的IP地址。假设WWW域名为www.xxx.com:
1. Client向其本地DNS(LDNS)发出域名解析请求,探求域名www.xxx.com的IP地址。
2. LDNS向ROOT服务器查询xxx.com的地址,得到211.152.31.1和159.226.50.1,它们分别对应与两个ISP,A和B。
3. LDNS将以第一个得到的IP地址为目的,向它发出对www.xxx.com的查询。如果这第一个地址在允许的连接条件下,无法连接到或得到解析结果,则LDNS将启用第二个地址进行查询连接。
4. 这时,请求由LDNS到达Load Balance Controller。在Load Balance Controller 上,对于后面的两台DNS服务器事先已设置好虚拟服务器VDNS,且对应与两个不同的ISP 连接,172.17.1.168和172.17.2.168。172.17.1.168与211.152.31.1通过防火墙1的NAT对应,172.17.2.168与159.226.50.1通过防火墙1的NAT对应。这样,通过任何一个ISP连接到达的域名解析请求都可转发至后面的两个DNS服务器,并在它们之间完成负载均衡。
5. 在后面的两个DNS服务器上,需是先进行"匿名"的配置。
www.xxx.com. IN CNAME www.wip.xxx.com
在Load Balance Controller上,对应这个匿名,事先已配置好wide IP,www.wip.xxx.com与之对应:并且包括事先配置的两个虚拟服务器地址,211.152.31.3和159.225.50.3。这两个地址都指向后面的WWW服务器,并与两个ISP连接对应。
6. 这时,Load Balance Controller会依据已经设置好的wide IP均衡规则,向LDNS提供www.xxx.com所对应的IP地址。即依据两个不同的ISP连接情况,选择与ISP连接向对应的地址。
7. LDNS得到这个地址后,将它返回到Client端。
8. Client利用这个地址进行与www.xxx.com的连接。
Inbound数据流
部分数据流主要流向经DNS解析请求后得到的地址。我们以对www.xxx.com为例。假设Client得到的地址是211.152.31.3,那么当它的数据连接到达防火墙后会被翻译成内部地址,172.17.1.3。这个地址也是Load Balance Controller上设置的虚拟服务器地址,对应于后台的WWW服务器。当Load Balance Controller 收到对这个地址的访问后,它会根据对服务器设置的负载均衡算法,将用户数据转发到相应的服务器。
Outbound数据流
这部分数据主要从内网端口流向与防火墙/路由器相连的外网端口,我们需要将来自Intranet的数据连接全部接受,这样,当Load Balance Controller 收到由Intranet发来的数据连接后,就会依据相应的负载均衡算法,将数据流转发到恰当的防火墙。并且在数据出入防火墙/路由器的外网端口时,Load Balance Controller 会对数据流的源IP地址进行翻译。翻译工作依据于SNAT设置。
转载请注明:IT运维空间 » 运维技术 » 归根究底,探讨数据流负载均衡
发表评论