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命令。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章