linux Lvs/Fullnat模式

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。

 

虛擬機搭建

虛擬機內存至少2048mb

添加第二塊網卡    ip addr  192.168.2.1/24  dev  eth1

軟件安裝

安裝rpm-build

進入  cd  /root/rpmbuild/SPECS/

rpmbuild -bp kernel.spec

解決圖中依賴性  沒有的rpm手動安裝

yum  install kernel.spec redhat-rpm-config patchutils  xmlto asciidoc elfutils-libelf-devel zlib-devel  binutils-devel newt-devel  python-devel hmaccalc  perl-ExtUtils-Embed  -y

rpm  -ivh  slang-devel-2.2.1-1.el6.x86_64.rpm

rpm  -ivh  newt-devel-0.52.11-3.el6.x86_64.rpm asciidoc-8.4.5-4.1.el6.noarch.rpm

 

再進行rpmbuild -bp kernel.spec

安裝yum install rng-tools -y
 運行 rngd -r /dev/urandom  加快速度

 

打補丁

tar zxf Lvs-fullnat-synproxy.tar.gz

cd  lvs-fullnat-synproxy/
 cp  lvs-2.6.32-220.23.1.el6.patch   /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/

cd  /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/

patch  -p1  < lvs-2.6.32-220.23.1.el6.patch

 

補丁更新之後直接  make 進行編譯

 

編譯完成後

make modules_install

make install

cd /boot/grub

vim grub.conf    將default1改爲default0

reboot

解壓 lvs-tools

cd keepalived/

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

根據提示安裝 軟件 並且 安裝 如軟件-devel

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

make

make install

cd  ..

 cd  ipvsadm/
make 

make install

 

 

 

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