准备3台机器,分别为 dr rs1 rs2 其中dr双网卡其中eth0使用虚拟机nat模式,dr的eth1使用桥接模式
dr eth0 192.168.1.10 eth1 192.168.0.106 [桥接自动获取的]rs1
eth0 192.168.1.20rs2 eth0 192.168.1.30
把dr的 eth1看成公网ip
三台eth0内网ip
dr安装ipvsadm yum install ipvsadm -y
写个脚本 vim /usr/local/sbin/lvs_nat.sh
#!/bin/bash#director服务器开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
#关闭icmp的重定向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
#director设置NAT防火墙iptables -t nat -Fiptables -t nat -Xiptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
#director设置
ipvsadmipvsadm='/sbin/ipvsadm
'$ipvsadm -C$ipvsadm -A -t 192.168.0.106:80 -s rr
$ipvsadm -a -t 192.168.0.106:80 -r 192.168.1.20:80 -m
$ipvsadm -a -t 192.168.0.106:80 -r 192.168.1.30:80 -m
执行脚本 然后
[root@dir ~]# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConnTCP 192.168.0.106:80 wrr
-> 192.168.1.20:80 Masq 2 0 0
-> 192.168.1.30:80 Masq 1 0 0
可以得到 rs1和rs2的ip此时我们去配置rs1和rs22台机器的网关都要改成dr的eth0的ip
然后重启网卡 ifdown eth0; ifup eth0
因为2台rs我之前都装过nginx,所以直接启动nginx
[root@rs1 ~]# curl localhostrs11111111111111
[root@rs2 ~]# curl localhostrs222222222222222222222
curl第一次rs1第二次rs2,
浏览器的话可能有缓存不好测试,curl还是很好的
[root@dir ~]# curl 192.168.0.106
rs11111111111111
[root@dir ~]# curl 192.168.0.106
rs222222222222222222222
curl第一次rs1第二次rs2,
浏览器的话可能有缓存不好测试,curl还是很好的
如果我们想他2次rs1 1次rs2的话改下dr的脚本
$ipvsadm -A -t 192.168.0.106:80 -s wrr
$ipvsadm -a -t 192.168.0.106:80 -r 192.168.1.20:80 -m -w 2
$ipvsadm -a -t 192.168.0.106:80 -r 192.168.1.30:80 -m -w 1
测试[root@dir ~]# curl 192.168.0.106rs11111111111111
[root@dir ~]# curl 192.168.0.106rs11111111111111
[root@dir ~]# curl 192.168.0.106rs222222222222222222222
[root@dir ~]# curl 192.168.0.106rs11111111111111
[root@dir ~]# curl 192.168.0.106rs11111111111111
[root@dir ~]# curl 192.168.0.106rs222222222222222222222
编辑回复