要采用FULLNAT我们需要去给内核打补丁,使得支持FULLNAT模式
这里使用
make 编译
make modules_install
make install 安装
需要安装 rpm-build
rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm
tar zxf Lvs-fullnat-synproxy.tar.gz
yum install -y rpmbuild
cd rpmbuild/SPECS/
rpmbuild -bp kernel.spec
#这里一般会缺少很多的依赖性
将这些依赖性全部安装
目前使用的yum为rhel6.5的镜像
里面会缺少slang-devel asciidoc newt-devel 需要自己下载
perl(ExtUtils::Embed) 改为perl-ExtUtils-Embed
全部安装完以后便可以执行
cd rpmbuild/SPECS/
rpmbuild -bp kernel.spec
这个过程最后需要随机数,下面这个命令会自动生成随机数,如果没有的话可以自己安装
yum provides */rngd
yum install -y rng-tools-2-13.el6_2.x86_64
rngd -r /dev/urandom
编译内核
cp /root/lvs-fullnat-synproxy/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/
patch -p1 < lvs-2.6.32-220.23.1.el6.patch #将lvs的补丁打入
uname -r #查看内核版本
cd /root/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64
vim Makefile
#给EXTRAVERSION添加以下信息,重新安装以后版本显示会比较正规否则就是,2.6.32格式
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 32
EXTRAVERSION = -220.23.1.el6.x86_64
NAME = Man-Eating Seals of Antiquity
RHEL_MAJOR = 6
RHEL_MINOR = 2
RHEL_RELEASE = 219
make 编译
make modules_install
make install 安装
vim /boot/grub/grub.conf
10 default=0 #开机启动新内核
reboot
cd /root/lvs-fullnat-synproxy/
tar zxf lvs-tools.tar.gz
cd tools/
yum remove ipvsadm
cd keepalived/
./configure --with-kernel-dir="/lib/modules/`uname -r`/build"
报错:
-
configure: error:
-
!!! OpenSSL is not properly installed on your system. !!!
-
!!! Can not include OpenSSL headers files. !!!
-
解决方法:缺少头文件,只需要安装openssl和openssl-devel即可
-
configure: error: Popt libraries is required
-
出现此错误的原因:未安装popt的开发包
-
解决方法:yum install popt-devel
-
./configure --with-kernel-dir="/lib/modules/`uname -r`/build" make make install cd tools/ cd ipvsadm/ make make install