From 32fb25d1bd938160c8628d582e82064e26e2aefc Mon Sep 17 00:00:00 2001 From: newrain001 Date: Tue, 31 Jan 2023 14:08:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'os/lvs'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- os/lvs/lvs-dr-real.sh | 20 ++++++++++++++++++++ os/lvs/lvs-dr-server.sh | 30 ++++++++++++++++++++++++++++++ os/lvs/lvs-nat-real.sh | 17 +++++++++++++++++ os/lvs/lvs-nat-server.sh | 25 +++++++++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 os/lvs/lvs-dr-real.sh create mode 100644 os/lvs/lvs-dr-server.sh create mode 100644 os/lvs/lvs-nat-real.sh create mode 100644 os/lvs/lvs-nat-server.sh diff --git a/os/lvs/lvs-dr-real.sh b/os/lvs/lvs-dr-real.sh new file mode 100644 index 0000000..2e20a1d --- /dev/null +++ b/os/lvs/lvs-dr-real.sh @@ -0,0 +1,20 @@ +#!/usr/bin/bash + +VIP=192.168.96.200 +NETMASK=32 + +case $1 in +start) + ip addr add dev lo $VIP/$NETMASK + echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore #忽略arp广播 + echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce #匹配精确ip地址回包 + ;; +stop) + ip addr del dev lo $VIP/$NETMASK + echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore + echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce + ;; +*) + echo "Usage: $0 {start|stop}" + ;; +esac diff --git a/os/lvs/lvs-dr-server.sh b/os/lvs/lvs-dr-server.sh new file mode 100644 index 0000000..42b5aab --- /dev/null +++ b/os/lvs/lvs-dr-server.sh @@ -0,0 +1,30 @@ +#!/usr/bin/bash + +# VIP +VIP=192.168.96.200 +# 真实服务器 +REAL_SERVER=(192.168.96.167 192.168.96.168 192.168.96.170) +# 真实服务器权重 +WEIGHT=(3 5 15) +# 调度算法 +SCHEDULER=wrr +INTERFACE=ens33 +NETMASK=32 + +case $1 in +start) + ip addr add $VIP/$NETMASK dev $INTERFACE + # 设置虚拟服务 + ipvsadm -A -t $VIP:80 -s $SCHEDULER + for i in ${!REAL_SERVER[@]} + do + ipvsadm -a -t $VIP:80 -r ${REAL_SERVER[$i]}:80 -g -w ${WEIGHT[$i]} + done + ;; +stop) + ipvsadm -C + ;; +*) + echo "Usage: $0 {start|stop}" + ;; +esac diff --git a/os/lvs/lvs-nat-real.sh b/os/lvs/lvs-nat-real.sh new file mode 100644 index 0000000..b4c9eac --- /dev/null +++ b/os/lvs/lvs-nat-real.sh @@ -0,0 +1,17 @@ +#!/usr/bin/bash + +# 默认网关 +GATEWAY=192.168.96.166 +# 网卡 +INTERFACE=ens33 + +case $1 in +start) + ip route add default via $GATEWAY dev $INTERFACE + ;; +stop) + ip route del default via $GATEWAY dev $INTERFACE + ;; +*) + echo "Usage: $0 {start|stop}" +esac diff --git a/os/lvs/lvs-nat-server.sh b/os/lvs/lvs-nat-server.sh new file mode 100644 index 0000000..d979df7 --- /dev/null +++ b/os/lvs/lvs-nat-server.sh @@ -0,0 +1,25 @@ +#!/usr/bin/bash + +VIP=10.9.29.110 +REAL_SERVER=(192.168.96.167 192.168.96.168) +WEIGHT=(1 1) +SCHEDULER=wrr + +case $1 in +start) + ipvsadm -A -t $VIP:80 -s $SCHEDULER + echo "1" > /proc/sys/net/ipv4/ip_forward + # 设置虚拟服务 + for i in ${!REAL_SERVER[@]} + do + ipvsadm -a -t $VIP:80 -r ${REAL_SERVER[$i]}:80 -m -w ${WEIGHT[$i]} + done + ;; +stop) + ipvsadm -C + echo "0" > /proc/sys/net/ipv4/ip_forward + ;; +*) + echo "Usage: $0 {start|stop}" + ;; +esac \ No newline at end of file