一、ARP协议
1. Address Resolution Protocal地址解析协议,功能是根据主机IP地址来解析到主机的MAC地址。
2. ARP协议和DNS协议对比:
a. DNS是在域名和IP之间进行解析,ARP是在IP和MAC之间解析。
b. ARP协议不需要服务,DNS需要开启服务。
c. ARP协议需要互联的主机处于同一个物理网段之内(即局域网环境)!
3. ARP协议工作过程(第一次通信)
4. 高可用服务器切换机器以及更换路由器的时候要注意刷新ARP缓存
5. IP切换时候ARP缓存问题的解决方法:
使用arping命令来清空ARP缓存,例如:
/sbin/arping -I eth0 -c 3 -s 192.168.0.162 192.168.0.253
/sbin/arping -U -I eth0 192.168.0.162
二、LVS负载均衡集群 Linux Virtual Server
1. 实现负载均衡调度的:IPVS,工作在LINUX内核层面,用户无法直接直接访问IPVS,必须通过IPVSADM这个管理工具来实现管理,或者通过KEEPALIVED来管理。
2. 负载均衡器LB也被称为LVS Director。
3. IP名称约定:
VIP:虚拟IP,为DIRECTOR向客户端提供服务的IP地址,域名解析到的IP均为VIP。
为什么叫虚拟IP?因为这些IP不是真正提供业务服务的IP,而是将会调度到提供真实业务服务的IP上,所以称为VIP。
RIP:真实IP,集群下面业务节点的IP。
DIP:负载均衡器的IP。
CIP:客户端的IP。
三、LVS三种工作模式详解。
DR模式:(Direct Routing, VS/DR)
VS/DR模式工作原理:直接改写请求报文的目标MAC地址,将请求改写后发给RIP,由RIP将相应后的处理结果直接返回给CIP,不再经过DIRECTOR。该模式要求LV DIRECTOR和REAL SERVER在同一物理网段。
NAT模式:将请求的报文DNAT和相应的报文SNAT通过LVS调度器进行重写,再转发给内部的服务器或由内部服务器转发到客户端。
NAT模式需要开启内核转发及防火墙转发:
开启内核转发:net.ipv4.ip_forward = 1
FULLNAT模式:章文嵩去淘宝之后做的改进,其实就是LVS集群,见原理图。
LVS内部维护一个SESSION的HASH表,用来记录调度器的更改操作。
TUNNEL模式:
TUNNELR模式工作原理:DIRECTOR封装一个RIP的IP头,经过IP隧道发到RIP。
TUNNEL模式不需要DIP和RIP在LAN环境,可以跨机房。
三、LVS调度算法。
固定算法
RR 轮询
WRR 加权轮询
DH 目的地址哈希调度(Destination Hashing)
SH 原地址哈希调度
动态算法
WLC 加权最小连接数调度(分配到加权调度后连接数最小的机器,TCP连接数/加权)
LC 最小连接数调度
四、LVS安装部署实战。
1. 检查IP_VS
lsmod | grep ip_vs
2. 软链接
ln -s /usr/src/kernels/2.6.32-573.7.1.el6.x86_64/ /usr/src/linux
如果没有2.6.32-573.7.1.el6.x86_64,请安装kernel-devel
yum install -y kernel-devel
ln这个命令也可以不执行,如不执行,编译安装的时候需要指定内核路径。
3. 安装yum install -y libnl* popt*
4. CD到IPVSADM安装目录
直接MAKE MAKE INSTALL
5. 加载IP_VS到内核
方法1:/sbin/ipvsadm
方法2: modprobe ip_vs
6. 抑制ARP命令:
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
五、LVS配置实战。