LVS架构NET模型和DR模型的配置过程

 一.配置NAT模型过程

NAT模型的工作原理:即将源IP地址改为Director自身的IP地址,然后发送给Real Server。Real Server处理完请求后,将响应发回给Director,Director再将响应的数据包的源IP地址改回客户端的IP地址,最后将响应发送给客户端

此处以四台Linux为例:客户机*1,调度器*1,web服务器*2

1.配置基础:systemctl stop firewalld

                     getenforce 0

                      配置本地yum源    等

2. 配置ip地址

客户机:110.110.110.1

调度器ens33:110.110.110.254

                  ens36:192.168.110.254

Web服务器1(需要配置网关192.168.100.254):192.168.100.1

web服务器2(需要配置网关192.168.100.254):192.168.100.2             

3.调度器开启路由功能

Vim /etc/sysctl.conf

net.Ipv4.ip_forward = 1

Sysctl -p 查看一下是否开启

4.在两台web服务器上安装httpd 开启服务

        yum -y install httpd

   在/var/www/html目录中新建index.html文件

   Echo web1或者web2 > index.html 用于轮询测试

   在调度器上curl web1和web2的IP地址查看是否能接通

5.在调度器上下载ipvsadm

如果软件无法正常启动,可查看Vim /usr/lib/systemd/system/ipvsadm.service   ipvsadm启动文件

在/etc/sysconfig下创建一个ipvsadm空文件,ipvsadm启动时会去此文件读取配置,停止时会将配置保存在此文件中,所以若没有必须touch /etc/sysconfig/ipvsadm 创建一个

 再次启动

6.调度器:ipvsadm -A -t 110.110.110.254:80 -s rr

添加虚拟服务节点,指定虚拟服务器IP地址,指定调度算法为rr(轮询)

Ipvsadm -Ln 查看一下

ipvsadm -a -t 110.110.110.254:80 -r 192.168.100.1:80 -m
ipvsadm -a -t 110.110.110.254:80 -r 192.168.100.2:80 -m
Ipvsadm -Ln

查看一下

添加真实服务节点,指定虚拟服务器IP,指定真实服务器IP,指定NAT模式

7.调度器:

ipvsadm-save > /etc/sysconfig/ipvsadm

将配置保存到启动文件中

cat /etc/sysconfig/ipvsadm查看一下

8.客户机访问测试 curl 110.110.110.254

查看是否轮询,多测试几次,然后去调度器上ipvsadm -Ln查看InActConn是否有进程

二.实现DR模型搭建

DR(Direct Routing)模型,也称为直接路由模式,是LVS(Linux Virtual Server,Linux虚拟服务器)的一种工作模式。在DR模式下,Director节点通过ARP欺骗将自己伪装成服务提供者,负载均衡器作为一个透明的代理,将客户端请求的IP包转发给后端的真实服务器,而真实服务器直接响应客户端。DR模式更节省流量和时间

  1. 每个节点调整内核参数

调度器:vim /etc/sysctl.conf

       

 net.ipv4.conf.all.send_redirects = 0 

(这个参数设定了所有接口(包括未来可能添加的新接口)发送ICMP重定向消息的开关。当值为0时,禁用所有接口发送ICMP重定向消息)

        

net.ipv4.conf.default.send_redirects=0

 (设定了默认情况下新添加接口发送ICMP重定向消息的开关。当值为0时,禁止所有新添加的接口发送ICMP重定向消息。)

       

 net.ipv4.conf.ens33.send_redirects = 0 

(这个参数设定的是指定接口是否应该发送ICMP重定向消息。当值为0时,该接口将被配置为不发送ICMP重定向消息。)

        

Sysctl -p /etc/sysctl.d/99-sysctl.conf 

使内核参数生效 (99-sysctl.conf是sysctl.d的映射文件,若有其他内核参数添加,可在sysctl.d目录下创建内核文件,使用绝对路径启动)

        Ipvsadm -Ln 查看一下是否有连接

Cat /etc/sysconfig/ipvsadm 

查看一下是否有配置

Echo > /etc/sysconfig/ipvsadm

清空文件中的配置,再查看一下是否清空

systemctl start ipvsadm 

 启动ipvsadm

2.配置客户机,调度器,和服务器的ip地址 (将四台机器的网卡全部配置成VMnet1模式,如果已经做了上一个实验,可以将调度器上多余的ens34网卡删除)

调度器:

Web1:110.110.110.252 (不需要dns和网关)  

Web2:110.110.110.253 (不需要dns和网关)

调度器:110.110.110.254

客户机:110.110.110.1

3.配置web内核参数(ARP参数)

Web1: vim /etc/ssysctl.conf

        net.ipv4.conf.all.arp_ignore = 1

        net.ipv4.conf.all.arp_announce = 2

        net.ipv4.conf.default.arp_ignore = 1

        net.ipv4.conf.default.arp_announce = 2

        net.ipv4.conf.lo.arp_ignore = 1

        net.ipv4.conf.lo.arp_announce = 2

        Sysctl -p 使内核参数生效

Web2:同上

4.配置VIP(VIP承载在真实网卡上,在现实环境下一定要使其永久生效)

调度器:cd /etc/sysconfig/network-scripts

Ls  查看一下,如果有ens34文件,可以rm -rf ifcfg-ens34 删除

Cp ifcfg-ens33 ifcfg-ens33:0

复制一个ens33文件,使其成为一个ens33的子接口

配置ens33:0这个子接口的IP地址

Vim ifcfg-ens33:0

:%s/ens33/ens33:0  末行模式下修改ens33:0的名字

IPADDR=110.110.110.251

Lsmod | grep ip_vs

查看一下模块是否加载(lsmod 是列出已加载内核模块的命令。如果系统中加载了任何与 IPVS 相关的内核模块,那么它们的名字中通常会包含 "ip_vs",因为这是 IPVS 模块命名约定的一部分)

       (注:若您使用的是CentOS6及以上的linux系统,请先加载模块再启动ipvsadm)

5.web节点配置

Web1:cd /etc/sysconfig/network-scripts/

Ls 查看一下是否有ifcfg-lo本地回环接口

Cp ifcfg-lo ifcfg-lo:0

Vim ifcfg-lo:0 进入ifcfg-lo:0进行如下配置

DEVICE=lo:0

IPADDR=110.110.110.251

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback:0

Systemctl restart network 重启网卡

Web2:操作同上,但将ifcfg-lo:0的IP地址更改为110.110.110.251

DEVICE=lo:0

IPADDR=110.110.110.251

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback:0

6.添加回环路由

Web1:route add -host 110.110.110.251/32 dev lo:0 (非永久添加,重启则消失)

Web2:route add -host 110.110.110.251/32 dev lo:0

Route -n 查看是否已经添加上了回环路由

永久添加: vim /etc/profile  (此文件是一个启动脚本,包含了系统级别的环境变量设置、用户定义的函数以及一些启动命令,当用户登录时,系统会读取并执行这个文件中的命令, 通常用于设置对所有用户都通用的环境变量)

将route add -host 110.110.110.251/32 dev lo:0复制到文件最末尾

7.添加节点

web服务器:systemctl start httpd 启动一下httpd服务

调度器:

ipvsadm -A -t 110.110.110.251:80 -s rr

(创建一个新的虚拟服务,监听在 110.110.110.251的TCP端口 80 上,并设置了轮询调度算法 rr)

ipvsadm -a -t 110.110.110.251:80 -r 110.110.110.252:80 -g

 (将真实服务器 110.110.110.252 添加到了刚才创建的虚拟服务中,-g指定为直接路由模式)

ipvsadm -a -t 110.110.110.251:80 -r 110.110.110.253:80 -g

ipvsadm -Ln 查看一下是否添加成功

保存当前系统的 IPVS(IP Virtual Server)配置到 /etc/sysconfig/ipvsadm 文件中:

ipvsadm-save > /etc/sysconfig/ipvsadm

(注:备份下当前的 IPVS 配置,以便在系统重启后能够恢复设置)

8.测试

在web服务器中使用tcpdump -i ens33 -vv抓包工具查看广播

在客户机中curl110.110.110.251查看是否可以轮询到两台web服务器

也可在调度器上ipvsadm -Ln 查看是否有进程

你可能感兴趣的:(lvs)