Centos 6 編譯內核支持LVS-SNAT模式

lvs分爲DR/NAT/TUN,3種模式,相信你們都瞭解了,可是有些網站網絡環境比較複雜,不少網段、各服務之間又有互相調用、兩地機房又有×××,那麼以上說起的3中模式都難以適應此環境。linux

所以,我介紹下centos下,iptables+LVS/NAT實現SNAT模式,以解決以上提出的問題,下面先說下原理:vim

當訪問到LVS,iptables會根據規則把訪問的源IP改爲指定ip,而後交給LVS處理,lvs會根據標準的nat模式把目標地址改成realserver,realserver回覆數據到LVS,修改回源、目標地址返回給用戶,因爲客戶端回包老是通過LVS服務器。所以,適用於大多數環境,同時因爲以上緣由後端服務器(realserver)是獲取不到用戶IP的。後端

好,下面說說如何搭建:centos

須要軟件包:bash

iptables-1.4.20.tar.bz2 ipvsadm-1.26.tar.gz linux-3.2.29.tar.gz keepalived-1.2.7.tar.gz服務器

安裝步驟:網絡

#準備編譯環境
rpm -ivh epel-release-6-8.noarch.rpm
yum install popt  popt-devel libnl libnl-devel popt-static gcc openssl openssl-devel
#編譯內核
cd /usr/src
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.29.tar.gz
tar zxvf linux-3.2.29.tar.gz
cd linux-3.2.29
#------.config 生成方法------
# make oldconfig
# CONFIG_NETFILTER_XT_MATCH_IPVS=m (手動選擇)
# 修改文件 .config
# 添加下列3行
# CONFIG_SYSFS_DEPRECATED=y
# CONFIG_SYSFS_DEPRECATED_V2=y
#-------------------
make all -j 16
make modules_install
make install
#修改配置重新內核啓動
vi /etc/grub.conf
reboot


#編譯安裝iptables
cd ..
tar jxvf iptables-1.4.20.tar.bz2
cd iptables-1.4.20
./configure
make
make install
cp libxtables/.libs/libxtables.so.10 /lib
cp /usr/local/sbin/iptables /sbin/
cp /usr/local/sbin/iptables-restore /sbin/
cp /usr/local/sbin/iptables-save /sbin/
service iptables restart


#編譯安裝ipvsadmin
cd ..
tar zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make
make install


#編譯安裝keepalived
cd ..
tar zxvf keepalived-1.2.7.tar.gz
cd keepalived-1.2.7
./configure
make
make install
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/sbin/keepalived /usr/sbin/
mkdir /etc/keepalived
#修改keepalived配置,使用表裝的NAT模式
vim /etc/keepalived/keepalived.conf


#修改sysctl.conf及模塊配置文件
net.ipv4.ip_forward = 1
net.ipv4.vs.conntrack = 1
echo "modprobe ip_vs" > /etc/sysconfig/modules/lvs.modules
#重啓(重新內核啓動)


#配置iptables
#例如www.abc.com解析爲192.168.131.205;
#並在LVS服務器192.168.131.204,中配置NAT模式;
#服務器192.168.131.1 這臺機器要經過192.168.131.205訪問此站點;
#那麼就須要配置iptables。
iptables -t nat -A POSTROUTING -m ipvs \
--vaddr 192.168.131.205/32 \
--vport 80 -j SNAT --to-source 192.168.131.204


至此,centos 下安裝配置 iptables+keepalived+lvs/nat 實現LVS/SNAT 配置完成
ide

相關文章
相關標籤/搜索