LVS三种IP负载均衡配置
1: LVS-DR模式(调度器与实际服务器都有一块网卡连在同一物理网段上)简要的网络结构如下所示
http://blog.运维网.com/attachment/201303/161657461.png
配置LVSserver
引用#!/bin/sh VIP=192.168.0.210
RIP1=192.168.0.175
RIP2=192.168.0.145
./etc/rc.d/init.d/functions
case "$1"in
start)
echo "start LVS ofDirectorServer"
#Set the Virtual IP Address
/sbin/ifconfigeth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add-host $VIP dev eth0:1
#Clear IPVS Table
/sbin/ipvsadm-C
#Set Lvs
/sbin/ipvsadm -A -t $VIP:80 -srr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80-g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
#RunLvs
/sbin/ipvsadm
;;
stop)
echo"close LVS Directorserver"
/sbin/ipvsadm -C
/sbin/ifconfigeth0:1 down
;;
*)
echo "Usage: $0{start|stop}"
exit 1
esac
配置 RIP server
引用#!/bin/bash VIP=192.168.0.210
LOCAL_Name=50bang
BROADCAST=192.168.0.255#vip'sbroadcast
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo "reparing for Real Server"
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 $VIPnetmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIPdev lo:0
;;
stop)
ifconfig lo:0 down
echo"0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo"Usage: lvs {start|stop}"
exit 1
esac
扩展知识:
arp_ignore- 整型
当对要求解析本地目标IP地址的ARP请求做响应时,定义不同的模式:
0 - (缺省): 响应配置在任何接口上的任何本地目标地址
1 - 只有当目标IP地址是配置在进入接口上的本地地址时才响应
2 - 只有当目标IP地址是配置在进入接口上的本地地址,并且发送者的IP地址处于本接口的同一网段时才响应
3 - 不响应用scope host配置的本地地址,只有通用地址和链接地址会被响应
4-7 - 保留
8 - 不响应所有的本地地址
conf/{all,interface}/arp_ignore的最大值在{interface}上收到APR请求的时候被使用。
arp_announce- 整型
在ARP请求被送到接口上,要在IP包中宣布本地源IP地址时,定义不同的限制级别:
0 - (缺省)使用配置在任何接口上的任何本地地址
1 - 尝试避免本接口上的本地地址不是目标的子网段。当目标主机请求的源地址是逻辑网段的一部分时候,这种模式有用。
如果我们生成这个请求,我们将会检查包含目标IP的所有子网,保留来自这些子网的源地址。
如果没有这样的子网,就用级别2的规则来选择。
2 - 总是使用这个目标的最好的本地地址。在这种模式下,我们忽略IP包中的源地址,尝试选择我们喜欢的本地地址给目标主机。
选择的方式是在输出接口上包含目标IP地址的所有子网里寻找主要的IP地址。
如果没有合适的的目标地址,就选择输出接口或者所有其他接口上的第一个地址。
conf/{all,interface}/arp_announce的最大值是被使用的。
提高限制级别会提供更多的机会来接收到解析目标的响应回答,而降低级别会宣布更多有效的发送者信息。
在最开始,客户端发出命令来寻找VIP的时候,只有Director会应答客户端的ARP广播,这个是为什么要对ARP广播进行限制的原因
2: LVS-TUN模式
简要的网络架构如下:
http://blog.运维网.com/attachment/201303/161741323.png
配置lvsserver
引用 #!/bin/sh
# description: start LVS ofDirectorserver
VIP=192.168.25.41(注意,lvsserver那台机器2个ip,一个是vip,一个是本身ip例如192.168.25.42)
RIP1=192.168.25.44
RIP2=192.168.25.45
#RIPn=192.168.0.n
GW=192.168.25.254
./etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS ofDirectorServer"
# set the Virtual IP Address
/sbin/ifconfig tunl0 $VIPbroadcast $VIP netmask 255.255.255.0 up
/sbin/route add -host $VIP devtunl0
#Clear IPVS table
/sbin/ipvsadm -C
#set LVS
/sbin/ipvsadm -A-t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i
/sbin/ipvsadm-a -t $VIP:80 -r $RIP2:80 -i
#/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80-i
#Run LVS
/sbin/ipvsadm
#end
;;
stop)
echo "close LVSDirectorserver"
ifconfig tunl0 down
/sbin/ipvsadm -C
;;
*)
echo"Usage: $0 {start|stop}"
exit 1
esac
.
配置real server
引用#!/bin/sh # ghb in 20060812
# description: Configrealserver tunl port and apply arp patch
VIP=192.168.25.43
./etc/rc.d/init.d/functions
case "$1" in
start)
echo "Tunl portstarting"
ifconfig tunl0 $VIP netmask 255.255.255.0 broadcast $VIPup
/sbin/route add -host $VIP dev tunl0
echo "1">/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
;;
stop)
echo"Tunl port closing"
ifconfig tunl0 down
echo 1 >/proc/sys/net/ipv4/ip_forward
echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0{start|stop}"
exit 1
esac
3: LVS-NAT模式
简要的网络架构如下图:
http://blog.运维网.com/attachment/201303/161753146.png
配置LVSserver
引用#!/bin/sh # description: start LVS ofNat
VLAN-IP=202.99.59.110
RIP1=10.1.1.2
RIP2=10.1.1.3
#RIPn=10.1.1.n
GW=10.1.1.1
./etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS ofNAtServer"
echo "1" >/proc/sys/net/ipv4/ip_forward
echo "0">/proc/sys/net/ipv4/conf/all/send_redirects
echo "0">/proc/sys/net/ipv4/conf/default/send_redirects
echo "0">/proc/sys/net/ipv4/conf/eth0/send_redirects
echo "0">/proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的)
#Clear IPVStable
/sbin/ipvsadm -C
#set LVS
/sbin/ipvsadm -a -t 202.99.59.110:80 -r10.1.1.2:80 -m -w 1
/sbin/ipvsadm -a -t 202.99.59.110:80 -r 10.1.1.3:80 -m -w1
#Run LVS
/sbin/ipvsadm
#end
;;
stop)
echo "close LVS Natserver"
echo "0" >/proc/sys/net/ipv4/ip_forward
echo "1">/proc/sys/net/ipv4/conf/all/send_redirects
echo "1">/proc/sys/net/ipv4/conf/default/send_redirects
echo "1">/proc/sys/net/ipv4/conf/eth0/send_redirects
echo "1">/proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的)
/sbin/ipvsadm-C
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
配置realserver
LVS-Nat 模式的后端机器不需要配置.
tips: -g表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。
页:
[1]