服务器负载均衡基础概念
服务器负载均衡:按字面理解就是将网络流量负载负担。根据不同网络层次可分为二层负载、三层负载、四层负载、七层负载。
三层负载:三层负载最好理解,所以先讲三层负载。三层负载基于IP地址来分担的。对于了解NAT技术的人来说更好理解。一般拓扑如下:
负载设备(SLB)对外提供一个VIP(虚拟IP),客户端通过访问虚IP,SLB将客户端流量调调度服务器端。类似NAT中一对多效果。如客户端C1第一访问VIP调度到服务器A上,第二次访问就调度到服务器B上。我们称这种轮询调度为轮询调度算法,调度规则称为调度算法。准确的来说没有专用的三层负载设备,反倒很多时候使用防火墙等设备通过NAT做三层负载。
四层负载:在OSI模型中四层只有tcp和udp协议。通俗的来讲,就是比三层源IP、目的IP多查源端口、目的端口。如SLB提供10.1.1.100:80服务,调度到S1上,10.1.1.100:8080服务调度到S2上。对于调度算法还可以基于源IP+端口的hash算法或类似算法。还有根据tcp、udp协议的不同区分不同的服务。
七层负载:应用层协议较多,常用http、radius、dns等。七层负载就可以基于这些协议来负载。如客户度访问http://10.1.1.100/abc/index.html可以根据url:/abc/调度至服务器S1,若客户端访问http://10.1.1.100/def/index.html可根据url:/def/调度至服务器S2。同理,对于DNS协议来说,可根据客户端请求查询域名不同进行调度。如这种能够识别应用层数据能够实现更多策略。如http相关策略修改http url,cookie会话保持、http调度等,DNS策略域名调度,radius策略user_name调度等。
二层负载:二层负载比较特殊,SLB对外依然提供一个VIP(虚IP),但是后台服务器相同的IP,不同的MAC。如下:
客户端通过ip网络访问虚服务,SLB通过mac分发到不同的服务器。那么问题来了,服务器IP相同不就IP冲突了么?当然这些服务器都比较特殊,不发送arp报文,同样要求SLB连接交换机的口也不发送arp。只要SLB把报文发过去,交换机根据mac地址表项转发就ok了。
本文出自 “丁同学1990” 博客,请务必保留此出处http://dingtongxue1990.blog.51cto.com/4959501/1816889
原文地址:http://dingtongxue1990.blog.51cto.com/4959501/1816889