lvs分为DR/NAT/TUN,3种模式,相信大家都了解了,但是有些网站网络环境比较复杂,很多网段、各服务之间又有互相调用、两地机房又有VPN,那么以上提及的3中模式都难以适应此环境。
因此,我介绍下centos下,iptables+LVS/NAT实现SNAT模式,以解决以上提出的问题,下面先说下原理:
当访问到LVS,iptables会根据规则把访问的源IP改成指定ip,然后交给LVS处理,lvs会根据标准的nat模式把目标地址改为realserver,realserver回复数据到LVS,修改回源、目标地址返回给用户,由于客户端回包总是经过LVS服务器。因此,适用于大多数环境,同时由于以上原因后端服务器(realserver)是获取不到用户IP的。
好,下面说说如何搭建:
需要软件包:
iptables-1.4.20.tar.bz2 ipvsadm-1.26.tar.gz linux-3.2.29.tar.gz keepalived-1.2.7.tar.gz
安装步骤:
01.
#准备编译环境
02.
rpm -ivh epel-release-6-8.noarch.rpm
03.
yum
install
popt popt-devel libnl libnl-devel popt-static gcc openssl openssl-devel
04.
05.
06.
07.
08.
#编译内核
09.
cd
/usr/src
10.
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.29.
tar
.gz
11.
tar
zxvf linux-3.2.29.
tar
.gz
12.
cd
linux-3.2.29
13.
#------.config 生成方法------
14.
# make oldconfig
15.
# CONFIG_NETFILTER_XT_MATCH_IPVS=m (手动选择)
16.
# 修改文件 .config
17.
# 添加下列3行
18.
# CONFIG_SYSFS_DEPRECATED=y
19.
# CONFIG_SYSFS_DEPRECATED_V2=y
20.
#-------------------
21.
make
all -j 16
22.
make
modules_install
23.
make
install
24.
#修改配置从新内核启动
25.
vi
/etc/grub.conf
26.
reboot
27.
28.
29.
30.
31.
#编译安装iptables
32.
cd
..
33.
tar
jxvf iptables-1.4.20.
tar
.bz2
34.
cd
iptables-1.4.20
35.
./configure
36.
make
37.
make
install
38.
cp
libxtables/.libs/libxtables.so.10 /lib
39.
cp
/usr/
local
/sbin/iptables /sbin/
40.
cp
/usr/
local
/sbin/iptables-restore /sbin/
41.
cp
/usr/
local
/sbin/iptables-save /sbin/
42.
service iptables restart
43.
44.
45.
46.
#编译安装ipvsadmin
47.
cd
..
48.
tar
zxvf ipvsadm-1.26.
tar
.gz
49.
cd
ipvsadm-1.26
50.
make
51.
make
install
52.
53.
54.
55.
#编译安装keepalived
56.
cd
..
57.
tar
zxvf keepalived-1.2.7.
tar
.gz
58.
cd
keepalived-1.2.7
59.
./configure
60.
make
61.
make
install
62.
cp
/usr/
local
/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
63.
cp
/usr/
local
/etc/sysconfig/keepalived /etc/sysconfig/
64.
cp
/usr/
local
/sbin/keepalived /usr/sbin/
65.
mkdir
/etc/keepalived
66.
#修改keepalived配置,使用表装的NAT模式
67.
vim /etc/keepalived/keepalived.conf
68.
69.
70.
71.
#修改sysctl.conf及模块配置文件
72.
net.ipv4.ip_forward = 1
73.
net.ipv4.vs.conntrack = 1
74.
echo
"modprobe ip_vs"
&
gt
; /etc/sysconfig/modules/lvs.modules
75.
#重启(从新内核启动)
76.
77.
78.
79.
#配置iptables
80.
#例如www.abc.com解析为192.168.131.205;
81.
#并在LVS服务器192.168.131.204,中配置NAT模式;
82.
#服务器192.168.131.1 这台机器要通过192.168.131.205访问此站点;
83.
#那么就需要配置iptables。
84.
iptables -t nat -A POSTROUTING -m ipvs \
85.
--vaddr 192.168.131.205/32 \
86.
--vport 80 -j SNAT --to-
source
192.168.131.204
至此,centos 下安装配置 iptables+keepalived+lvs/nat 实现LVS/SNAT 配置完成