NAT模式和FULLNAT模式对比
nat模式下报文变化
发送 接收
cip —> vip
cip —> rip ( DNAT )
rip —> cip
vip —> cip ( SNAT )
fullnat模式下报文变化
发送 接收
cip —> vip
lip —> rip ( SNAT + DNAT )
rip —> lip
vip —> cip ( SNAT + DNAT )
注释:
cip为客户端的地址
vip为虚拟地址
rip为真实的服务器
lip为本地地址
SNAT为来源地址转换
DNAT为目的地址转换
首先保证server1调度器端和真机可以进行数据的传输,当真机数据包过来之后到达的是server1的目的地址也就是VIP, 即就是cip —> vip。server1要到达后端server2和server3,网段也得一致,进行了lip —> rip,由于fullNAT 模式进行了两次SNAT+DNAT转换,数据包回来也是如此。
一、添加fullnat模式
-
涉及到内核的编译,首先更改虚拟机的内存大小
-
在虚拟机server1上安装软件搭建服务,需要的软件包以及解决依赖性的包
安装源码包
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# ls
SOURCES SPECS
[root@server1 rpmbuild]# cd SPECS/
[root@server1 SPECS]# ls
kernel.spec
[root@server1 SPECS]# rpmbuild -bp kernel.spec
首先解决这些依赖性
[root@server1 SPECS]# yum install redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel binutils-devel newt-devel python-devel hmaccalc perl-ExtUtils-Embed -y
[root@server1 SPECS]# yum install -y gcc
再次尝试
安装自己下载的软件包解决剩下的依赖性问题
[root@server1 ~]# yum install -y asciidoc-8.4.5-4.1.el6.noarch.rpm slang-devel-2.2.1-1.el6.x86_64.rpm newt-devel-0.52.11-3.el6.x86_64.rpm
编译过程中会卡在这里,重新打开一个终端ssh连接到server1,
[root@server1 ~]# yum provides */rngd
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-source/filelists_db | 3.8 MB 00:00
rng-tools-2-13.el6_2.x86_64 : Random number generator related utilities
Repo : rhel-source
Matched from:
Filename : /etc/sysconfig/rngd
Filename : /sbin/rngd
Filename : /etc/rc.d/init.d/rngd
[root@server1 ~]# yum install -y rng-tools
取随机数,生成所需要的key
[root@server1 ~]# rngd -r /dev/urandom
[root@server1 ~]#
解压lvs-fullnat安装包,并安装补丁包,打补丁
打补丁
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# patch -p1 < lvs-2.6.32-220.23.1.el6.patch
添加版本型号
编译
这里因为是内核编译,所以第一步make花费的时间较长。
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make modules_install
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make install
修改配置文件
[root@server1 grub]# vim grub.conf
## 更改default=0
重启虚拟机,检测是否编译成功
解压tool工具包,若安装过ipvsadm,要卸载掉ipvsadm
安装工具包中的ipvsadm和keepalived
源码安装三部曲
安装keepalived
[root@server1 keepalived]# ./configure --with-kernel-dir="/lib/modules/`uname -r`/build"
make
make install
安装ipvsadm
make
make install
查看:大小已经变成了2的22 次方
[root@server1 ipvsadm]# ipvsadm --help
支持fullnat模式
二、fullnat测试
- server上添加一块网卡,并设置ip
[root@server1 ipvsadm]# ip addr add 172.25.254.100/24 dev eth2
2) 添加策略
查看策略
server和server3作为后端服务器,打开apache,编写一个测试页即可
测试