LVS-FULLNAT模式

一、LVS-FULLNAT模式简介

Full-NAT主要的思想是把网关和其下机器的通信,改为了普通的网络通信,从而解决了跨VLAN的问题。采用这种方式,LVS和RS的部署在VLAN上将不再有任何限制,大大提高了运维部署的便利性。

Full-NAT相比NAT的主要改进是,在SNAT/DNAT的基础上,加上另一种转换,转换过程如下:

在包从LVS转到RS的过程中,源地址从客户端IP被替换成了LVS的内网IP。

内网IP之间可以通过多个交换机跨VLAN通信。

当RS处理完接受到的包,返回时,会将这个包返回给LVS的内网IP,这一步也不受限于VLAN。

LVS收到包后,在NAT模式修改源地址的基础上,再把RS发来的包中的目标地址从LVS内网IP改为客户端的IP。

二、配置fullnat模式环境

1、fullnat环境编译用时较长,搭建前需要分配较高资源

1.更改server1的内存大小,至少2G

2.更改server1的cpu个数,至少2个

2、安装rpm-build服务用来编译内核的源码包,安装kernel包

yum install rpm-build -y

rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm   

3、解决依赖性,编译内核文件kernel.spec

cd rpmbuild   

cd SPECS   

rpmbuild -bp kernel.spec     #编译内核文件,报错,需要解决依赖性

yum install -y redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel binutils-devel newt-devel python-devel hmaccalc perl-ExtUtils-Embed     #yum仓库中自带

rpmbuild -bp kernel.spec    #再次编译内核文件,仍有报错

cd ~

yum install -y newt-devel-0.52.11-3.el6.x86_64.rpm asciidoc-8.4.5-4.1.el6.noarch.rpm slang-devel-2.2.1-1.el6.x86_64.rpm  

注意:这些安装包系统上没有,需要另外下载

cd /root/rpmbuild/SPECS/   

rpmbuild -bp kernel.spec     #重新编译内核文件

此时会卡住,可以再打开一个终端,连接到server1,安装rng-tools工具解决

ssh root@172.25.9.1

yum install -y rng-tools

rngd -r /dev/urandom   

4、打补丁

cd /root/   

tar zxf Lvs-fullnat-synproxy.tar.gz   

cd lvs-fullnat-synproxy  

cp lvs-2.6.32-220.23.1.el6.patch /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/   

cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/   

patch -p1 <lvs-2.6.32-220.23.1.el6.patch     #打补丁

5、显示内核版本号并使用新内核启动

vim Makefile 

cd /boot/grub/

vim grub.conf   #使用新安装的内核启动

6、编译

cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/

make    #编译,生成可以执行的二进制文件

make modules_install

make install    #安装

7、安装内置工具

1.卸载原来的ipvsadm

ipvsadm -l  #原有的ipvsadm的空间只有4096,太小,不满足使用需求,补丁会自动扩大到2的22次方

yum remove ipvsadm   #卸载原有的ipvsadm


2.解压lvs-tools.tar.gz工具包

cd ~

cd lvs-fullnat-synproxy

tar zxf lvs-tools.tar.gz


3.源码编译安装keepalived

cd tools

cd keepalived

./configure --with-kernel-dir="/lib/modules/`user -r`/build"   #检测依赖性,生成二进制文件目录makefile

yum install -y openssl  openssl-client  openssl-devel.x86_64  popt-devel  kernel-devel     #解决依赖性

./configure --with-kernel-dir="/lib/modules/`user -r`/build"     

make

make install     #安装

4.源码编译安装ipvsadm

cd ..

cd ipvsadm/

make

make install

ipvsadm -l   看到size=41944304即2的22次方

此时,fullnat环境配置完成

三、fullnat负载均衡的实现

实验环境:

server1     eth0 172.25.9.1  

    vip         eth1  172.25.254.100

server2   RS端  172.25.9.2 

server3   RS端  172.25.9.3

1、在server1端新增一个网卡eth1,给eth1添加一个和eth0不在同一网段的ip地址:ip addr add 172.25.254.100 dev eth1

2、在server2和server3端,设定网关为server1的ip:route add default gw 172.25.9.1 。

     开启server2和server3的http服务,作为RS。

3、在server1端添加策略:

ipvsadm -A -t  172.25.254.100:80 -s rr

ipvsadm -a -t  172.25.254.100:80  -r  172.25.9.2 -b

ipvsadm -a -t  172.25.254.100:80  -r  172.25.9.3 -b

ipvsadm -P -t  172.25.254.100:80  -z  127.0.0.1:80

ipvsadm -G -t  172.25.254.100:80

4、测试:

在物理端中curl 172.25.254.100

由于使用的是社区版本的fullnat,无法测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值