无论是 DR 还是 NAT 模式,不可避免的都有一个问题:LVS 和 RS 必须在同一个 VLAN 下,否则 LVS 无法作为 RS 的网关。
这引发的两个问题是:
1、同一个 VLAN 的限制导致运维不方便,跨 VLAN 的 RS 无法接入。
2、LVS 的水平扩展受到制约。当 RS 水平扩容时,总有一天其上的单点 LVS 会成为瓶颈。
Full-NAT 由此而生,解决的是 LVS 和 RS 跨 VLAN 的问题,而跨 VLAN 问题解决后,LVS 和 RS 不再存在 VLAN 上的从属关系,可以做到多个 LVS 对应多个 RS,解决水平扩容的问题。
Full-NAT 相比 NAT 的主要改进是,在 SNAT/DNAT 的基础上,加上另一种转换。
fullnat原理图:
###########实验
内核编译
步骤:
在server1上:
(1)安装插件
##所需要的安装包
Lvs-fullnat-synproxy.tar.gz
newt-devel-0.52.11-3.el6.x86_64.rpm
slang-devel-2.2.1-1.el6.x86_64.rpm
asciidoc-8.4.5-4.1.el6.noarch.rpm ##依赖性
kernel-2.6.32-220.23.1.el6.src.rpm ##安装内核
(2)更改主机内存
先将server1强制关闭,然后修改内存。
(3)修改yum源为高可用yum源
(4)安装内核源码包
[root@server1 ~]# yum install -y rpm-build
#rpmbuild命令被用于创建rpm的二进制软件包和源码软件包
[root@server1 ~]# rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# ls
SOURCES SPECS
[root@server1 rpmbuild]# cd SPECS/
[root@server1