lvs-fullnat负载均衡

NAT模式和FULLNAT模式对比
nat模式下报文变化
发送 接收
cip —> vip
cip —> rip ( DNAT )
rip —> cip
vip —> cip ( SNAT )

fullnat模式下报文变化
发送 接收
cip —> vip
lip —> rip ( SNAT + DNAT )
rip —> lip
vip —> cip ( SNAT + DNAT )
注释:
cip为客户端的地址
vip为虚拟地址
rip为真实的服务器
lip为本地地址
SNAT为来源地址转换
DNAT为目的地址转换

首先保证server1调度器端和真机可以进行数据的传输,当真机数据包过来之后到达的是server1的目的地址也就是VIP, 即就是cip —> vip。server1要到达后端server2和server3,网段也得一致,进行了lip —> rip,由于fullNAT 模式进行了两次SNAT+DNAT转换,数据包回来也是如此。

一、添加fullnat模式

  1. 涉及到内核的编译,首先更改虚拟机的内存大小
    在这里插入图片描述

  2. 在虚拟机server1上安装软件搭建服务,需要的软件包以及解决依赖性的包
    在这里插入图片描述安装源码包
    在这里插入图片描述

[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

在这里插入图片描述

[root@server1 SPECS]# yum install -y gcc

在这里插入图片描述
再次尝试
在这里插入图片描述

安装自己下载的软件包解决剩下的依赖性问题

[root@server1 ~]# yum install -y asciidoc-8.4.5-4.1.el6.noarch.rpm slang-devel-2.2.1-1.el6.x86_64.rpm newt-devel-0.52.11-3.el6.x86_64.rpm

在这里插入图片描述

扫描二维码关注公众号,回复: 3544684 查看本文章

在这里插入图片描述
编译过程中会卡在这里,重新打开一个终端ssh连接到server1,

[root@server1 ~]# yum provides */rngd
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-source/filelists_db                                 | 3.8 MB     00:00     
rng-tools-2-13.el6_2.x86_64 : Random number generator related utilities
Repo        : rhel-source
Matched from:
Filename    : /etc/sysconfig/rngd
Filename    : /sbin/rngd
Filename    : /etc/rc.d/init.d/rngd
[root@server1 ~]# yum install -y rng-tools

在这里插入图片描述
取随机数,生成所需要的key

[root@server1 ~]# rngd -r /dev/urandom 
[root@server1 ~]# 

在这里插入图片描述
解压lvs-fullnat安装包,并安装补丁包,打补丁
在这里插入图片描述
在这里插入图片描述
打补丁

[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# patch -p1 < lvs-2.6.32-220.23.1.el6.patch

添加版本型号
在这里插入图片描述
在这里插入图片描述

编译
这里因为是内核编译,所以第一步make花费的时间较长。

[root@server1 linux-2.6.32-220.23.1.el6.x86_64]# make 
[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 

在这里插入图片描述
修改配置文件
在这里插入图片描述

[root@server1 grub]# vim grub.conf
## 更改default=0

在这里插入图片描述
重启虚拟机,检测是否编译成功
在这里插入图片描述
解压tool工具包,若安装过ipvsadm,要卸载掉ipvsadm
在这里插入图片描述
在这里插入图片描述
安装工具包中的ipvsadm和keepalived
在这里插入图片描述
源码安装三部曲
安装keepalived

[root@server1 keepalived]# ./configure --with-kernel-dir="/lib/modules/`uname -r`/build"

在这里插入图片描述
make
在这里插入图片描述
make install
在这里插入图片描述
安装ipvsadm
make
在这里插入图片描述
make install
在这里插入图片描述
查看:大小已经变成了2的22 次方
在这里插入图片描述

[root@server1 ipvsadm]# ipvsadm --help

支持fullnat模式
在这里插入图片描述

二、fullnat测试

  1. server上添加一块网卡,并设置ip
[root@server1 ipvsadm]# ip addr add 172.25.254.100/24 dev eth2

在这里插入图片描述
2) 添加策略
在这里插入图片描述
查看策略
在这里插入图片描述

server和server3作为后端服务器,打开apache,编写一个测试页即可
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/oikinkl/article/details/82959479