LVS NAT模式搭建(不包含健康健康机制keepalived)
NAT模式请求与响应都需要经过调度器LVS,因此调度器需要配置双网卡。
准备工作:
DS:一个网卡连接公网IP,一个连接内部私有IP
RS:只需一个网卡,私有网络即可
地址准备:
DS:一张网卡nat模式做公网IP地址,也即VIP:192.168.0.121,另一张网卡vmnet2,做DIP:192.168.20.1
RS:跟DS一样,采用vmnet2做RIP,RS1:192.168.20.7 ,RS2:192.168.20.8
1、DS的IP
RS1:
需要做的就是DS的DIP不需要网关,而两台RS地址的网关就是DIP的网关。
RS2:
2、DS上开启IP转发,因为DS两个网卡,要保证外部进来的请求可以送vmnet2网卡传输进内部网络
修改/proc/sys/net/ipv4/ip_forward值为1,如果修改后查看时还是0,就去修改/etc/sysctl.conf文件,
net.ipv4.ip_forward = 1
3、配置两台RS上的web 网页
echo "This is rs1 web page" >> /var/www/html/index.html
echo "This is rs2 web page" >> /var/www/html/index.html
4、启动httpd服务
5、DS上配置集群
ipvsadm -A -t 192.168.0.121:80 -s rr #创建该192.168.0.121集群,-t代表tcp,后面的端口代表web集群,-s后面的rr代表轮询算法
ipvsadm -A -t 192.168.0.121:80 -r 192.168.20.7 -m #为该集群加入RIP,-m代表nat模式
ipvsadm -A -t 192.168.0.121:80 -r 192.168.20.8 -m #为该集群加入RIP,-m代表nat模式
6、查看调度规则
[aaa@qq.com network-scripts]# ipvsadm -L #会将IP解析成域名
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP dr:http rr
-> 192.168.20.7:http Masq 1 0 0
-> 192.168.20.8:http Masq 1 0 0
[aaa@qq.com network-scripts]# ipvsadm -L -n #不会解析,直接是VIP
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.121:80 rr
-> 192.168.20.7:80 Masq 1 0 0
-> 192.168.20.8:80 Masq 1 0 0
7、测试,直接访问VIP,谷歌有时有缓存,也许是一次完整的tcp连接没有断开,可以再开一台linux机器,
安装一个linux下的浏览器。elinks。测试如下:
[aaa@qq.com ~]# for ((i=1;i<=11;i++)); do elinks -dump http://192.168.0.121; done
rs1 web test page
rs2 web test page
rs1 web test page
rs2 web test page
rs1 web test page
rs2 web test page
rs1 web test page
rs2 web test page
rs1 web test page
rs2 web test page
rs1 web test page
8、调度器上也可以查看,ipvsadm -L --stats可以查看具体多少个数据包以及字节数
[aaa@qq.com network-scripts]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.121:80 rr
-> 192.168.20.7:80 Masq 1 0 11
-> 192.168.20.8:80 Masq 1 0 11
后面的InActConn下代表每个RS分担了多少次连接。可以看出是轮询模式
9、可以保存下刚才配置的ipvs规则,使用时使用ipvsadm -R < /etc/sysconfig/ipvsadm。
[aaa@qq.com network-scripts]# ipvsadm -S > /etc/sysconfig/ipvsadm
[aaa@qq.com network-scripts]# cat /etc/sysconfig/ipvsadm
-A -t dr:http -s rr
-a -t dr:http -r 192.168.20.7:http -m -w 1
-a -t dr:http -r 192.168.20.8:http -m -w 1
10、修改模式为轮询权重模式
[aaa@qq.com network-scripts]# ipvsadm -E -t 192.168.0.121:80 -s wrr
[aaa@qq.com network-scripts]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.121:80 wrr
-> 192.168.20.7:80 Masq 1 0 0
-> 192.168.20.8:80 Masq 1 0 0
[aaa@qq.com network-scripts]# ipvsadm -e -t 192.168.0.121:80 -r 192.168.20.7 -w 1 -m
[aaa@qq.com network-scripts]# ipvsadm -e -t 192.168.0.121:80 -r 192.168.20.8 -w 3 -m
[aaa@qq.com network-scripts]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.121:80 wrr
-> 192.168.20.7:80 Masq 1 0 0
-> 192.168.20.8:80 Masq 3 0 0
11、测试
[aaa@qq.com ~]# for ((i=1;i<=11;i++)); do elinks -dump http://192.168.0.121; done
rs2 web test page
rs1 web test page
rs2 web test page
rs2 web test page
rs2 web test page
rs1 web test page
rs2 web test page
rs2 web test page
rs2 web test page
rs1 web test page
rs2 web test page
12、其余算法修改一个原理。可以自行尝试。
上一篇: 重学前端笔记(七)-CSS语法
下一篇: 今天和朋友吃饭