Lvs DR模型

   环境:

    VIP:192.168.11.17

    DIP:192.168.11.26

    RIP1:192.168.11.21

    RVIP1:192.168.11.17

    RIP2:192.168.11.30

    RVIP2:192.168.11.17

一、Director配置

[root@web2 ~]# ifconfig                                                                             #查看网络接口信息
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AD:98:5C  
          inet addr:192.168.11.26  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fead:985c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1066497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1008429 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:94370565 (89.9 MiB)  TX bytes:124526653 (118.7 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@web2 ~]# ifconfig eth0:0 192.168.11.17 netmask 255.255.255.255 broadcast 192.168.11.17        #配置eth0:0的VIP地址,并且只广播192.168.11.17这个IP
[root@web2 ~]# ifconfig                                                                             #查看网络接口信息
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AD:98:5C  
          inet addr:192.168.11.26  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fead:985c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1066497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1008429 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:94370565 (89.9 MiB)  TX bytes:124526653 (118.7 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:AD:98:5C                                              #查看配置的信息
          inet addr:192.168.11.17  Bcast:192.168.11.17  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
[root@web2 ~]# ipvsadm -A -t 192.168.11.17:80 -s rr                                                   #配置ipvsadm VIP:PORT,调度为rr
[root@web2 ~]# ipvsadm -a -t 192.168.11.17:80 -r 192.168.11.21 -g -w 1                                #加入ipvsadm VIP:PROT,权重为1,rr算法忽略权重,使用wrr即可有用
[root@web2 ~]# ipvsadm -a -t 192.168.11.17:80 -r 192.168.11.30 -g -w 2                                #加入ipvsadm VIP:PROT,权重为2,rr算法忽略权重,使用wrr即可有用
[root@web2 ~]# 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.11.17:80 rr
  -> 192.168.11.21:80             Route   1      0          0         
  -> 192.168.11.30:80             Route   2      0          0

二、RS1配置

1、安装httpd服务,并设定页面信息为===21===

[root@jroa ~]# vim /var/www/html/index.html 
[root@jroa ~]# cat /var/www/html/index.html 
<h1>===21===</h1>

2、配置环境,可以直接写一个脚本运行下就好了

[root@jroa ~]# cat skp.sh 
#!/bin/bash
#
vip=192.168.11.17
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/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/lo/arp_announce
ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip
route add -host $vip dev lo:0
;;
stop)
echo 0 > /proc/sys/net/ipv4/conf/all/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/lo/arp_announce
ifconfig lo:0 del $vip
;;
esac
[root@jroa ~]# ./skp.sh start
[root@jroa ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:4E:CE:B9  
          inet addr:192.168.11.21  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe4e:ceb9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:650171 errors:0 dropped:0 overruns:0 frame:0
          TX packets:573969 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:110093761 (104.9 MiB)  TX bytes:70375622 (67.1 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1608 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1608 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:150747 (147.2 KiB)  TX bytes:150747 (147.2 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:192.168.11.17  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

[root@jroa ~]# cat /proc/sys/net/ipv4/conf/all/arp_ignore
1
[root@jroa ~]# cat /proc/sys/net/ipv4/conf/all/arp_announce 

三、RS2配置
1、安装httpd服务,并设定页面信息为===30===
[root@CentOS7_30 ~]# vim /var/www/html/index.html 
[root@CentOS7_30 ~]# cat /var/www/html/index.html 
<h1>===30===</h1>
2、配置环境,可以直接写一个脚本运行下就好了
[root@CentOS7_30 ~]# cat skp.sh 
#!/bin/bash
#
vip=192.168.11.17
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/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/lo/arp_announce
ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip
route add -host $vip dev lo:0
;;
stop)
echo 0 > /proc/sys/net/ipv4/conf/all/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/lo/arp_announce
ifconfig lo:0 del $vip
;;
esac
[root@CentOS7_30 ~]# ./skp.sh start
[root@CentOS7_30 ~]# ifconfig 
eno16780032: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.30  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::20c:29ff:fec8:1bd5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c8:1b:d5  txqueuelen 1000  (Ethernet)
        RX packets 467264  bytes 39421187 (37.5 MiB)
        RX errors 0  dropped 40  overruns 0  frame 0
        TX packets 411092  bytes 50696991 (48.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 989  bytes 97596 (95.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 989  bytes 97596 (95.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.11.17  netmask 255.255.255.255
        loop  txqueuelen 0  (Local Loopback)



四、在Director查看下VIP的MAC地址

[root@web2 ~]# ifconfig                                                    #我们发下VIP的MAC地址为:00:0C:29:AD:98:5C 与上面的一致
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AD:98:5C  
          inet addr:192.168.11.26  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fead:985c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1068566 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1008825 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:94521078 (90.1 MiB)  TX bytes:124573363 (118.8 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:AD:98:5C  
          inet addr:192.168.11.17  Bcast:192.168.11.17  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

五、在其他机子ping测试并arp看下MAC地址对不对,并且curl访问测试

[root@redis_master ~]# ping 192.168.11.17                                #ping VIP地址
PING 192.168.11.17 (192.168.11.17) 56(84) bytes of data.
64 bytes from 192.168.11.17: icmp_seq=1 ttl=64 time=1.26 ms
^C
--- 192.168.11.17 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 608ms
rtt min/avg/max/mdev = 1.265/1.265/1.265/0.000 ms
[root@redis_master ~]# arp                                               #查看下VIP的MAC地址为:00:0c:29:ad:98:5c
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.11.9             ether   00:0c:29:49:94:30   C                     eth0
192.168.11.17            ether   00:0c:29:ad:98:5c   C                     eth0
[root@redis_master ~]# curl http://192.168.11.17                         #访问测试OK,是rr调度方式,wrr或其它请执行测试
<h1>===21===</h1>
[root@redis_master ~]# curl http://192.168.11.17
<h1>===30===</h1>
[root@redis_master ~]# curl http://192.168.11.17
<h1>===21===</h1>
[root@redis_master ~]# curl http://192.168.11.17
<h1>===30===</h1>