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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律