1. Virtual IP Address
Virtual IP Addresses(VIPs) 技术可以实现一台物理服务器包含多个虚拟IP。VIP可以让一台webserver服务多个SSL加密的web sites, 也可以服务集群通过一个特定的IP地址进行通讯。
配置VIP的方式:
1)ifconfig创建一个透明的独立的设备,非同于下面的eth1,这个独立的设备有单独的IP地址,子网掩码和广播地址,同时这个VIP可以作为服务接口,与其他的客户端或者其他的服务器连接。
例如ifconfig eth1:0 192.168.1.88
删除此VIP的方法是:ifconfig eth1:0 down
2)iproute2
例如ip addr add 192.168.1.28 dev eth1
通过ifconfig无法看到上面命令创建的VIP,只有通过ip addr show命令才可以看得到.
删除VIP的命令如下:
ip addr del 192.168.1.28/32 dev eth1
2.LVS-DR工作原理
也许大家早就知道LVS-DR,LVS-NAT和LVS-TUN三种,好吧,我才知道。DR是Direct Routing的意思。
盗用网上的一张图,讲解下LVS-DR的工作流程。
Director接收用户的请求,然后根据负载均衡算法选取一台realserver,讲包转发过去,最后由realserver直接回复给用户。
在LinuxDirector上面配置一个VIP,此VIP的netmask正常配置,也就是此VIP正常工作,外部client或者router可以正常通过ARP获取此VIP的地址。
每个Real Server上面基于lo口创建VIP,此VIP的netmask为255.255.255.255。这样过的目的是,Linuxdirector会把client的报文转发给real server,如果real server没有创建这个VIP的话,real server收到这个报文的时候会认为这个报文是非法报文而丢弃。而把netmask设置为255.255.255.255后,广播地址就是其本身了,这样它就不会把ARP报文发到它本来的广播域了,可以防止与LVS上面的VIP冲突。
LinuxDirector是如何处理报文的?
1) 接收client的请求,根据你设定的负载均衡算法选取一台realserver的ip;
2)以选取的这个ip对应的mac地址作为目标mac,然后重新将IP包封装成帧转发给这台RS;
3)在hash table中记录连接信息。
报文的处理流程是:client --> VS --> RS --> client