LVS实现负载均衡第四种模式FULL NAT

在实验前应先进行内核编译

1.内核编译

虚拟机至少2048M以上memory(内存)
这里写图片描述

进入fullnat官网
[http://www.baidu.com/link?url=OBMCFMxdW1XLFPwT7N-XhKnMbCmOmg7WBFPYTWyz9yELzK4Tta3odIa8FCgXXsG7&wd=&eqid=abd0533700051321000000065b5fc83c]

这里写图片描述
点击Latest Press News… Wednesday, August 8, 2012标题下的
The FULLNAT and SYNPROXY feature
这里写图片描述
按照提示进行内核编译

<1>配置yum源
物理机挂载rhel6.5的镜像

[root@foundation8 Desktop]# mount /iso/rhel-server-6.5-x86_64-dvd.iso /var/www/html/source6.5/
mount: /dev/loop0 is write-protected, mounting read-only

虚拟机配置高可用yum源

[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# vim rhel-source.repo

gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.8.250/source6.5/HighAvailability
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.8.250/source6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.8.250/source6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.8.250/source6.5/ScalableFileSystem
gpgcheck=0

[root@server1 yum.repos.d]# yum clean all
[root@server1 yum.repos.d]# yum repolist
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
HighAvailability                                                              | 3.9 kB     00:00     
HighAvailability/primary_db                                                   |  43 kB     00:00     
LoadBalancer                                                                  | 3.9 kB     00:00     
LoadBalancer/primary_db                                                       | 7.0 kB     00:00     
ResilientStorage                                                              | 3.9 kB     00:00     
ResilientStorage/primary_db                                                   |  47 kB     00:00     
ScalableFileSystem                                                            | 3.9 kB     00:00     
ScalableFileSystem/primary_db                                                 | 6.8 kB     00:00     
rhel-source                                                                   | 3.9 kB     00:00     

repo id                        repo name                                                       status
HighAvailability               HighAvailability                                                   56
LoadBalancer                   LoadBalancer                                                        4
ResilientStorage               ResilientStorage                                                   62
ScalableFileSystem             ScalableFileSystem                                                  7
rhel-source                    Red Hat Enterprise Linux 6Server - x86_64 - Source              3,690
repolist: 3,819                # 6.5镜像yum源完整的安装包

<2>安装ipvsadm服务

[root@server8 ~]# yum install ipvsadm -y

<3>下载并安装LVS-FULLNAT和内核源码包

需要的安装包:
Lvs-fullnat-synproxy.tar.gz
kernel-2.6.32-220.23.1.el6.src.rpm 

[root@server1 ~]# yum install rpm-build -y
[root@server1 ~]# rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm 
[root@server1 ~]# ls
keepalived-2.0.6                    ldirectord-3.9.5-3.1.x86_64.rpm
keepalived-2.0.6.tar.gz             Lvs-fullnat-synproxy.tar.gz
kernel-2.6.32-220.23.1.el6.src.rpm  rpmbuild
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# ls
SOURCES  SPECS
[root@server1 rpmbuild]# cd SPECS/
[root@server1 SPECS]# ls
kernel.spec
[root@server1 SPECS]# rpmbuild -bp kernel.spec    #根据依赖性提示需要的安装包
[root@server1 SPECS]# yum install redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel  binutils-devel  newt-devel python-devel hmaccalc perl-ExtUtils-Embed -y

<4>下载并安装3个安装包

需要的安装包:
newt-devel-0.52.11-3.el6.x86_64.rpm 
asciidoc-8.4.5-4.1.el6.noarch.rpm 
slang-devel-2.2.1-1.el6.x86_64.rpm 

[root@server1 ~]# yum install newt-devel-0.52.11-3.el6.x86_64.rpm asciidoc-8.4.5-4.1.el6.noarch.rpm slang-devel-2.2.1-1.el6.x86_64.rpm -y
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
[root@server1 rpmbuild]# cd SPECS/
[root@server1 SPECS]# ls
kernel.spec
[root@server1 SPECS]# rpmbuild -bp kernel.spec       #很慢

打开server1另一个终端,执行如下命令

[root@server1 ~]# yum provides */rngd
[root@server1 ~]# yum install rng-tools.x86_64 -y
[root@server1 ~]# rngd -r /dev/urandom

执行后,第一个server1终端的rpmbuild -bp kernel.spec 也执行结束
返回原server1终端

[root@server1 ~]# tar zxf Lvs-fullnat-synproxy.tar.gz
[root@server1 ~]# rngd -r /dev/urandom
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
[root@server1 rpmbuild]# cd BUILD
[root@server1 BUILD]# ls
kernel-2.6.32-220.23.1.el6
[root@server1 BUILD]# cd kernel-2.6.32-220.23.1.el6/
[root@server1 kernel-2.6.32-220.23.1.el6]# ls
linux-2.6.32-220.23.1.el6.x86_64  vanilla-2.6.32-220.23.1.el6
[root@server1 kernel-2.6.32-220.23.1.el6]# cd linux-2.6.32-220.23.1.el6.x86_64/
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# cp /root/lvs-fullnat-synproxy/lvs-2.6.32-220.23.1.el6.patch .
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# patch -p1 < lvs-2.6.32-220.23.1.el6.patch               #打补丁
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# vim Makefile    #此命令可以不执行
EXTRAVERSION = 220.23.1.el6
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# ipvsadm -l  # 显示内核虚拟服务器表
IP Virtual Server version 1.2.1 (size=4096)                  #内核编译成功后会变为2的22次方
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

<5>编译三部曲(编译、导入模块并安装)

[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make      #编译(需要1个小时)
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make modules_install   ##导入模块
[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make install   

<6>开机引导文件

[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# vim /boot/grub/grub.conf 
default = 0                #默认启动

<7>重启

[root@server1 ~]# reboot

<8>

[root@server1 ~]# ipvsadm -l                    # 显示内核虚拟服务器表
IP Virtual Server version 1.2.1 (size=4194304)  # 内核大小变为2的22次方
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

这里写图片描述

2.FULLNET

实验环境:
内核编译完成的虚拟机server1
实验步骤:
LVS Tools (keepalived/ipvsadm/quaage)

 cd lvs-fullnat-synproxy
 tar xzf lvs-tools.tar.gz;
 cd tools

这里写图片描述
1. keepalived install

 cd keepalived/
 yum install popt-devl.x86_64 -y
 ./configure --with-kernel-dir="/lib/modules/`uname -r`/build";
 make;
 make install

2. ipvsadm install

 cd lvs-fullnat-synproxy/tools/ipvsadm
 make;
 make install;

猜你喜欢

转载自blog.csdn.net/wwy0324/article/details/81328584
今日推荐