Fullnat的环境搭建和负载均衡配置

FullNAT: 除了DR/NAT/TUNNEL之外IPVS下的新的包转发模式,解决了DR/NAT/TUNNEL中的一些缺点(如不能跨vlan或者跨vlan成本太高,服务搭建较复杂,不易运维等)。

Fullnat主要实现的功能:
1.数据包从外部进来的时候,目标ip更换为realserver ip,源ip更换为内网local ip;
2.数据包发送出去的时候,目标ip更换为client ip,源ip更换为vip;

Fullnat的转发模式:

Fullnat实现原理:

Fullnat虚拟服务的实现:

一  服务安装(为了解释说明,本文所有安装包和压缩包都放在了/mnt目录下):

1.  首先将作为VS的server1端的ram改成2048或者更大,否则内存不够会报错。

2.  准备安装包:

3.  安装rpm-build服务用来编译内核的源码包,安装kernel包:

这两步完成之后,会在/root目录下生成一个rpmbuild的目录,进入这个目录中的子目录SPECS,里面有一个kernel.spec文件:

4.  执行指令rpmbuild -bp kernel.spec编译这个内核文件,执行时会有许多依赖性的包,将这些包全部安装:

对于asciidoc和newt-devel两个安装包需要另外自行下载,yum源里没有:

5  安装asciidoc,alang-devel,newt-devel  :

6.  安装之后重新编译内核文件:

这时会卡住,需要安装rng-tools来加快进度:yum install rng-tools -y,之后执行rngd -r /dev/urandom指令。

7.  打补丁:

准备Lvs-fullnat-synproxy.tar.gz包并解压将里面的lvs-2.6文件复制到指定目录,进入该指定目录执行56行指令打补丁。

8.  补丁完成之后直接make进行编译,编译过程比较久。

9.  编译完成之后,执行命令 make modules_install,然后make install

10.进入/boot/grub目录,编辑grub.conf文件,将文件中的default 1改为default 0,之后reboot重启。

11.  yum remove ipvsadm删除原有的ipvsadm ,进入到/mnt/lvs-fullnat-synproxy/目录,将zxf lvs-tools.tar.gz安装包解压。

12.  进入/mnt/lvs-fullnat-synproxy/tools/keepalived目录,执行指令 ./configure --with-kernel-dir="/lib/modules/`uname -r`/build" 进行编译。如果出现popt的依赖性问题,yum install popt-devel 解决依赖性问题之后,重新执行编译指令./configure --with-kernel-dir="/lib/modules/`uname -r`/build"。没有报错的话,执行make之后make install

13. 进入/usr/local/sbin/lvs-fullnat-synproxy/tools/ipvsadm目录下,进行make和make install编译,这个过程中会安装ipvsadm。这样fullnat的环境就搭好了。ipvsadm  -l会看到size=41944304即2的22次方:

二   fullnat负载均衡的实现

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

2.  在server2(ip为172.25.17.2)和server3(ip为172.25.17.3)端,设定网关为server1的ip:route add default gw 172.25.17.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.17.2 -b

      ipvsadm -a -t  172.25.254.100:80  -r  172.25.17.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,所以测试不出来。

猜你喜欢

转载自blog.csdn.net/letter_A/article/details/81324767
今日推荐