LVS-DR模式

目录

一、DR模式工作原理

二、DR模式特点

三、 DR模式中的问题

四、LVS-DR模式部署实验

1、准备nfs服务器

2、准备节点服务器

3、准备调度器

4、浏览器测试


一、DR模式工作原理

1、客户端通过VIP发送请求报文到调度器,请求的数据报文源IP地址是客户端IP(CIP),目标 IP 是 VIP,到达调度器的内核空间

2、调度器通过调度算法选择最合适的节点服务器,并重新封装数据报文(将源MAC改为调度器的MAC,目的MAC改为节点服务器的MAC地址,不改变CIP和VIP),再通过交换机转发请求给节点服务器

3、节点服务器收到请求报文后,确认目的MAC和目的IP无误(节点服务器事先绑定了VIP)后解包并发送到应用层进行处理

4、节点服务器在返回响应报文前,会先重新封装报文(源IP为VIP,目的为客户端IP),再将响应报文先通过lo接口传送给物理网卡,再通过物理网卡发送给客户端

 5、客户端将收到回复报文,会认为得到了正常的服务,而不知道是哪一台服务器处理的

二、DR模式特点

1、调度器 和 节点服务器 必须在同一个物理网络中

2、节点服务器可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问,一般很少使用

3、调度器作为群集的访问入口,但不作为网关使用

4、所有的请求报文经由 调度器,但回复响应报文不能经过 调度器

5、节点服务器的网关不允许指向调度器的 IP,即节点服务器发送的数据包不允许经过调度器

6、节点服务器上的 lo 接口配置 VIP 的 IP 地址

三、 DR模式中的问题

1、在路由器发送ARP广播发送到集群时,因为调度器和节点服务器连接在相同的网络上,它们都会收到ARP广播。但是只有前端的调度器应该进行响应,节点服务区不应该进行响应,否则路由器的ARP缓存表会紊乱。

解决办法:针对节点服务器进行处理,使其不响应针对VIP的ARP请求

  • 使用虚接口lo:0承载节点服务器的VIP地址
  • 设置内核参数arp_ignore=1(vim /etc/sysctl.conf),使系统只响应目的IP为本地物理网卡IP的ARP请求

2、节点服务器返回报文(源地址是VIP地址),经过路由器转发,重新封装报文时需要先获取路由器的MAC地址。节点服务器发送ARP请求时,Linux默认使用IP包的源IP地址(VIP地址)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址。路由器收到ARP请求后,将跟新ARP表项,原有的VIP对应调度器的MAC地址会被更新为VIP对应的节点服务器的MAC地址。

解决办法:对节点服务器进行处理,设置内核参数arp_announce=2(vim /etc/sysctl.conf),使系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

总结:解决ARP紊乱两个问题的设置方法

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1                                 #节点服务器只响应目的IP为物理网卡的ARP请求     
net.ipv4.conf.lo.arp_announce = 2                          #节点服务器不使用IP包的源IP(VIP)来作为ARP请求报文的源IP地址,而采用发送接口的IP来作为ARP请求报文的源IP地址
net.ipv4.conf.all.arp_ignore = 1                         
net.ipv4.conf.all.arp_announce = 2                    

四、LVS-DR模式部署实验

1、准备nfs服务器

①关闭防火墙和安全机制

②确认rpcbind和nfs-utils两个程序是否安装,如果没有安装使用yum安装即可

LVS-DR模式_第1张图片

③准备共享目录,并创建共享文件

LVS-DR模式_第2张图片

④准备共享文件

vim  /etc/exports

LVS-DR模式_第3张图片

⑤启动rpcbind和nfs-utils(注意启动的先后顺序)

systemctl enable --now rpcbind nfs

⑥发布共享

exportfs -rv

2、准备节点服务器

①关闭防火墙和安全机制

②检测nfs服务器的文件是否成功共享

LVS-DR模式_第4张图片

③安装nginx

④查看nginx配置文件,获取nginx根目录位置

LVS-DR模式_第5张图片

⑤挂载nfs服务器共享文件到nginx根目录位置

先把nginx根目录中的50x.html 和 index.html文件移动到opt目录

LVS-DR模式_第6张图片

mount -a 刷新

最后再把移到opt目录中的文件移回来   mv  /opt/*.html  /usr/local/nginx/html/

⑥关闭nginx长连接

vim  /usr/local/nginx/conf/nginx.conf

LVS-DR模式_第7张图片

重启nginx

⑦使用curl命令验证

LVS-DR模式_第8张图片

⑧修改网卡配置文件,把网关地址和dns地址删除

vim /etc/sysconfig/network-scripts/ifcfg-ens33

LVS-DR模式_第9张图片

systemctl restart network

⑨修改内核参数

vim /etc/sysctl.conf

LVS-DR模式_第10张图片

sysctl -p

LVS-DR模式_第11张图片

⑩设置lo网卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-lo:0

vim ifcfg-lo:0

LVS-DR模式_第12张图片

ifup lo:0

LVS-DR模式_第13张图片

⑪添加路由(将访问VIP的数据报文限制在本地,避免通信紊乱)

LVS-DR模式_第14张图片

LVS-DR模式_第15张图片

LVS-DR模式_第16张图片

3、准备调度器

①关闭防火墙和安全机制

②设置虚拟网卡

 cd /etc/sysconfig/network-scripts/

vim ifcfg-ens33:0

LVS-DR模式_第17张图片

ifup ens33:0

LVS-DR模式_第18张图片

③修改内核参数

vim /etc/sysctl.conf

LVS-DR模式_第19张图片

sysctl -p

④加载模块

LVS-DR模式_第20张图片

⑤配置调度策略

先使用本地yum源安装ipvsadm工具:yum -y install ipvsadm

再创建ipvsadm文件:ipvsadm-save > /etc/sysconfig/ipvsadm 或 touch  /etc/sysconfig/ipvsadm

启动ipvsadm:systemctl start ipvsadm

LVS-DR模式_第21张图片

LVS-DR模式_第22张图片

LVS-DR模式_第23张图片

4、浏览器测试

LVS-DR模式_第24张图片

你可能感兴趣的:(lvs,服务器,linux)