zoukankan      html  css  js  c++  java
  • LVS(四)LVS集群DR模式

    LVS集群DR模式

    系统:CentOS-7-x86_64-Minimal-1611.iso

    三台虚拟机网络规划:

    Director (桥接网卡)

    enp0s3    
    DIP:192.168.43.201
        192.168.43.1
    
    enp0s3:0  
    VIP:192.168.43.200

    Realserver One(桥接网卡)

    enp0s3        
    RIP:192.168.43.202
        192.168.43.1
    
    lo:0             
    VIP:192.168.43.200

    Realserver Two(桥接网卡)

    enp0s3    
    RIP:192.168.43.202
        192.168.43.1
    
    lo:0     
    VIP:192.168.43.200

    一 Director网络配置

    1.配置DIP

    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 
    IPADDR=192.168.43.201
    GATEWAY=192.168.43.1
    DNS1=8.8.8.8
    DNS2=114.114.114.114

    2.安装ifconfig

    [root@localhost ~]# sudo yum install net-tools

    3.配置网卡enp0s3:0

    [root@localhost ~]# ifconfig enp0s3:0 192.168.43.200

    4.添加路由

    [root@localhost ~]# route add -host 192.168.43.200 dev enp0s3:0

    二 RealServer配置

    将RealServer网络设置成桥接模式,上传TOMCAT,并安装JDK。

    1.关闭防火墙

    [root@localhost ~]# systemctl stop firewalld.service 
    [root@localhost ~]# systemctl disable firewalld.service

    如不关闭防火墙测试时会报错(No route to host)

    2.配置RIP

    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 
    IPADDR=192.168.43.202(203)
    GATEWAY=192.168.43.1
    DNS1=8.8.8.8
    DNS2=114.114.114.114

    (此时不能配置VIP)

    3.配置对ARP请求响应级别以及将自己地址向外通告的通告级别

    arp_ignore和arp_announce参数都和ARP协议相关,主要用于控制系统返回arp响应和发送arp请求时的动作

    arp_ignore:系统在收到外部的arp请求时,是否要返回arp响应

    Linux内核参数arp_ignore的值经常使用的有以下三种

    0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

    1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

    2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

      在DR模式下,每个RealServer要在环回网卡(lo:0)上绑定虚拟服务IP。这时候,如果客户端对于VIP的arp请求广播到了各个真实服务器节点,如果arp_ignore参数配置为0,则各个真实服务器节点都会响应该arp请求,此时客户端就无法正确获取 Director服务器的VIP(虽然VIP配置在enp0s3:0上,但是对外提供服务的还是是enp0s3)所在的网卡enp0s3的MAC地址。假如RealServer One网卡enp0s3响应了该arp请求,客户端RealServer One的enp0s3网卡的MAC地址误认为是Director服务器VIP所在网卡的MAC,从而将业务请求消息直接发到了RealServer One的enp0s3网卡。这时候虽然因为RealServer One在环回网卡上也绑定了VIP,RealServer One也能正常处理请求,业务暂时不会受到影响。但是此时由于客户端请求没有发到Director的VIP上,所以LVS的负载均衡能力没有生效。造成的后果就是,RealServer One一直在单节点运行。所以DR模式下要求arp_ignore参数要求配置为1。

    arp_announce:系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址

    Linux内核参数arp_announce的值经常使用的有以下三种

    0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP。

    1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。

    2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。

      当RealServer进行响应时,因请求的是lo:0接口的VIP,响应的时候会通过enp0s3接口转发出去,然而,在Linux系统中,响应从那个接口出去,响应报文就会使用那个接口上的地址,所以此时就会使用RealServer enp0s3的MAC和IP地址作为源地址进行响应,但是客户端又没有请求enp0s3上的RIP,所以DR模式下arp_announce参数配置为2,然后添加一条路由让lo:0接口响应即可。

    [root@localhost conf]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@localhost conf]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    
    [root@localhost conf]# echo 2 > /proc/sys/net/ipv4/conf/enp0s3/arp_announce
    [root@localhost conf]# echo 1 > /proc/sys/net/ipv4/conf/enp0s3/arp_ignore

    4.配置VIP

    [root@localhost conf]# ifconfig lo:0 192.168.43.200

    [root@localhost conf]# ifconfg lo:0 192.168.43.200 broadcast 192.168.43.200 netmask 255.255.255.255 up
    #配置路由
    [root@localhost conf]# route add -host 192.168.43.200 dev lo:0

    5.物理机验证

    ping 192.168.43.200
    #查看路由的IP是否与Director enp0s3网卡 MAC地址绑定 arp -a
    #
    删除所有arp解析

    arp -d *

    6. 修改Tomcat默认启动端口为80

    ~/tomcat/conf/server.xml

    7.修改Tomcat默认主页

    ~/tomcat/bin/webappes/ROOT/index.jsp
    <html>
        <head>     
        </head>
        <body>
            <div>
            RealServer One(Two)
            </div>
        </body>
    </html>

    三 配置规则

    [root@localhost ~]# ipvsadm -C
    [root@localhost ~]# ipvsadm -A -t 192.168.43.200:80 -s wlc
    [root@localhost ~]# ipvsadm -a -t 192.168.43.200:80 -r 192.168.43.202 -g -w 2
    [root@localhost ~]# ipvsadm -a -t 192.168.43.200:80 -r 192.168.43.203 -g -w 1
    [root@localhost ~]# ipvsadm -L -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.43.200:80 wlc
      -> 192.168.43.202:80            Route   2      0          0         
      -> 192.168.43.203:80            Route   1      0          0         
    [root@localhost ~]# 

    验证:浏览器访问Director主机http://192.168.43.200,RealServer One 和RealServer Two交替出现。

  • 相关阅读:
    Error Creating Deployment 有关Tomcat配置问题
    XML约束
    动态代理的一些问题。
    内部类的原理理解
    子父类覆盖方法和实现接口时牵扯到的细节问题。
    JavaSE 复习_4 接口多态和内部类
    JavaSE复习_3 继承
    JavaSE复习_2 对象与类
    JavaSE复习_1 Java的基本格式和运算符
    Linux 添加用户(user),组(Group)以及权限(Permission)
  • 原文地址:https://www.cnblogs.com/Matchman/p/9105644.html
Copyright © 2011-2022 走看看