fullnat模式原理图:
FULLNAT模式原理:
1、client主机(cip)将请求发往前端的负载均衡器(vip),请求报文源地址是CIP,目标地址为VIP。负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。
2、RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给client主机(cip)。
fullnat模式优缺点:
FULLNAT一个最大的问题是:RealServer无法获得用户IP;为了解决这个问题我们提出了TOA的概念,主要原理是:将clientaddress放到了TCP Option里面带给后端RealServer,RealServer上通过toa内核模块hack了getname函数,给用户态返回TCP Option中的client ip。
一、内核编译 (FULLNAT模式要重编LVS机器内核)
需要准备的安装包:
kernel-2.6.32-220.23.1.el6.src.rpm
asciidoc-8.4.5-4.1.el6.noarch.rpm
newt-devel-0.52.11-3.el6.x86_64.rpm
slang-devel-2.2.1-1.el6.x86_64.rpm Lvs-fullnat-synproxy.tar.gz
Lvs-fullnat-synproxy.tar.gz
1.给server2添加内存为2048,df 查看 编译内核是会读大量文件,同时往硬盘里写入信息,所以要有足够的空间,否则编译的速度会非常慢
2.下载两个安装包
kernel-2.6.32-220.23.1.e16.src.rpm Lvs-fullnat-synproxy.tar.gz
3.安装kernel*出现rembuild
rpm -ivh kernel-2.6.32-220.23.1.e16.src.rp
4.进入目录编译,出错存在软件依赖包
cd rpmbuild
ls
cd /SPECS
ls
安装rpm -build工具ÿ