最新消息:

在R730上搭建lvs-fullnat

FullNAT admin 3浏览

安装步骤

  • 安装必要软件:
    yum -y install m4 gcc redhat-rpm-config xmlto asciidoc elfutils-libelf-devel binutils-devel newt-devel perl-ExtUtils-Embed hmaccalc rng-tools
  • 下载源码
    mkdir /home/lvs
    cd /home/lvs
    去百度云盘下载220内核的ipvs和ip_vs.h上传到/home/lvs文件夹下
    链接: https://pan.baidu.com/s/1miLp7BE 密码: wdh7
    tar zxvf ipvs.tar.gz
    wget http://vault.centos.org/6.4/os/Source/SPackages/kernel-2.6.32-358.el6.src.rpm
    wget http://kb.linuxvirtualserver.org/images/a/a5/Lvs-fullnat-synproxy.tar.gz
    tar zxvf Lvs-fullnat-synproxy.tar.gz
  • 编译内核重启
    “`
    cat > ~/.rpmmacros << EOF
    %_topdir /home/lvs/rpms
    %_tmppath /home/lvs/rpms/tmp
    %_sourcedir /home/lvs/rpms/SOURCES
    %_specdir /home/lvs/rpms/SPECS
    %_srcrpmdir /home/lvs/rpms/SRPMS
    %_rpmdir /home/lvs/rpms/RPMS
    %_builddir /home/lvs/rpms/BUILD
    EOF
    cd /home/lvs
    mkdir rpms
    mkdir rpms/tmp
    mkdir rpms/SOURCES
    mkdir rpms/SPECS
    mkdir rpms/SRPMS
    mkdir rpms/RPMS
    mkdir rpms/BUILD
    useradd -s /sbin/nologin mockbuild
    rpm -ivh kernel-2.6.32-358.el6.src.rpm
    cd /home/lvs/rpms/SOURCES
    vim config-generic
    把第一行的# 改成 # x86_64,把 CONFIG_IP_VS_TAB_BITS=12 改成 CONFIG_IP_VS_TAB_BITS=20
    cd /home/lvs/rpms/SPECS
    vim kernel.spec
    把 # % define buildid .local 修改为%define buildid .ipvs_20bit
    rpmbuild -bp kernel.spec
    会卡在下面:
  • gpg –homedir . –batch –gen-key /home/lvs/rpms/SOURCES/genkey
    gpg: WARNING: unsafe permissions on homedir .'
    gpg: keyring
    ./secring.gpg’ created
    gpg: keyring `./pubring.gpg’ created
    再打开服务器的另一个终端输入如下命令:
    rngd
    打lvs-fullnat patch和toa path
    cd /home/lvs/rpms/BUILD/kernel-2.6.32-358.el6/linux-2.6.32-358.el6.ipvs_20bit.x86_64/
    cp /home/lvs/lvs-fullnat-synproxy/lvs-2.6.32-220.23.1.el6.patch ./
    cp /home/lvs/lvs-fullnat-synproxy/toa-2.6.32-220.23.1.el6.patch ./
    cp /home/lvs/ip_vs.h /home/lvs/rpms/BUILD/kernel-2.6.32-358.el6/linux-2.6.32-358.el6.ipvs_20bit.x86_64/include/net/
    cd /home/lvs/rpms/BUILD/kernel-2.6.32-358.el6/linux-2.6.32-358.el6.ipvs_20bit.x86_64/net/netfilter/ipvs/
    rm -rf *
    cp /home/lvs/ipvs/* /home/lvs/rpms/BUILD/kernel-2.6.32-358.el6/linux-2.6.32-358.el6.ipvs_20bit.x86_64/net/netfilter/ipvs/
    cd /home/lvs/rpms/BUILD/kernel-2.6.32-358.el6/linux-2.6.32-358.el6.ipvs_20bit.x86_64/
    patch -p1 < ./lvs-2.6.32-220.23.1.el6.patch
    patch -p1 < ./toa-2.6.32-220.23.1.el6.patch
    cp configs/kernel-2.6.32-x86_64.config .config
    vim Makefile
    修改EXTRAVERSION = -358.e16.lvs-fullnat
    make -j16
    这里看你多少cpu核心就写多少就行
    make modules_install
    make install
    vim /etc/grub.conf
    修改内核启动参数default=0,并在kernel一行中,添加“nohz=off ”(如果不关闭nohz,大压力下CPU0可能会消耗过高,压力不均匀)
    reboot重启。
    “`

  • 重启后加载驱动安装工具
    modprobe ip_vs
    modprobe ip_vs_rr
    modprobe ip_vs_wrr
    modprobe ip_vs_sh
    modprobe iptable_filter
    modprobe ip_tables
    modprobe toa
    安装工具
    cd /home/lvs/lvs-fullnat-synproxy
    tar xzf lvs-tools.tar.gz
    cd tools
    cd keepalived/
    ./configure --with-kernel-dir=”/lib/modules/`uname -r`/build”
    make
    make install
    cd /home/lvs/lvs-fullnat-synproxy/tools/ipvsadm/
    make
    make install
    quagga可以 yum -y install quagga安装也可以编译安装
    cd /home/lvs/lvs-fullnat-synproxy/tools/quagga
    ./configure
    make
    make install

  • 性能调优
    ethtool -K p4p1 gro off
    ethtool -K p4p1 lro off
    ethtool -K p4p1 rx off && sleep 1 && ethtool -K p4p1 rx on &
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    echo 500000 > /proc/sys/net/core/netdev_max_backlog
    echo 500000 > /proc/sys/net/ipv4/tcp_max_syn_backlog
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 2000 > /proc/sys/net/unix/max_dgram_qlen
    记得把以上命令加到/etc/rc.local
  • 最后附上编译好的rpm内核包,没有亲测过不确定完全没问题
    链接: https://pan.baidu.com/s/1jHTQT9s 密码: j4mc
    ipvsadm的使用这里就不做赘述了。。。github上很详细的介绍。。。。。。。
    总算把之前没完成的作业写完了,科科
    感谢艺龙大神的方案,希望大家都能用上lvs_fullnat哈,有问题可以多讨论,有的好的方案欢迎大家多多留言

转载请注明:爱开源 » 在R730上搭建lvs-fullnat

转载请注明:爱开源 » 在R730上搭建lvs-fullnat