linux进阶之LVS--Fullnat环境构造--内核编译

fullnat开源已经有一阵子了,内核版本为2.6.32-220.23.1.e16,项目地址http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY

一、前言

1. 本篇内核编译测试环境如下:

rhel6.5 64位 iptables and selinux is disable
内核版本:2.6.32-431.el6.x86_64

2. 需要下载的安装包及地址
1)

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 #解决依赖性
下载网址:
https://pkgs.org

2)

Lvs-fullnat-synproxy.tar.gz
下载网址:
http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY

3)

kernel-2.6.32-220.23.1.el6.src.rpm
下载网址:
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm

3. 系统条件

因为编译内核是会读大量文件,同时往硬盘里写入信息,所以要有足够的空间
内存至少给够2G,根分区至少有20G大小的内存。如果不没有足够空间,就添加一块20G的虚拟磁盘。

注:笔者第一次编译,给的根分区空间为8G左右,编译过程中出现了空间不够的问题,所以大家一定要一开始给够为好。

二、环境构造

1. 编译内核
1)生成内核源码
[root@vm5 ~]# yum install rpm-build -y     //安装这个命令后面编译要用到
[root@vm5 ~]# rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm    //解压rpm包
[root@vm5 ~]# cd rpmbuild/SPECS/
[root@vm5 SPECS]# ls      //解压成功后查看下当前目录必须有这个文件
kernel.spec
[root@vm5 SPECS]# rpmbuild -bp kernel.spec     //解开源码

显示报错如下:
这里写图片描述
依赖性解决:

[root@vm5 SPECS]# yum install -y gcc redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel hmaccalc 
// 注:再次解开原码还会有依赖性,解决如下:(需要下载并安装如下软件,下载方式开头已说明)
[root@vm5 SPECS]# 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

再次进行生成内核原码:

[root@vm5 SPECS]# rpmbuild -bp kernel.spec     //解开源码

生成过程中会停留在如下位置:
这里写图片描述
解决方式:
再次打开一个终端生成随机数即可,过程如下:

[root@vm5 ~]# yum provides */rngd
[root@vm5 ~]# yum install rngd-tools -y
[root@vm5 ~]# rngd -r /dev/urandom

源码生成成功:
这里写图片描述

2)对生成的内核源码打pache
[root@vm5 ~]# tar zxf Lvs-fullnat-synproxy.tar.gz
[root@vm5 ~]# cd rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/
[root@vm5 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@vm5 linux-2.6.32-220.23.1.el6.x86_64]# patch -p1<lvs-2.6.32-220.23.1.el6.patch
[root@vm5 linux-2.6.32-220.23.1.el6.x86_64]# vim Makefile   //扩展版本,写入你需要编译的版本
EXTRAVERSION = -220.23.1.el6
3)编译和安装
[root@vm5 linux-2.6.32-220.23.1.el6.x86_64]# make  //编译时间较长,小编等了35分钟,当然等待时长根据电脑硬件及虚拟机给的内存大小不同而异,请耐心等待
[root@vm5 linux-2.6.32-220.23.1.el6.x86_64]# make modules_install    //导入安装模块
[root@vm5 linux-2.6.32-220.23.1.el6.x86_64]# make install        //安装的是引导文件,在/boot目录下就有你所编译的内核文件vmlinuz-2.6.32-220.23.1.el6
4)修改内核启动参数
[root@vm5 ~]# vim /boot/grub/grub.conf   
default=0       //改成0才会在进入系统时访问你所编译的版本
// 注:因为你所编好的内核文件就加在原有版本的上面,因此default的要改成0,开机时才会进入你所编译的内核版本
[root@vm5 ~]# reboot   //重启后就是编译的版本

重启后内核版本:
这里写图片描述
修改后的内核参数详情:
这里写图片描述

2. 编译安装keepalived
[root@vm5 ~]# cd lvs-fullnat-synproxy/
[root@vm5 lvs-fullnat-synproxy]# ls
lvs-2.6.32-220.23.1.el6.patch  README
lvs-tools.tar.gz               toa-2.6.32-220.23.1.el6.patch
[root@vm5 lvs-fullnat-synproxy]# tar zxf lvs-tools.tar.gz 
[root@vm5 lvs-fullnat-synproxy]# cd tools/
[root@vm5 tools]# ls
ipvsadm  keepalived  quagga  rpm
[root@vm5 tools]# cd /lib/modules/  //查看内核驱动程序
[root@vm5 modules]# ls
2.6.32-220.23.1.el6.x86_64  2.6.32-431.el6.x86_64
[root@vm5 modules]# cd -
/root/lvs-fullnat-synproxy/tools
[root@vm5 tools]# cd keepalived/
[root@vm5 keepalived]# ls
AUTHOR     configure     doc         keepalived          README
bin        configure.in  genhash     keepalived.spec.in  TODO
build      CONTRIBUTORS  INSTALL     lib                 VERSION
ChangeLog  COPYING       install-sh  Makefile.in
[root@vm5 keepalived]# yum install -y  popt-devel openssl-devel
[root@vm5 keepalived]#  ./configure  --with-kernel-dir="/lib/modules/`uname -r`/build"
[root@vm5 keepalived]# make && make install
3. 编译安装ipvsadm
[root@vm5 ~]# cd lvs-fullnat-synproxy/tools/ipvsadm/
[root@vm5 ipvsadm]# make && make install

结果如下显示,表示fullnat环境构造成功:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值