LVS/NAT 配置

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
查看lvs链接状态
[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
原文地址:https://www.cnblogs.com/xiangsikai/p/8427311.html