案例一:LVS-NAT模型

拓扑图:

 

实验环境

我使用vmware虚拟机完成整个实验

三台机器均使用linux操作系统。

driver :eth0 模拟外网口 。网卡直接桥接。

      eth1 模拟内网口 。加入vmnet 3区域。

web1:eth0 加入vmnet 3区域

web2:eth0 加入vmnet 3区域

配置部分

web1上的网卡参数配置:

p_w_picpath

web2上的网卡参数配置:

p_w_picpath 

director上的网卡参数配置:

p_w_picpath

此时的网络基本架构完成。余下的事情就是在这个网络上的节点上的一些配置。

director设备上的配置

修改文件 /etc/sysctl.conf

p_w_picpath

是规则生效

p_w_picpath

安装控制工具 ipvsadm

[root@love ~]# cd /mnt/cdrom/Cluster

yum install ipvsadm

使用ipvsadm添加规则

ipvsadm -A -t 192.168.101.55:80 -s rr

ipvsadm -a -t 192.168.101.55:80 -r 192.168.20.101:80 -m

ipvsadm -a -t 192.168.101.55:80 -r 192.168.20.100:80 –m

启动web1与web2上的httpd服务。使用浏览器输入“http://192.168.20.100”

[root@love ~]# 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.101.55:80 rr

-> 192.168.20.100:80 Masq 1 0 1

-> 192.168.20.101:80 Masq 1 0 1

案例二:LVS-DR模型的简单访问

拓扑图:

p_w_picpath

 实验环境

我依旧使用的是vmware 虚拟机完成整个服务器群集的搭建

与服务器相关的服务均使用linux搭建

director:eth0  加入vmnet1 区域

web1:eth0 加入vmnet1 区域

eth1 加入vmnet2 区域

web2:eth0 加入vmnet1 区域

eth1 加入vmnet2 区域

nfs:eth0 加入vmnet2 区域

#由于时间所限,本人在此处就未给出完整的共享方案。后续会给出关于nfs自动挂载的相关配置方案。

步骤一:创建nfs服务器

①. 修改 /etc/exports 文件

添加如下内容:

/public 192.168.20.*(rw)

[root@love ~]# mkdir /public

[root@love ~]# chmod o+wt /public/

[root@love ~]# ll -d /public/

drwxr-xrwt 2 root root 4096 10-10 03:45 /public/

[root@love ~]# echo "hello,I's public" > /public/index.html

测试挂载

mount -t nfs 192.168.30.100:/public/ /var/www/html/

192.168.30.100:/public/ on /var/www/html type nfs (rw,addr=192.168.30.100)

Director 网卡配置

p_w_picpath

p_w_picpath

调整 lvs 的一些规则!!!

[root@love ~]# ipvsadm -A -t 192.168.20.101:80 -s rr

[root@love ~]# ipvsadm -a -t 192.168.20.101:80 -r 192.168.20.200 -g

[root@love ~]# ipvsadm -a -t 192.168.20.101:80 -r 192.168.20.201 –g

p_w_picpath 

p_w_picpath

p_w_picpath

添加一条路由

[root@love ~]# route add -host 192.168.20.101 lo:0

将如下的内容增加到/etc/sysctl.conf 文件中

net.ipv4.conf.eth0.arp_announce = 2

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.eth1.arp_announce = 2

net.ipv4.conf.eth1.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

[root@love Server]# sysctl -p

web2的配置

p_w_picpath 

p_w_picpath 

p_w_picpath 

[root@love ~]# route add -host 192.168.20.101 lo:0

将如下的内容增加到/etc/sysctl.conf 文件中

net.ipv4.conf.eth0.arp_announce = 2

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.eth1.arp_announce = 2

net.ipv4.conf.eth1.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

此时nfs未进行自动挂载外(未完待续)。LVS-DR 模型已经搭建完毕

访问测试

p_w_picpath

p_w_picpath 

案例三:LVS-DR模型基于客户端持续连接

基于以上的配置进行如下修改:

[root@love CA]# ipvsadm -A –t 192.168.20.101:0 -s rr -p 1800

[root@love CA]# ipvsadm –a –t 192.168.20.101:0 -r 192.168.20.201

[root@love CA]# ipvsadm -a –t 192.168.20.101:0 -r 192.168.20.200

此时针对同一客户端建立的连接持续 30分钟

案例四:LVS-DR模型基于端口持续连接

将ssh与http进行捆绑的同步调的连接

实验要求的基础环境及配置同上。进行的修改如下:

在director上的一些操作

添加iptables规则   #对特定数据进行打标签

iptables -t mangle -A PREROUTING -p tcp --dport 80 -d 192.168.20.101 -j MARK --set-mark 10

iptables -t mangle -A PREROUTING -p tcp --dport 22 -d 192.168.20.101 -j MARK --set-mark 10

在ipvsadm中添加规则

[root@love CA]# ipvsadm -A -f 10 -s rr -p 1800

[root@love CA]# ipvsadm -a -f 10 -r 192.168.20.201

[root@love CA]# ipvsadm -a -f 10 -r 192.168.20.200

此时ssh与http会在一段时间内持续性的同样频率的连接到某主机上

案例五:LVS-DR模型基于端口持续连接

建立ftp的持续连接

director上的配置如下:

设置iptables中的mangle规则

[root@love ~]# iptables -t mangle -A PREROUTING -p tcp -d 192.168.20.101/32 --dport 21 -j MARK --set-mark 21

[root@love ~]# iptables -t mangle -A PREROUTING -p tcp -d 192.168.20.101/32 --dport 10000:20000 -j MARK --set-mark 21

修改LVS相关的规则

安装vsftpd并修改vsftpd 的配置文件

[root@love CA]# ipvsadm -A -f 21 -s rr -p 1800

[root@love CA]# ipvsadm -a -f 21 -r 192.168.20.201

[root@love CA]# ipvsadm -a -f 21 -r 192.168.20.200

 web1与web2上安装vsftpd服务器,并如下修改配置文件的内容

安装vsftpd并修改vsftpd 的配置文件

119 pasv_min_port=10000

120 pasv_max_port=20000

在web1上创建账号“user1 密码“123”

[root@love Server]# useradd user1

[root@love Server]# passwd user1

Changing password for user user1.

New UNIX password:

BAD PASSWORD: it is WAY too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

在web2上创建账号“user1 密码“123”

[root@love Server]# useradd user1

[root@love Server]# passwd user1

Changing password for user user1.

New UNIX password:

BAD PASSWORD: it is WAY too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

在客户端登陆ftp服务器

p_w_picpath

[root@love ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

FWM 21 rr

-> 192.168.20.201:0 Route 1 0 1

-> 192.168.20.200:0 Route 1 0 0

此时连接可以建立

p_w_picpath

此时在服务器上已经可以成功的收发数据

p_w_picpath

也可以将http与https进行捆绑访问同一个“real server”。保证访问的连续性。