最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

LVS实验文档

来源:动视网 责编:小OO 时间:2025-09-25 13:47:45
文档

LVS实验文档

VS/NATReal1Eth1Eth0DirectorReal1注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!主机IP网关Client192.168.1.11192.168.1.10DirectorEth1:192.168.1.10/24(VIP)Eth0:10.1.1.10/24(DIP)Real1Eth0
推荐度:
导读VS/NATReal1Eth1Eth0DirectorReal1注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!主机IP网关Client192.168.1.11192.168.1.10DirectorEth1:192.168.1.10/24(VIP)Eth0:10.1.1.10/24(DIP)Real1Eth0
VS/NAT

Real 1

Eth1

Eth0

Director

 

Real 1

注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only

本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252

所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!

主机IP网关
Client192.168.1.11192.168.1.10
DirectorEth1:192.168.1.10/24(VIP)

Eth0:10.1.1.10/24(DIP)

Real1Eth0:10.1.1.11/24(RIP)

10.1.1.10
Real2Eth0:10.1.1.12/24(RIP)

10.1.1.10
测试环境:

real1、real2都启动http服务

Real1网页的内容为:

I'm Real 1 !!!!!!!!!!!!!

IP:10.1.1.11

Real2网页的内容为:

I'm Real 2 !!!!!!!!!!!!!

IP:10.1.1.12

安装软件:

 ln -s /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux

 tar xf ipvsadm-1.24.tar.gz

 cd ipvsadm-1.24

 make

 make install

在Director自己编辑一个服务脚本lvsdi,内容如下:

[root@director ~]# more /etc/init.d/lvsdi

#!/bin/bash

#description:start LVS of DirectorServer

VIP=192.168.1.10

RIP1=10.1.1.11

RIP2=10.1.1.12

case "$1" in

        start)

        echo "start LVS of DirectorServer"

echo "1" > /proc/sys/net/ipv4/ip_forward

        /sbin/ipvsadm -C

        /sbin/ipvsadm -A -t $VIP:80 -s rr

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -m

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -m

touch /var/lock/subsys/ipvsadm > /dev/null 2>&1

        /sbin/ipvsadm

        ;;

        stop)

        /sbin/ipvsadm -C

        /sbin/ipvsadm -Z

rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1

        echo "ipvsadm stoped!!"

        ;;

        status)

        if [ ! -e /var/lock/subsys/ipvsadm ];then

        echo "ipvsadm stoped!!!!!!!!"

        exit 1

        else

        ipvsadm -ln

        echo "...............ipvsadm is OK!"

        fi

        ;;

        restart)

        $0 stop

        $0 start

        ;;

        *)

        echo "Usage:$0 {start|stop|restart|status}"

        exit 1

esac

exit 0

注意权限:chmod +x /etc/init.d/lvsdi

我们运行这个服务:service lvsdi start

测试:

我们在客户机浏览器中输入http://192.168.1.10,可以看到浏览的是real的内容,反复刷新,出现的内容:

我们关闭real中的一台,网页内容都还可以显示

因为在工作环境中,所有的real都是共享数据的,也就是说他们提供的服务都是一样的,这里因为是做测试,所以两台主机的网页内容不一样,成功了!!!!!!!!!!!!!!!

我们看一下director的状态,由于使用的是Round Robin(rr)算法,发现real1、real2的应答数都是一样的

[root@director ~]# /etc/init.d/lvsdi status

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP  192.168.1.10:80 rr

  -> 10.1.1.12:80                 Masq    1      0          16

  -> 10.1.1.11:80                 Masq    1      0          16

...............ipvsadm is OK!

下面我们使用另一个算法Weighted Round Robin(wrr)

改变算法:

[root@director ~]# /etc/init.d/lvsdi stop

ipvsadm stoped!!

[root@director ~]# /etc/init.d/lvsdi start

start LVS of DirectorServer

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP  192.168.1.10:http rr

-> 10.1.1.12:http Masq 1 0 0

-> 10.1.1.11:http Masq 1 0 0

[root@director ~]# ipvsadm -E -t 192.168.1.10:80 -s wrr

改变权重:

[root@director ~]# ipvsadm -e -t 192.168.1.10:80 -r 10.1.1.11 -m -w 1

[root@director ~]# ipvsadm -e -t 192.168.1.10:80 -r 10.1.1.12 -m -w 5

然后我们到客户端的网页反复刷新,再次查看director的状态:

[root@director ~]# 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.1.10:80 wrr

-> 10.1.1.12:80 Masq 5 0 70

-> 10.1.1.11:80 Masq 1 0 45

我们可以看出

两台主机响应请求的次数不一样了!!!!!!!!!!

VS/DR

                                                                  

                                                               

        

主机IP网关
真实机10.1.1.252
DirectorEth0:10.1.1.10(DIP)

Eth0:0:10.1.1.250/32(VIP)

10.1.1.252
Real1Eth0:10.1.1.11(RIP)

lo0:0:10.1.1.250/32(VIP)

10.1.1.252
Real2Eth0:10.1.1.12(RIP)

lo0:0:10.1.1.250/32(VIP)

10.1.1.252
注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only

本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252

所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!

测试环境:

real1、real2都启动http服务

Real1网页的内容为:

I'm Real 1 !!!!!!!!!!!!!

IP:10.1.1.11

Real2网页的内容为:

I'm Real 2 !!!!!!!!!!!!!

IP:10.1.1.12

安装软件:

 ln -s /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux

 tar xf ipvsadm-1.24.tar.gz

 cd ipvsadm-1.24

 make

 make install

在Director自己编辑一个服务脚本lvsdi,内容如下:

[root@director ~]# more /etc/init.d/lvsdi

#!/bin/bash

#description:start LVS of DirectorServer

#define used ip.

#GW=10.1.1.252

VIP=10.1.1.250

RIP1=10.1.1.11

RIP2=10.1.1.12

        case "$1" in

        start)

        echo "start LVS of Directort Server"

        /sbin/ipvsadm -C

        /sbin/ifconfig eth0:0 $VIP broadcast $VIP 255.255.255.255 up

        /sbin/route add -host $VIP dev eth0:0

        /sbin/ipvsadm -A -t $VIP:80 -s rr

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

touch /var/lock/subsys/ipvsadm > /dev/null 2>&1

/sbin/arping -I eth0 -c 5 -s $VIP $GW > /dev/null 2>&1

        /sbin/ipvsadm

        ;;

        stop)

        /sbin/ipvsadm -C

        /sbin/ipvsadm -Z

        /sbin/ifconfig eth0:0 down

        route del $VIP

rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1

        /sbin/arping -I eth0 -c 5 -s $VIP $GW

        echo "ipvsadm stoped"

        ;;

        status)

        if [ ! -e /var/lock/subsys/ipvsadm ];then

        echo "ipvsadm stoped!!!"

        exit 1

        else

        ipvsadm -ln

        echo "............ipvsadm is OK!"

        fi

        ;;

        restart)

        $0 stop

        $0 start

        ;;

        *)

        echo "Usage:$0{start|stop|restart|status}"

        exit 1

esac

exit 0

在两个real名自编辑一个一样的的服务脚本lvs_r,内容如下:

[root@real1 ~]# more /etc/init.d/lvs_r

#!/bin/bash

#chkconfig: 2345 70 80

#description:lvs_rs

VIP=10.1.1.250

        case $1 in

        start)

        echo "Start LVS of Real Server"

        echo "lo:0 port starting"

        /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

        /sbin/route add -host $VIP dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/eth0/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 "close LVS Real Server"

        echo "lo:0 port closing"

        /sbin/ifconfig lo:0 down

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce

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}"

        exit 1

esac

测试:

在real1和real2启动lvs_r脚本:[root@real1 ~]# service lvs_r start

在directory启动lvsdi脚本:[root@director ~]# service lvsdi start

[root@director ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP  10.1.1.250:80 rr

-> 10.1.1.12:80 Route 1 0 26

-> 10.1.1.11:80 Route 1 0 26

跟上面一样的,这里就不折腾了!!!!!!!!!!!!!!!!!!!1

VS/TUN

主机IP网关
真实机10.1.1.252
DirectorEth0:10.1.1.10(DIP)

Eth0:0:10.1.1.250/32(VIP)

10.1.1.252
Real1Eth0:10.1.1.11(RIP)

Tunl0:0:10.1.1.250/32(VIP)

10.1.1.252
Real2Eth0:10.1.1.12(RIP)

Tunl0:0:10.1.1.250/32(VIP)

10.1.1.252
注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only

本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252

所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!

测试环境:

real1、real2都启动http服务

Real1网页的内容为:

I'm Real 1 !!!!!!!!!!!!!

IP:10.1.1.11

Real2网页的内容为:

I'm Real 2 !!!!!!!!!!!!!

IP:10.1.1.12

安装软件:

 ln -s /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux

 tar xf ipvsadm-1.24.tar.gz

 cd ipvsadm-1.24

 make

 make install

其实这个拓扑和其它方面都是一样的,只是把lo0:0设备变成了tunl0设备了,下面我就写

Director跟real的配置了,每台主机的配置都是以脚本的形式形成

Directory:

[root@director ~]# more /etc/init.d/lvsdi

#!/bin/bash

#description:start LVS of DirectorServer

#define used ip.

#GW=10.1.1.252

VIP=10.1.1.250

RIP1=10.1.1.11

RIP2=10.1.1.12

        case "$1" in

        start)

        echo "start LVS of Directort Server"

        /sbin/ipvsadm -C

        /sbin/ifconfig eth0:0 $VIP broadcast $VIP 255.255.255.255 up

        /sbin/route add -host $VIP dev eth0:0

        /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

touch /var/lock/subsys/ipvsadm > /dev/null 2>&1

/sbin/arping -I eth0 -c 5 -s $VIP $GW > /dev/null 2>&1

        /sbin/ipvsadm

        ;;

        stop)

        /sbin/ipvsadm -C

        /sbin/ipvsadm -Z

        /sbin/ifconfig eth0:0 down

        route del $VIP

rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1

        /sbin/arping -I eth0 -c 5 -s $VIP $GW

        echo "ipvsadm stoped"

        ;;

        status)

        if [ ! -e /var/lock/subsys/ipvsadm ];then

        echo "ipvsadm stoped!!!"

        exit 1

        else

        ipvsadm -ln

        echo "............ipvsadm is OK!"

        fi

        ;;

        restart)

        $0 stop

        $0 start

        ;;

        *)

        echo "Usage:$0{start|stop|restart|status}"

        exit 1

esac

exit 0

Real:

[root@real1 ~]# more /etc/init.d/lvs_r

#!/bin/bash

#chkconfig: 2345 70 80

#description:lvs_rs

VIP=10.1.1.250

        case $1 in

        start)

        echo "Start LVS of Real Server"

        echo "tunl0:0 port starting"

        ip addr add dev tunl0 10.1.1.250/24 broadcast 10.1.1.250

        ip link set dev tunl0 up

        /sbin/route add -host $VIP dev tunl0

echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/eth0/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 "close LVS Real Server"

        echo "tunl0 port closing"

        /sbin/ifconfig tunl0 down

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce

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}"

        exit 1

esac

测试:

跟前面是一样的!!!!!!!!!!!!!

[root@director init.d]# service lvsdi start

start LVS of Directort Server

SIOCSIFADDR: 无效的参数

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP  10.1.1.250:http rr

-> 10.1.1.12:http Tunnel 1 0 0

-> 10.1.1.11:http Tunnel 1 0 0

NAT + DR + TUN

主机IP网关
真实机10.1.1.252
DirectorEth0:10.1.1.10(DIP)

Eth1:192.168.1.10(DIP)

Eth0:0:10.1.1.250/32(VIP)

10.1.1.252
Real1Eth0:192.168.1.11(RIP)

192.168.1.10
Real2Eth0:10.1.1.12(RIP)

Lo:0:10.1.1.250/32(VIP)

10.1.1.252
Real3Eth0:10.1.1.13(RIP)

Tunl0:10.1.1.250/32(VIP)

10.1.1.252
注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only

本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252

所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!

测试环境:

real1、real2都启动http服务

Real1网页的内容为:

I'm Real 1 !!!!!!!!!!!!!

IP:192.168.1.11

Real2网页的内容为:

I'm Real 2 !!!!!!!!!!!!!

IP:10.1.1.12

Real3网页的内容为:

I'm Real 3 !!!!!!!!!!!!!

IP:10.1.1.13

安装软件:

 ln -s /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux

 tar xf ipvsadm-1.24.tar.gz

 cd ipvsadm-1.24

 make

 make install

其实这个拓扑和其它方面都是一样的,只是把lo0:0设备变成了tunl0设备了,下面我就写

Director跟real的配置了,每台主机的配置都是以脚本的形式形成

Director配置:

[root@director init.d]# more /etc/init.d/lvsdi

#!/bin/bash

#description:start LVS of DirectorServer

#define used ip.

#GW=10.1.1.252

VIP=10.1.1.250

RIP1=192.168.1.11

RIP2=10.1.1.12

RIP3=10.1.1.13

        case "$1" in

        start)

        echo "start LVS of Directort Server"

echo "1" >/proc/sys/net/ipv4/ip_forward

        /sbin/ipvsadm -C

        /sbin/ifconfig eth0:0 $VIP broadcast $VIP 255.255.255.255 up

        /sbin/route add -host $VIP dev eth0:0

        /sbin/ipvsadm -A -t $VIP:80 -s rr

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -m

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -i

touch /var/lock/subsys/ipvsadm > /dev/null 2>&1

/sbin/arping -I eth0 -c 5 -s $VIP $GW > /dev/null 2>&1

        /sbin/ipvsadm

        ;;

        stop)

        /sbin/ipvsadm -C

        /sbin/ipvsadm -Z

        /sbin/ifconfig eth0:0 down

        route del $VIP

rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1

        /sbin/arping -I eth0 -c 5 -s $VIP $GW

        echo "ipvsadm stoped"

        ;;

        status)

        if [ ! -e /var/lock/subsys/ipvsadm ];then

        echo "ipvsadm stoped!!!"

        exit 1

        else

        ipvsadm -ln

        echo "............ipvsadm is OK!"

        fi

        ;;

        restart)

        $0 stop

        $0 start

        ;;

        *)

        echo "Usage:$0{start|stop|restart|status}"

        exit 1

esac

exit 0

Real1不需要配置,只要把网关指向directory就行了

Real2跟Real3是一样的:

[root@real2 ~]# more /etc/init.d/lvs_r

#!/bin/bash

#chkconfig: 2345 70 80

#description:lvs_rs

VIP=10.1.1.250

        case $1 in

        start)

        echo "Start LVS of Real Server"

        echo "lo:0 port starting"

        ip addr add dev lo:0 10.1.1.250/32 broadcast 10.1.1.250

        ip link set dev lo:0 up

        /sbin/route add -host $VIP dev tunl0

echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/eth0/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 "close LVS Real Server"

        echo "lo:0 port closing"

        /sbin/ifconfig lo:0 down

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce

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}"

        exit 1

Esac

文档

LVS实验文档

VS/NATReal1Eth1Eth0DirectorReal1注:我这些实验都是用虚拟机做的,eth0是桥接,eth1是host-only本址网卡IP地址为:10.1.1.252,host-onlyIP地址是192.168.1.252所以自己的真实主机也可以做客户机来测试的!!!!!!!!!!!主机IP网关Client192.168.1.11192.168.1.10DirectorEth1:192.168.1.10/24(VIP)Eth0:10.1.1.10/24(DIP)Real1Eth0
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top