LVS - FULLNAT内核编译方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS - FULLNAT内核编译方法相关的知识,希望对你有一定的参考价值。

LVS - FULLNAT内核编译方法

     Fullnat其实也就是nat类似原理,只是需要在调度器DR上进行进行源目地址转发,首先介绍一下,CIP:客户端请求ipDIP:调度器端的ipRIP:提供服务的真实主机的ip,由于DIPRIP之间可以经过路由转换,所以后端提供服务的real-server可以进行无限扩展,再通过调度器对后端服务的调用,可以完美解决负载均衡,但是存在单点故障,因此还需要结合类似:heartbeat,keepalived,pacemaker,以及红帽rhcs套件来解决单点故障。这样系统就非常健壮了,言归正传,当客户端请求报文到达源目IP分别为CIPVIP。达到调度器DR后,经过ipvs通过算法调度后台的真机real-server,但是由于DIPRIP并不在同一个网段,所以IPVS会将请求的报文源目IP分别改为DIPRIPRS收到报文后,就会将相应报文发给DRDR通过内部追踪nat表后,在将响应的报文源目IP分别改为VIPCIP,于是响应的报文就发给了客户端client,这种对源目IP均做修改的LVS类型就称为FULNAT模式。


首先下载阿里的修改过后的内核:

准备材料:asciidoc-8.4.5-4.1.el6.noarch.rpm     

kernel-2.6.32-220.23.1.el6.src.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 

 

 

#yum provides */rngd      #查找rgnd这个命令的安装包

#yum install -y rng-tools-2-13.el6_2.x86_64     安装查找的rgn命令的

#rngd  -r  /dev/urandom     :加快对内核的安装

进行磁盘拉伸 +20G     

#pvcreate /dev/vdb     

#vgextend VolGroup /dev/vdb     

#lvextend -L +27G   /dev/VolGroup/lv_root   

#resize2fs /dev/VolGroup/lv_root    

    

 

 

##进行正式修改内核;

# rpm  -ivh  kernel-2.6.32-220.23.1.el6.src.rpm    #安装内核安装包

#yum  install -y  rpm-build        #安装rpm-build工具

#cd   /RPM/rpmbuild/SPECS/       

#rpmbuild  -bp  kerbel.spec       #rpmbuild编译kernel.spec文件

#然后解决各种依赖性,注意倒数第二个改为perl-ExtUtils-Embed

#

#yum  install  -y  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     #解决各种依赖性

 

# rpmbuild  -bp  kernel.spec      

#在另外一个客户端登陆执行:#rngd -r /dev/urandom  速度会马上安装好。

 

#进入kernel-2.6.32.-220.23.1.el6目录里;

#lftp 获得 Lvs-fullnat-synproxy.tar.gz文件   :解压该文件,获得内核的补丁

#tar  zxf   Lvs-fullnat-synproxy.tar.gz

#cd   lvs-fullnat-synproxy

#cp   lvs-2.6.32--220.23.1.el6.patch   ../linux-2.6.32-220.23.1.el6.x86_64/

#yum  install  -y patch

#cd  ../linux-2.6.32-220.23.1.el6.x86_64/

#patch  -p1 < lvs-2.6.32--220.23.1.el6.patch    #打补丁打入到内核

#vim   .config  

CONFIG_IP_VS_TAB_BITS=22   修改为22

#vim    Makefile

:添加延伸延伸版本号  EXTRAVERTION = -220.23.1.el6

#make   -j2       :编译内核,

#make  modules_install     :安装模块

#make   install              :安装内核

#vim   /etc/grub.conf        :修改启动项。

10行  default=0    ##使之重起更换内核。使用刚才修改过后的内核。

 

如果需要获取客户端的ip时,则也需要更改real-server的内核,real-server的内核进行打toa补丁,动态加载toa模块,从而使得realserver可以获得客户端的ip地址

 

-i  :TUN模式

-b  :FULLNAT模式

-m  :NAT模式

-g   :DR模式

 

VS上安装ipvsadm工具,使其支持fullnat  也就是-b模式。

#安装ipvsadm工具,使得它支持fullnat模式,

#cd   rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/lvs-fullnat-synproxy/

#cp   lvs-tools.tar.gz   ~

#tar  zxf lvs-tools.tar.gz

#keepalived的编译。

#cd   keepalived/

#yum  install  -y  openssl-devel  

#yum  install  -y  popt-devel     :解决安装ipvsadm的依赖性问题。

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

#make   --->    make install 

Ipvsadm编译

#cd    ipvsadm/

#make    --> #make install

#ipvsadm  --help  :查看是否有fullnat模式支持。如果有支持fullnat模式的,这说明从新安装的ipvsadm可用。

注意:必须要先编译安装keepalived过后,才能安装ipvsadm命令。


本文出自 “Foreverlinux” 博客,请务必保留此出处http://linuxmin0712.blog.51cto.com/11702588/1792184

以上是关于LVS - FULLNAT内核编译方法的主要内容,如果未能解决你的问题,请参考以下文章

lvs fullnat+ECMP内核编译

(?)企业部分之corosync未完缺图

企业 - 编译内核

如何通过编译Linux内核打开IPVS(LVS)的debug模式

LVS FULLNAT模式

LVS FULLNAT模式