LVS负载均衡之DR模式配置

DR 模式架构图:

操作步骤

实验环境准备:(centos7平台)

所有服务器上配置

# systemctl stop firewalld         //关闭防火墙
# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux //关闭selinux,重启生效
# setenforce         //关闭selinux,临时生效
# ntpdate .centos.pool.ntp.org //时间同步
注意:realserver的网关需要指向DIP

步骤一:配置 router

1)打开 ip_forward

[root@router ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward =
[root@router ~]# sysctl -p

2)添加防火墙规则,指定客户端进来的规则,(此处使用 iptables 做的,也可以换成 firewalld来做)

[root@router ~]# iptables -F
[root@router ~]# yum install iptables-services iptables
[root@router ~]# iptables -t nat -A PREROUTING -p tcp --dport -i ens33 -j DNAT --to-destination 10.10.10.110 //这条表示从 ens33(也就是192.168.1.31的)网卡进来访问80的包,DNAT到 10.10.10.110(也就是 LVS 调度器的 IP)
[root@router ~]#
[root@router ~]# iptables -t nat -A POSTROUTING -p tcp --dport -o ens37 -j SNAT --to-source 10.10.10.120 //这条表示(为了客户端 192.168.1.35 访问 192.168.1.31 变成 10.10.10.120 访问10.10.10.110),这样可以实现 LVS 调度器能回客户端
如果不加这条的话,也可以在LVS 调度器上添加路由(route add default gw 10.10.10.120 指一个网关回去,因为 DNAT 的目标机器需要一个网关才能回给 client) [root@router ~]# iptables-save > /etc/sysconfig/iptables
[root@router ~]# systemctl start iptables.service
[root@router ~]# systemctl enable iptables.service

步骤二:配置 LVS 调度器

1)安装ipvsadm

[root@lvs-director ~]# yum install ipvsadm -y

2)配置调度规则

[root@lvs-director ~]# ipvsadm -A -t 10.10.10.110: -s rr
[root@lvs-director ~]# ipvsadm -a -t 10.10.10.110: -r 10.10.10.11: -g //这里的 -g 就是表示使用直接路由模式,LVS 调度器就会把数据包调给 10.10.10.11 或 10.10.10.12 时,就只修改 MAC 地址,不修改目标 IP 直接路由过去
[root@lvs-director ~]# ipvsadm -a -t 10.10.10.110: -r 10.10.10.12: -g
[root@lvs-director ~]# ipvsadm -ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.10.110: rr
-> 10.10.10.11: Route
-> 10.10.10.12: Route

3)保存在文件中,设置为开机启动

[root@lvs-director ~]#
[root@lvs-director ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@lvs-director ~]# systemctl start ipvsadm
[root@lvs-director ~]# systemctl enable ipvsadm

4) 由于下面会在 web服务器上面添加一个子接口 lo:0 10.10.10.110网卡,这样就会到导致 lvs 调度器过去的包可以成果过去,但是不会回来,因为回来时它会直接查找自己的 lo:0的10.10.10.110。所以需要加一个子接口 掩码给到 255.255.255.128。

[root@lvs-director ~]# ifconfig ens33: 10.10.10.111 netmask 255.255.255.128

  注意:如果用掩码 255.255.255.0 还是会出现ping 不通的情况,因为ping的时候 10.10.10.110和10.10.10.111掩码相同,优先级一样。而用225.225.225.128路由选择会优先使用10.10.10.111去ping

步骤三:配置realserver

在 realserver(web01和web02)上安装 nginx,并在不同的 web 服务器上建立不同的主页内容(方便测试),并启动。

1) 在 web01 服务器配置

[root@web01 ~]# yum install nginx -y
[root@web01 ~]# echo "`hostname` `ifconfig ens33 |sed -n 's#.*inet \(.*\)netmask.*#\1#p'`" > /usr/share/nginx/html/index.html
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx

2) 在 web02 服务器配置

[root@web02 ~]# yum install nginx -y
[root@web02 ~]# echo "`hostname` `ifconfig ens33 |sed -n 's#.*inet \(.*\)netmask.*#\1#p'`" > /usr/share/nginx/html/index.html
[root@web02 ~]# systemctl start nginx
[root@web02 ~]# systemctl enable nginx

3) 添加vip (不论后端有几个web服务器,都需要做)

# ifconfig lo: 10.10.10.110 netmask 255.255.255.255  //注意掩码为4个255,想永久生效,可以写一个 ifcfg-lo:0 的网卡配置文件即可。

  最好不要写成 ifconfig lo:0 10.10.10.110/32 的形式,用ifconfig 查掩码会出现四个0。
  这一步是非常重要的,因为路由方式扔过来的包,目标 IP 不变,也就是说还是 10.10.10.120,只是通过找 10.10.10.11 或 10.10.10.12 的 MAC 地址扔过来的。
  所以 web 服务器上也需要有一个 10.10.10.120 这个 IP 来解析;用 lo 网卡来虚拟就是为了尽量不要与 lvs 网卡造成 ARP 广播问题。
  这里 netmask 为什么是4个 255,而不是 255.255.255.0?
  如果为 255.255.255.0,那么 10.10.10.0/24 整个网络都无法和web服务器通讯。

4) 真实服务器把默认路由指向 router 同物理网段的 IP,可以临时加也可以直接写在配置文件里面,这里上面的环境准备已经写在了配置文件。 (web1 和 web2 都需要做) 临时加示例:

# route add default gw 10.10.10.120

5) 抑制 web 服务器上 IP 冲突问题 (web1 和 web2 都需要做)

# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore =
net.ipv4.conf.lo.arp_announce =
net.ipv4.conf.all.arp_ignore =
net.ipv4.conf.all.arp_announce =
# sysctl -p

步骤四:在客户机上测试

[root@client ~]# curl 192.168.1.31
web01 10.10.10.11
[root@client ~]# curl 192.168.1.31
web02 10.10.10.12
[root@client ~]# curl 192.168.1.31
web01 10.10.10.11
[root@client ~]# curl 192.168.1.31
web02 10.10.10.12

从测试结果可以看出,轮循调度给后端web服务器了。至此dr模式就完成了。

LVS 概念篇参考 ->点我

NAT 模式实现参考 ->点我

LVS负载均衡DR模式实现的更多相关文章

  1. lvs负载均衡(DR模式)

    lvs负载均衡(DR模式) 系统环境:lvs+keepalivedcentos7.5 ip:192.168.1.157 vip:192.168.1.150(主)centos7.5 ip:192.168 ...

  2. LVS负载均衡DR模式

    什么是集群? 一组相互独立的计算机,利用高速通信网络组成的一个计算机系统,对于客户机来说像是一个单一服务器,实际上是一组服务器.简而言之,一堆机器协同工作就是集群.集群的基本特点:高性能.高并发.高吞 ...

  3. LVS负载均衡DR模式部署

    目录: 1. 拓扑图 2. 搭建环境 3. LVS服务器部署 4. 测试 1. 拓扑图     LVS-DR模式采的IP地址全部为外网IP.    本例中IP的设置全部采用临时设置IP的方式,重启后会 ...

  4. LVS负载均衡DR工作流程

    LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PRE ...

  5. LVS负载均衡NAT模式实现

    LVS负载均衡之NAT模式配置 NAT 模式架构图: 操作步骤 实验环境准备:(centos7平台) 所有服务器上配置 # systemctl stop firewalld //关闭防火墙 # sed ...

  6. LVS负载均衡工作模式和调度算法

    原文链接:https://blog.csdn.net/weixin_40470303/article/details/80541639 一.LVS简介 LVS(Linux Virtual Server ...

  7. lvs负载均衡net模式

    环境配置,一台双网卡的ens33,ens37,ens37的网关是ens33的IP,指定一下nginx ens33,192.168.30.22,ens37,172.16.1.1nginx  192.16 ...

  8. LVS负载均衡NAT模式原理介绍以及配置实战

    LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...

  9. lvs 负载均衡 NAT模式

    1.原理 基于NAT机制实现.当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserve ...

随机推荐

  1. Linux高级运维 第三章 Linux基本命令操作

    3.1  Linux终端介绍.Shell提示符.Bash基本语法 3.1.1  登录LINUX终端 两种终端仿真器:1.GNOME桌面的GHOME Terminal : 2.KDE桌面的Konsole ...

  2. Eclipse安装hibernate插件

    进入hibernate官网下载 http://tools.jboss.org/downloads/ 选择合适版本 下载完成后在eclipse->help->intall new softe ...

  3. pdf文件下载水印添加的中文与空格问题解决

    public static boolean waterMark(String inputFile, String outputFile, String waterMarkName)throws IOE ...

  4. 学习day02

    day021.结构标记 ***** 做布局 1.<header>元素 <header></header> ==> <div id="heade ...

  5. 安卓5.0系统怎么无Root激活XPOSED框架的方法

    在大多团队的引流或业务操作中,基本上都需要使用安卓的强大Xposed框架,几天前,我们团队买来了一批新的安卓5.0系统,基本上都都是基于7.0以上系统,基本上都不能够获得Root的su权限,纵然一些能 ...

  6. 商米D1S一体机设置搜狗手写输入法图解

    按照下图步骤,一步步设置即可,询问全新的时候需要点击允许. 商米应用市场搜索下载搜狗输入法,并安装 安装完成后,点击桌面搜狗输入法,选择启用搜狗输入法,如图 点击启用后,在虚拟键盘中选择搜狗输入法,并 ...

  7. DataPipeline CTO陈肃:从ETL到ELT,AI时代数据集成的问题与解决方案

    引言:2018年7月25日,DataPipeline CTO陈肃在第一期公开课上作了题为<从ETL到ELT,AI时代数据集成的问题与解决方案>的分享,本文根据陈肃分享内容整理而成. 大家好 ...

  8. winserver-查看登陆日志

    Abstract 先要开启登陆审核,在查看登陆日志. 开启审核 运行 secpol.msc 日志查看 windowslog 下的security 管理员成功登陆后的eventid:4776,4648, ...

  9. selenium之元素定位-xpath

    被测试网页的HTML代码 <html> <body> <div id="div1" style="text-align:center&quo ...

  10. 「技巧」如何快速安装 Sketch 插件

    Sketch拥有强大丰富的插件,但是这些插件天各一方,四处查找下载地址非常麻烦.这里提供一个技巧,通过一个入口可以安装各种插件,基本涵盖了市面上所有靠谱的插件. 准备 Sketch54 Runner ...