案例一:LVS-NAT模型
拓扑图:
实验环境
我使用vmware虚拟机完成整个实验
三台机器均使用linux操作系统。
driver :eth0 模拟外网口 。网卡直接桥接。
eth1 模拟内网口 。加入vmnet 3区域。
web1:eth0 加入vmnet 3区域
web2:eth0 加入vmnet 3区域
配置部分
web1上的网卡参数配置:
web2上的网卡参数配置:
director上的网卡参数配置:
此时的网络基本架构完成。余下的事情就是在这个网络上的节点上的一些配置。
director设备上的配置
修改文件 /etc/sysctl.conf
是规则生效
安装控制工具 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模型的简单访问
拓扑图:
实验环境
我依旧使用的是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 网卡配置
调整 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
添加一条路由
[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的配置
[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 模型已经搭建完毕
访问测试
案例三: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服务器
[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
此时连接可以建立
此时在服务器上已经可以成功的收发数据
也可以将http与https进行捆绑访问同一个“real server”。保证访问的连续性。