LVS的DR模式

结构图

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
一、实践LVS的DR模式     lvs与rs同网段。前期规则设置
CIP:192.168.10.50  gateway:192.168.10.60
Route: 192.168.10.60    192.168.80.60   启用IP_forward的功能,不能有网关。
LVS:DIP:192.168.80.100  gateway:192.168.80.60   VIP: 192.168.80.200
RS1: RIP:192.168.80.110  gateway:192.168.80.60   VIP: 192.168.80.200
RS1: RIP:192.168.80.120  gateway:192.168.80.60   VIP: 192.168.80.200
 
思考: 1.LVS 网关一定要用,可随便设置,,为什么要设置网关。RS回应数据包不经过LVS,那么网关存在的意义就是RS当机时,LVS可以回应数据给客户时数据包要出口。
        
LVS服务器设置:
设置VIP地址   注意 IP也可以绑定在lo上。
    ip a a 192.168.80.200/24 dev eth0  
 
设置LVS的DR模式 
ipvsadm -A -t 192.168.80.200:80 -s rr
ipvsadm -a -t 192.168.80.200:80 -r 192.168.80.110
ipvsadm -a -t 192.168.80.200:80 -r 192.168.80.120:8080
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.80.200:80 rr
  -> 192.168.80.110:80            Route   1      0          0        
  -> 192.168.80.120:80            Route   1      0          0  
 
 
RS的服务器设置:
    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
设置VIP地址,注意要32位掩码 IP绑定的接口也可以其它接口,建议在lo接口上。
    ifconfig lo:0 192.168.80.200  netmask 255.255.255.255
 
 
 
客户端测试
while true ; do curl http://192.168.80.200 ;sleep 1; done

 

LVS和RS脚本方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
RS的预配置脚本:
#!/bin/bash
vip='192.168.80.200'
mask='255.255.255.255‘
dev=lo:1
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 $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
;;
stop)
ifconfig $dev down
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
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac                       
     
LVS的配置脚本:
#!/bin/bash
vip='192.168.80.200'
iface=‘lo:1'
mask='255.255.255.255'
port='80'
rs1='192.168.80.110'
rs2='192.168.80.120'
scheduler='wrr'
type='-g'
case $1 in
start)
    ifconfig $iface $vip netmask $mask #broadcast $vip up
    iptables -F
    ipvsadm -A -t ${vip}:${port} -s $scheduler
    ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
    ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
;;
stop)
ipvsadm -C
ifconfig $iface down
;;
*)
echo "Usage $(basename $0) start|stop“
exit 1
esac

 二、实践LVS的DR模式,lvs与rs不同网段。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
前期规则设置
CIP:192.168.10.50      gateway:192.168.10.60
Route: eth0(192.168.10.60)    eth0(192.168.80.60 、10.0.0.200/8 ) 启用IP_forward的功能
LVS:DIP:192.168.80.100  gateway:192.168.80.60   VIP: 10.0.0.100/32    gateway和VIP两个IP绑定在同一个网卡上
RS1: RIP:192.168.80.110  gateway:192.168.80.60   VIP: 10.0.0.100/32  VIP绑定在lo
RS2: RIP:192.168.80.120  gateway:192.168.80.60   VIP: 10.0.0.100/32  VIP绑定在lo
 
 
测试中RS的网关也可以指向10.0.0.0.200, LVS中的VIP地址的掩码可以是8或32 ,
测试中发现Route中的(192.168.80.60 、10.0.0.0.200/8 )测试中可以只设置其中的一个, RS的网关指向其中的一个,
(网关的掩码要24,如果是32就判断与10.0.0.0.200不是同个网段)。
 
Route设置
    ip a a  10.0.0.200/8 dev eth0   与80.60同一网卡上。
     
[root@localhost7e ~]# nmcli connection  modify  eth0 +ipv4.addresser 10.0.0.200/8
[root@localhost7e ~]# nmcli connection up eth0
     
 
LVS服务器设置:
设置VIP地址  
    ip addr add  10.0.0.100/32 dev eth0
设置LVS的DR模式 
    ipvsadm -A -t 10.0.0.100:80 -s rr
    ipvsadm -a -t 10.0.0.100:80   -r 192.168.80.110
    ipvsadm -a -t 10.0.0.100:80   -r 192.168.80.120
 
    ipvsadm -ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  10.0.0.100:80 rr
      -> 192.168.80.110:80            Route   1      0          0        
      -> 192.168.80.120:80            Route   1      0          0  
RS的服务器设置:
    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
两台RS设置VIP地址
    ip addr add 10.0.0.100/8 dev lo:1
 
客户端测试
while true ; do curl http://10.0.0.100 ;sleep 1; done

  LVS和RS脚本方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
RS的预配置脚本:
#!/bin/bash
vip='10.0.0.100'
mask='255.0.0.0‘
dev=lo:1
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 $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
;;
stop)
ifconfig $dev down
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
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac                       
     
LVS的配置脚本:
#!/bin/bash
vip='10.0.0.100'
iface=‘eth0'
mask='255.0.0.0'
port='80'
rs1='192.168.80.110'
rs2='192.168.80.120'
scheduler='wrr'
type='-g'
case $1 in
start)
    ifconfig $iface $vip netmask $mask #broadcast $vip up
    iptables -F
    ipvsadm -A -t ${vip}:${port} -s $scheduler
    ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
    ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
;;
stop)
ipvsadm -C
ifconfig $iface down
;;
*)
echo "Usage $(basename $0) start|stop“
exit 1
esac

  

posted @   yuanbangchen  阅读(304)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示