1. LVS DR模型搭建

1.1 DR模型网络规划

规划要点:

  • 在生产环境中,客户端与企业互联网出口设备不会时同一网段地址,此处我们规划为同一网段地址,但是没有在客户端上配置网关,因此我们需要在企业出口设备上把LVS的VIP地址192.168.50.100做地址映射或端口映射,映射到企业出口防火墙的外网地址192.168.20.31。
  • LVS设备在LAN网络中设置了两个IP,其中192.168.50.31为实际地址DIP,192.168.50.100为虚IP,为后面的高可用规划地址。
  • 后端nginx服务器RS设备与LVS在同一网段,网关无需指向LVS设备,指向出口路由器即可。
  • 由于CIP请求的是VIP,而响应是通过RIP响应给CIP,所以数据报文一定会被丢弃。那么就需要在所有的RS的接口上配置VIP的地址。由RS上的VIP响应给CIP即可。
  • 所有的客户端都是与后端的RS主机进行TCP三次握手,而不是LVS设备。
  • DR模型下LVS设备无需打开ip_forward功能。

1.2 RS设备的VIP冲突解决方式

RS设备上配置VIP会引起地址冲突,同时路由器有可能会直接把请求发给RS设备,而不是LVS,解决方法有以下几种:

  • 在前端路由器做arp静态绑定,绑定VIP和Director的MAC地址。

  • 在RS上使用arptables工具:

    arptables -A IN -d $VIP -j DROP

    arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP

  • 在RS上修改内核参数以限制arp通告及应答级别(lo和all都要修改),保存配置需要修改配置文件/etc/sysctl.conf。

    • 1.不回应广播

      arp_ignore=1,找到设定目录find /proc -name "*arp_ignore",修改lo和all目录下的项

      0:默认值,表示可使用本地任意接口上配置的任意地址进行响应

      1:仅在请求的目标IP配置在本地主机接收到请求报文的接口上时,才给予响应

    • 2.启动时不发免费ARP

      arp_announce=2,找到设定目录find /proc -name "*arp_announce",修改lo和all目录下的项

      0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告

      1:尽量避免将接口信息向非直接连接网络进行通告

      2:必须避免将接口信息向非本网络进行通告

    • 然后把VIP地址设置在RS设备的lo0:0接口上。

1.3 DR模型访问流程

DR模型的访问流程如下:

  • 1、当用户请求到达 DS节点 ,此时请求的数据报文会先到内核空间的PREROUTING 链。 此时报文的 源IP为CIP , 目标IP为VIP 。
  • 2、 PREROUTING 检查发现数据包的 目标IP 是本机,将数据包送至 INPUT 链。
  • 3、 IPVS 比对数据包请求的服务是否为集群服务,是则将请求报文中的 源MAC 修改为 DMAC ,将 目标MAC 修改 RMAC ,然后将数据包通过 POSTROUTING 链发出。此时的 源IP 和 目的IP 均未修改,仅将 源MAC 修改为 DMAC , 目标MAC 修改为 RMAC
  • 4、由于 DS 和 RS 在同一个网络中,所以是通过二层来传输。 POSTROUTING 链检查 目标MAC 为 RIP的MAC 地址,那么此时数据包将通过 DIP 发送 RS 节点
  • 5、 RS 拆解数据报文发现请求的 IP 地址是本机,则会接收该数据报文,而后构建响应报文向外发出,此时的 源IP 是 VIP , 目标IP 是 CIP
  • 6、响应报文最终送达至客户端

1.4 DR模型配置

1.4.1 ROUTER设备配置

  • ROUTER设备的IP地址和路由信息如下:

    [root@router ~]# ip add
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:4f:a9:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.50/24 brd 192.168.20.255 scope global noprefixroute eth1
    valid_lft forever preferred_lft forever
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:4f:a9:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.50/24 brd 192.168.50.255 scope global noprefixroute eth2
    valid_lft forever preferred_lft forever #此场景中无需配置路由
    [root@router ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
    192.168.50.0 0.0.0.0 255.255.255.0 U 104 0 0 eth2
  • 打开router设备的ip_forward功能:

    [root@router ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    [root@router ~]# sysctl -p
    net.ipv4.ip_forward = 1
  • 把LVS的虚IP地址的80和443端口映射到路由器外网地址的80和443端口,也可以使用地址映射:

    #端口映射:
    [root@router ~]# iptables -t nat -A PREROUTING -d 192.168.20.50 -p tcp --dport 80 -j DNAT --to 192.168.50.100:80
    [root@router ~]# iptables -t nat -A PREROUTING -d 192.168.20.50 -p tcp --dport 443 -j DNAT --to 192.168.50.100:443 #地址映射:
    [root@router ~]# iptables -t nat -A PREROUTING -d 192.168.20.50 -j DNAT --to 192.168.50.100 #源NAT,让内部主机上网使用
    [root@router ~]# iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -j SNAT --to 192.168.20.50 #查看NAT配置:
    [root@router ~]# iptables -t nat -vnL
    Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 DNAT tcp -- * * 0.0.0.0/0 192.168.20.50 tcp dpt:80 to:192.168.50.100:80
    0 0 DNAT tcp -- * * 0.0.0.0/0 192.168.20.50 tcp dpt:443 to:192.168.50.100:443 Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 SNAT all -- * * 192.168.50.0/24 0.0.0.0/0 to:192.168.20.50

1.4.2 后端nginx服务器配置

  • nginx02主机的网络配置如下:

    #1.在lo接口配置VIP地址:
    [root@nginx02 ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    BOOTPROTO=none
    IPADDR=192.168.50.100
    NETMASK=255.255.255.255 <==注意:此处的掩码不能与RIP的掩码配置的一样,否则其他主机无法学习到RIP的ARP信息,会影响RIP的直连路由,而且设置的掩码不能过大,让VIP和CIP计算成同一网段,建议设置为32位掩码。
    ONBOOT=yes
    NAME=loopback #2.重启网卡生效:
    [root@nginx02 ~]# ifdown lo:0 && ifup lo:0
    [root@nginx02 ~]# ifconfig lo:0
    lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 192.168.50.100 netmask 255.255.255.255
    loop txqueuelen 1000 (Local Loopback) #3.eth2接口地址如下:
    [root@nginx02 ~]# ip add
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d9:f9:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.22/24 brd 192.168.50.255 scope global noprefixroute eth2
    valid_lft forever preferred_lft forever #4.路由配置:网关指向路由器192.168.50.50
    [root@nginx02 ~]# ip route add default via 192.168.50.50 dev eth2 <==默认路由必须指定下一跳地址和出接口,否则有可能会从lo:0接口出去,导致不通。 [root@nginx02 ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.50.50 0.0.0.0 UG 0 0 0 eth2
    192.168.50.0 0.0.0.0 255.255.255.0 U 103 0 0 eth2
  • 配置 arp ,不对外宣告本机 VIP 地址,也不响应其他节点发起 ARP 请求 本机的VIP

    [root@nginx02 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@nginx02 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@nginx02 ~]# echo 1 > /proc/sys/net/ipv4/conf/default/arp_ignore [root@nginx02 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@nginx02 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    [root@nginx02 ~]# echo 2 > /proc/sys/net/ipv4/conf/default/arp_announce
  • nginx03主机的网络配置如下:

    #1.在lo接口配置VIP地址:
    [root@nginx03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    BOOTPROTO=none
    IPADDR=192.168.50.100
    NETMASK=255.255.255.255 <==注意:此处的掩码不能与RIP的掩码配置的一样,否则其他主机无法学习到RIP的ARP信息,会影响RIP的直连路由,而且设置的掩码不能过大,让VIP和CIP计算成同一网段,建议设置为32位掩码。
    ONBOOT=yes
    NAME=loopback #2.重启网卡生效:
    [root@nginx03 ~]# ifdown lo:0 && ifup lo:0
    [root@nginx03 ~]# ifconfig lo:0
    lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 192.168.50.100 netmask 255.255.255.255
    loop txqueuelen 1000 (Local Loopback) #3.eth2接口地址如下:
    [root@nginx03 ~]# ip add show eth2
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:0a:bf:63 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.23/24 brd 192.168.50.255 scope global noprefixroute eth2
    valid_lft forever preferred_lft forever #4.路由配置:网关指向路由器192.168.50.50
    [root@nginx03 ~]# ip route add default via 192.168.50.50 dev eth2 <==默认路由必须指定下一跳地址和出接口,否则有可能会从lo:0接口出去,导致不通。 [root@nginx03 ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.50.50 0.0.0.0 UG 0 0 0 eth2
    192.168.50.0 0.0.0.0 255.255.255.0 U 103 0 0 eth2
  • 配置 arp ,不对外宣告本机 VIP 地址,也不响应其他节点发起 ARP 请求 本机的VIP

    [root@nginx03 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@nginx03 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@nginx03 ~]# echo 1 > /proc/sys/net/ipv4/conf/default/arp_ignore [root@nginx03 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@nginx03 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    [root@nginx03 ~]# echo 2 > /proc/sys/net/ipv4/conf/default/arp_announce
  • nginx配置文件两台WEB服务器保持一致:

    [root@nginx03 ~]# cat /etc/nginx/conf.d/xuzhichao.conf
    server {
    listen 80 default_server;
    listen 443 ssl;
    server_name www.xuzhichao.com;
    access_log /var/log/nginx/access_xuzhichao.log access_json;
    charset utf-8,gbk; #SSL配置
    ssl_certificate_key /apps/nginx/certs/www.xuzhichao.com.key;
    ssl_certificate /apps/nginx/certs/www.xuzhichao.com.crt;
    ssl_session_cache shared:ssl_cache:20m;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    keepalive_timeout 65; #防盗链
    valid_referers none blocked server_names *.b.com b.* ~\.baidu\. ~\.google\.; if ( $invalid_referer ) {
    return 403;
    } client_max_body_size 10m; #浏览器图标
    location = /favicon.ico {
    root /data/nginx/xuzhichao;
    } location / {
    root /data/nginx/xuzhichao;
    index index.html index.php; #http自动跳转https
    if ($scheme = http) {
    rewrite ^/(.*)$ https://www.xuzhichao.com/$1;
    }
    }
    } #重启nginx服务:
    [root@nginx03 ~]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@nginx03 ~]# systemctl reload nginx.service
  • nginx02主机的主页文件如下:

    [root@nginx02 certs]# cat /data/nginx/xuzhichao/index.html
    node1.xuzhichao.com page
  • nginx03主机的主页文件如下:

    [root@nginx03 ~]# cat /data/nginx/xuzhichao/index.html
    node2.xuzhichao.com page
  • 测试访问:

    [root@lvs-01 ~]# curl -Hhost:www.xuzhichao.com  -k https://192.168.50.23
    node2.xuzhichao.com page
    [root@lvs-01 ~]# curl -Hhost:www.xuzhichao.com -k https://192.168.50.22
    node1.xuzhichao.com page

1.4.3 LVS设备配置

  • LVS设备的网络配置如下:

    #1.配置虚地址192.168.50.100
    #临时配置:
    [root@lvs-01 ~]# ifconfig eth2:1 192.168.50.100/24 up #永久配置,使用配置文件:
    [root@lvs-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2:1
    TYPE=Ethernet
    BOOTPROTO=none
    IPADDR=192.168.50.100
    PREFIX=24
    DEVICE=eth2:1
    NAME=eth2:1
    DEFROUTE=yes
    ONBOOT=yes #重启网卡:
    [root@lvs-01 ~]# ifdown eth2 && ifup eth2
    [root@lvs-01 ~]# ifdown eth2:1 && ifup eth2:1 #2.LVS地址配置:
    [root@lvs-01 ~]# ip add
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:21:84:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.31/24 brd 192.168.50.255 scope global noprefixroute eth2
    valid_lft forever preferred_lft forever
    inet 192.168.50.100/24 brd 192.168.50.255 scope global secondary eth2:1
    valid_lft forever preferred_lft forever #3.LVS配置默认路由指向出口路由器192.168.50.50
    [root@lvs-01 ~]# ip route add default via 192.168.50.50 #本实验场景中存在ETH1口地址为192.168.20.0/24网段,因此需要配置指向客户端的主机路由,生产中不需要
    [root@lvs-01 ~]# ip route add 192.168.20.17/32 via 192.168.50.50 [root@lvs-01 ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.50.50 0.0.0.0 UG 0 0 0 eth2
    192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
    192.168.20.17 192.168.50.50 255.255.255.255 UGH 0 0 0 eth2
    192.168.50.0 0.0.0.0 255.255.255.0 U 102 0 0 eth2
  • 配置IPVS的规则:

    #创建80和443两个集群,并添加后端主机:
    [root@lvs-01 ~]# ipvsadm -A -t 192.168.50.100:80 -s rr
    [root@lvs-01 ~]# ipvsadm -A -t 192.168.50.100:443 -s rr
    [root@lvs-01 ~]# ipvsadm -a -t 192.168.50.100:80 -r 192.168.50.22:80 -g
    [root@lvs-01 ~]# ipvsadm -a -t 192.168.50.100:80 -r 192.168.50.23:80 -g
    [root@lvs-01 ~]# ipvsadm -a -t 192.168.50.100:443 -r 192.168.50.22:443 -g
    [root@lvs-01 ~]# ipvsadm -a -t 192.168.50.100:443 -r 192.168.50.23:443 -g [root@lvs-01 ~]# ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 192.168.50.100:80 rr
    -> 192.168.50.22:80 Route 1 0 0
    -> 192.168.50.23:80 Route 1 0 0
    TCP 192.168.50.100:443 rr
    -> 192.168.50.22:443 Route 1 0 0
    -> 192.168.50.23:443 Route 1 0 0

1.4.4 客户端访问测试

  • 客户端网络配置如下:

    [root@xuzhichao ~]# ip add
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2f:d0:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.17/24 brd 192.168.20.255 scope global noprefixroute eth1
    valid_lft forever preferred_lft forever [root@xuzhichao ~]# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
  • 测试访问:

    #1.测试使用http方式访问,重定向到https
    [root@xuzhichao ~]# for i in {1..10} ;do curl -k -L -Hhost:www,xuzhichao.com http://192.168.20.50; done
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page #2.测试直接使用https方式访问
    [root@xuzhichao ~]# for i in {1..10} ;do curl -k -Hhost:www,xuzhichao.com https://192.168.20.50; done
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
    node2.xuzhichao.com page
    node1.xuzhichao.com page
  • 查看LVS的状态信息:

    [root@lvs-01 ~]# ipvsadm -Lnc
    IPVS connection entries
    pro expire state source virtual destination
    TCP 01:46 FIN_WAIT 192.168.20.17:43444 192.168.50.100:443 192.168.50.22:443
    TCP 01:47 FIN_WAIT 192.168.20.17:43448 192.168.50.100:443 192.168.50.22:443
    TCP 01:49 FIN_WAIT 192.168.20.17:43454 192.168.50.100:443 192.168.50.23:443
    TCP 01:47 FIN_WAIT 192.168.20.17:43446 192.168.50.100:443 192.168.50.23:443
    TCP 01:47 FIN_WAIT 192.168.20.17:43450 192.168.50.100:443 192.168.50.23:443
    TCP 01:48 FIN_WAIT 192.168.20.17:43452 192.168.50.100:443 192.168.50.22:443 [root@lvs-01 ~]# ipvsadm -Ln --stats
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
    -> RemoteAddress:Port
    TCP 192.168.50.100:80 4 12 0 720 0
    -> 192.168.50.22:80 2 7 0 420 0
    -> 192.168.50.23:80 2 5 0 300 0
    TCP 192.168.50.100:443 63 441 0 42210 0
    -> 192.168.50.22:443 31 226 0 22185 0
    -> 192.168.50.23:443 32 215 0 20025 0 [root@lvs-01 ~]# ipvsadm -Ln --rate
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
    -> RemoteAddress:Port
    TCP 192.168.50.100:80 0 0 0 0 0
    -> 192.168.50.22:80 0 0 0 0 0
    -> 192.168.50.23:80 0 0 0 0 0
    TCP 192.168.50.100:443 0 1 0 57 0
    -> 192.168.50.22:443 0 0 0 29 0
    -> 192.168.50.23:443 0 0 0 29 0

1.5 DR模型的配置脚本

1.5.1 RS设备的配置脚本

[root@lvs-01 ~]# vim lvs_dr.sh
#!/bin/bash VIP=192.168.50.100
RS1=192.168.50.22
RS2=192.168.50.23
PORT1=80
PORT2=443
DEV=eth2:1
scheduler=rr
NETMASK=32 case $1 in
start) #永久配置VIP
cat >/etc/sysconfig/network-scripts/ifcfg-${DEV} <<-EOF
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=${DEV}
DEVICE=${DEV}
ONBOOT=yes
IPADDR=${VIP}
PREFIX=24
EOF # 启动网卡
ifup ${DEV} #临时配置VIP
ifconfig eth2:1 ${VIP}/${NETMASK} up # 配置LVS规则
ipvsadm -C
ipvsadm -A -t ${VIP}:${PORT1} -s ${scheduler}
ipvsadm -a -t ${VIP}:${PORT1} -r ${RS1} -g
ipvsadm -a -t ${VIP}:${PORT1} -r ${RS2} -g ipvsadm -A -t ${VIP}:${PORT2} -s ${scheduler}
ipvsadm -a -t ${VIP}:${PORT2} -r ${RS1} -g
ipvsadm -a -t ${VIP}:${PORT2} -r ${RS2} -g
;; stop) ifdown ${DEV}
rm -f /etc/sysconfig/network-scripts/ifcfg-${DEV}
ipvsadm -C
;; *)
echo "Usage: sh $0 { start | stop }"
;;
esac [root@lvs-01 ~]# sh lvs_dr.sh start
[root@lvs-01 ~]# sh lvs_dr.sh stop

1.5.2 DS设备的配置脚本

[root@nginx02 ~]# vim lvs_rs.sh
#!/usr/bin/bash VIP=192.168.50.100
DEV=lo:0 case $1 in
start)
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/default/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "2" >/proc/sys/net/ipv4/conf/default/arp_announce
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce cat >/etc/sysconfig/network-scripts/ifcfg-${DEV} <<-EOF
DEVICE=lo:0
IPADDR=${VIP}
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
EOF ifup ${DEV} # 启动网卡
pkill -0 nginx && systemctl start nginx
;;
stop)
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/default/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/default/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce ifdown ${DEV} # 停止网卡
rm -f /etc/sysconfig/network-scripts/ifcfg-${DEV}
systemctl stop nginx
;;
*)
echo "Usage: sh $0 { start | stop }"
esac [root@nginx02 ~]# bash lvs_rs.sh start
[root@nginx02 ~]# bash lvs_rs.sh stop

LVS负载均衡(3)-- DR模型搭建实例的更多相关文章

  1. LVS负载均衡之DR模式原理介绍

    LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...

  2. 21.LVS负载均衡群集-DR群集

    LVS负载均衡群集-DR群集 目录 LVS负载均衡群集-DR群集 数据包流向分析 DR模式的特点 LVS-DR中的ARP问题 IP地址冲突 解决办法 路由根据ARP表项,会将新来的请求报文转发给Rea ...

  3. LVS负载均衡之DR模式部署

      1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html     VS/DR利用大多数Internet服务的非对称特点,负 ...

  4. LVS负载均衡集群服务搭建详解(二)

    lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...

  5. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

  6. lvs负载均衡的搭建

       lvs负载均衡的搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.         在部署环境前,我们需要了解一下一些协议 一.什么是arp 地址解析协议,即ARP(Addr ...

  7. LVS负载均衡DR模式实现

    LVS负载均衡之DR模式配置 DR 模式架构图: 操作步骤 实验环境准备:(centos7平台) 所有服务器上配置 # systemctl stop firewalld //关闭防火墙 # sed - ...

  8. LVS负载均衡理论以及算法概要

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.or ...

  9. CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR);

    目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中. ...

  10. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

随机推荐

  1. Final Countdown 题解

    Problem Link 简要题意 把一个数不断减一直到变成零,每个数位变化一次需要一秒. 比如 \(300\) 变成 \(299\) 需要 \(3\) 秒. 求把一个数变成零要多少秒. 思路 对于每 ...

  2. mybatis踩坑之integer类型是0的时候会被认为0!=''是假

    当你的参数类型是integer类型,并且传的是0的时候,在SQL里面做if判断的时候 <if test="auditStatus != null and auditStatus != ...

  3. #扩展域并查集,线段树分治#CF576E Painting Edges

    题目链接 题目翻译 给定一张 \(n\) 个点 \(m\) 条边的无向图. 一共有 \(k\) 种颜色,一开始,每条边都没有颜色. 定义合法状态为仅保留染成 \(k\) 种颜色中的任何一种颜色的边,图 ...

  4. HUAWEI DevEco Testing注入攻击测试:以攻为守,守护OpenHarmony终端安全

    OpenAtom OpenHarmony(以下简称"OpenHarmony")作为面向全场景的开源分布式操作系统,可广泛应用于智能家居物联网终端.智能穿戴.智慧大屏.汽车智能座舱. ...

  5. SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束

    SQL NOT NULL 约束 SQL NOT NULL 约束用于强制确保列不接受 NULL 值.这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值. 在 CREATE TA ...

  6. 多次复制Excel符合要求的数据行:Python批量实现

      本文介绍基于Python语言,读取Excel表格文件数据,并基于其中某一列数据的值,将这一数据处于指定范围的那一行加以复制,并将所得结果保存为新的Excel表格文件的方法.   首先,我们来明确一 ...

  7. 机器学习常见的sampling策略 附PyTorch实现

    简单的采样策略 首先介绍三种简单采样策略: Instance-balanced sampling, 实例平衡采样. Class-balanced sampling, 类平衡采样. Square-roo ...

  8. HarmonyOS:NativeWindow 开发指导

      场景介绍 NativeWindow是HarmonyOS本地平台化窗口,表示图形队列的生产者端.开发者可以通过NativeWindow接口进行申请和提交Buffer,配置Buffer属性信息. 针对 ...

  9. android 当在github下载一个android项目后

    前言 github是一个很好的社区,有时候呢,我们从android下载项目下来无法build,有很多原因,比如说库不见了,或者说自己没有安装过支持的api版本等,会遇到各种问题. 在此总结一下. 问题 ...

  10. 实训篇-Html-表格练习2

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...