一、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。

            LVS负载均衡集群技术学习笔记_路由器       

             RIP:真实IP,集群下面业务节点的IP。

             DIP:负载均衡器的IP。

             CIP:客户端的IP。


LVS负载均衡集群技术学习笔记_IP地址_02


三、LVS三种工作模式详解。

      DR模式:(Direct Routing, VS/DR)

      VS/DR模式工作原理:直接改写请求报文的目标MAC地址,将请求改写后发给RIP,由RIP将相应后的处理结果直接返回给CIP,不再经过DIRECTOR。该模式要求LV DIRECTOR和REAL SERVER在同一物理网段。

    LVS负载均衡集群技术学习笔记_路由器_03

      NAT模式:将请求的报文DNAT和相应的报文SNAT通过LVS调度器进行重写,再转发给内部的服务器或由内部服务器转发到客户端。

      NAT模式需要开启内核转发及防火墙转发:

      开启内核转发:net.ipv4.ip_forward = 1

LVS负载均衡集群技术学习笔记_集群技术_04      FULLNAT模式:章文嵩去淘宝之后做的改进,其实就是LVS集群,见原理图。

      LVS内部维护一个SESSION的HASH表,用来记录调度器的更改操作。

LVS负载均衡集群技术学习笔记_路由器_05





TUNNEL模式:

      TUNNELR模式工作原理:DIRECTOR封装一个RIP的IP头,经过IP隧道发到RIP。

      TUNNEL模式不需要DIP和RIP在LAN环境,可以跨机房。

LVS负载均衡集群技术学习笔记_路由器_06

三、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

    LVS负载均衡集群技术学习笔记_路由器_07

      如果没有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配置实战。

       LVS负载均衡集群技术学习笔记_局域网_08