LVS/NAT 配置
实验环境
- 三台主机:Linux Centos 6.4 32位
- 调度器Director:192.168.1.160(内网IP)、192.168.2.20(公网IP)
- HTTP真实服务器Real server1:192.168.1.115(内网IP)、192.168.160(网关)
- HTTP真实服务器Real server2:192.168.1.111(内网IP)、192.168.160(网关)
- 关键点:Real server网关必须要与Director内网IP一致。
- # 把三台服务器的iptables规则清空并保存 #
- 命令:iptables -F; iptables -t nat -F; service iptables save
实验拓补图
实验操作
1、Director端:安装LVS工具
yum install -y ipvsadm.i686 0:1.26-2.el6
2、Director端:写入脚本
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/eth2/send_redirects # director 设置nat防火墙 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE # director设置ipvsadm IPVSADM='/sbin/ipvsadm' $IPVSADM -C # 前面是公网IP、后面是私网IP -w是权重 使用lc算法(最少链接) $IPVSADM -A -t 192.168.2.20:80 -s lc $IPVSADM -a -t 192.168.2.20:80 -r 192.168.1.115:80 -m -w 1 $IPVSADM -a -t 192.168.2.20:80 -r 192.168.1.111:80 -m -w 1
3、Director端:执行脚本
sh /usr/local/sbin/lvs_nat.sh
4、测试
iptables -nvL -t nat Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 MASQUERADE all -- * * 192.168.1.0/24 0.0.0.0/0
ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.2.20:http lc -> 192.168.1.111:http Masq 1 0 0 -> 192.168.1.115:http Masq 1 0 0
[root@dir ~]# curl 192.168.2.20 LVS 2 [root@dir ~]# curl 192.168.2.20 LVS 1 [root@dir ~]# curl 192.168.2.20 LVS 2 [root@dir ~]# curl 192.168.2.20 LVS 1