关于LVS-DR模式单网段设置 如图
需要特别注意的是,在LVS上一定要提前安装ipvsadm 而RS1和RS2上 安装httpd;

整个操作过程,其实并没有很多难的点,唯一的坑就是没有提前安装这两个软件,导致更改网卡信息后无法进行安装,需要重新设置
而后面的实验,所有的操作,其实就是图中这些;
到最后,有让我get到了一个我之前不知道的知识点;
话不多说,先进入正题;


1.internet主机环境

设置网卡

[root@internet ~]#cd /etc/sysconfig/network-scripts/
[root@internet network-scripts]#cat ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.10.6
GATEWAY=192.168.10.200
PREFIX=24
NAME=eth0
DEVICE=eth0
ONBOOT=yes

设置完后,一定要记得 重启

nmcli c reload   #这里c 是connection的缩写;
nmci c up eth0   #特别是我这种新人,一定要注意,多操作几次才养成习惯;


配置重启网卡后记得设置仅主机模式,否则网卡会无法启动;

2. 路由器的网络配置

生产中有路由器不需要,但是实验环境中没有的话,要将主机ip_forward功能设置为1 才有转发功能

[root@router ~]#echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
[root@router ~]#sysctl -p


路由器主机要设置两块网卡 首先是eth0

设置eth1的时候 要先添加网卡,因为这块网卡是面向internet主机,所以要设置一样的主机模式;


3.两台RS的网络设置

#RS1的网络配置

[root@rs1 ~]#hostname -I > /var/www/html/index.html
[root@rs1 ~]#ping 192.168.10.6 -c1


#RS2 的网络配置


#LVS的网络配置


4,两台RS的后端设置;

关于arp_ignore和arp_announce
限制响应级别:arp_ignore
0:默认值,表示可使用本地任意接口上配置的任意地址进行响应
1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应
限制通告级别:arp_announce
0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告
1:尽量避免将接口信息向非直接连接网络进行通告
2:必须避免将接口信息向非本网络进行通告

我的理解:LVS和两台RS的lovip一样,虽然数据通过arp协议 解析成mac传送,
但是如果不设置、会导致ip冲突,设置arp_ignore为1 arp_annouce为2
则是避免ip进行冲突,并且不通告自己ip,也就是说,三台主机ip一样
但是rs1和rs2展示出来的 和lvs看来的 rs1的ip就是10.0.0.7 rs2就是10.0.0.17

而LVS收到 internet发送的请求报文 修改数据包的目的MAC为RS的mac (这里RS可以是1、也可以是2,他们执行rr或者wrr规则 ) 这个过程通过ARP协议实现,RS接受到lvs转发的数据包后,解封装发现目标地址为lo网卡地址,转发本地进程处理
这个过程,无法跨网段
而另外一个方面是RS 处理完成后 直接发送到router 再回传internet、 降低了LVS的负载

后端RS1的IPVS配置;

[root@rs1 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs1 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@rs1 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs1 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@rs1 ~]#ifconfig lo:1 10.0.0.100/32


#后端RS2的IPVS配置:

[root@rs2 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs2 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs2 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@rs2 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@rs2 ~]#ifconfig lo:1 10.0.0.100/32

5.LVS主机的配置

#在LVS上添加VIP

[root@lvs ~]#ifconfig lo:1 10.0.0.100/32


#实现LVS 规则

[root@lvs ~]#ipvsadm -A -t 10.0.0.100:80 -s rr
[root@lvs ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.7:80 -g
[root@lvs ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.17:80 -g
[root@lvs ~]#ipvsadm -Ln



6.测试访问

[root@internet ~]#curl 10.0.0.100
10.0.0.17
[root@internet ~]#curl 10.0.0.100
10.0.0.7


在RS1和RS2里查看:

tail -f /var/log/httpd/access_log -n0



拓展 删除规则;

示例:

ipvsadm -D -t 192.168.10.100:80   #执行即可删除


**关于LVS-DR模式多网段设置 **

1.internet主机环境 和单网段一样
设置网卡;

[root@internet ~]#cd /etc/sysconfig/network-scripts/
[root@internet network-scripts]#cat ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.10.6
GATEWAY=192.168.10.200
PREFIX=24
NAME=eth0
DEVICE=eth0
ONBOOT=yes



2. 路由器的网络配置 其他的都一样,唯一不同是:在eth0上添加172.16.0.200/24的地址 (其他一样,这里添加一个网卡)

ip addr add 172.16.0.200/24 dev eth0


#LVS的网络配置 (单网段一样)


#RS1 RS2主机的的网络配置 也是一样
不同的地方是:

在LVS主机需要运行脚本;

[root@lvs ~]#cat lvs_dr_vs.sh
#!/bin/bash
vip='172.16.0.100'
iface='lo:1'
mask='255.255.255.255'
port='80'
rs1='10.0.0.7'
rs2='10.0.0.17'
scheduler='wrr'
type='-g'
rpm -q ipvsadm &> /dev/null || yum -y install ipvsadm &> /dev/nullcase $1 in
start)ifconfig $iface $vip netmask $mask #broadcast $vip upiptables -Fipvsadm -A -t ${vip}:${port} -s $scheduleripvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1echo "The VS Server is Ready!";;
stop)ipvsadm -Cifconfig $iface downecho "The VS Server is Canceled!";;
*)echo "Usage: $(basename $0) start|stop"exit 1;;
esac

然后执行 bash lvs_dr_vs.sh start

#在RS1和RS2后端服务器运行一样的脚本

[root@rs1 ~]#cat lvs_dr_rs.sh
#!/bin/bash
vip=172.16.0.100
mask='255.255.255.255'
dev=lo:1
rpm -q httpd &> /dev/null || yum -y install httpd &>/dev/null
service httpd start &> /dev/null && echo "The httpd Server is Ready!"
echo "`hostname -I`" > /var/www/html/index.htmlcase $1 in
start)echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceifconfig $dev $vip netmask $mask #broadcast $vip upecho "The RS Server is Ready!";;
stop)ifconfig $dev downecho 0 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/all/arp_announceecho 0 > /proc/sys/net/ipv4/conf/lo/arp_announceecho "The RS Server is Canceled!";;
*)echo "Usage: $(basename $0) start|stop"exit 1;;
esac
[root@rs1 ~]#bash lvs_dr_rs.sh start


测试结果下

我感觉最大的区别还是多网段的操作是将后端RS1的IPVS配置和规则都放在脚本里,好像有更方便!

拓展问题

最近有看到有朋友遇到以下这个问题

一开始我也是云里雾里不明所以,特意咨询了一位前辈,号称运维界白眉大侠的博爷
“噼啪” 被反手甩了一巴掌
对不起,他只是人白,眉毛很靓仔 (⊙o⊙)…
他让我好好理解一下DR模式下的三次握手过程 嗷;

在LVS-DR环境里;正常三次握手过程如下;

图中所示,LVS在接收客户端请求后,
LVS收到 internet发送的请求报文 修改数据包的目的MAC为RS的mac 这里为RS1; 这个过程通过ARP协议实现,RS1接受到lvs转发的数据包后,解封装发现目标地址为lo网卡地址,转发本地进程处理 处理完了以后 不经过LVS,直接通过交换机 回传给客户端

所以,这个RS1是ping不通LVS的;

如果要让下图中的LVS和rs1连接,网关都不需要。通过交换机直接可以ping通

谢谢观赏

LVS-DR模式单网段和多网段设置步骤相关推荐

  1. LVS DR模式负载均衡

    高并发场景 LVS 安装及高可用实现 分类: 运维基本功,故障解决 转载自 惨绿少年   https://www.cnblogs.com/clsn/p/7920637.html 1.1 负载均衡介绍 ...

  2. LVS DR模式搭建、keepalived+LVS

    LVS DR 模式搭建 准备工作 三台机器,三台机器均有公网IP. 调度器(director) IP:192.168.159.131 real server 1 (real1) IP:192.168. ...

  3. LVS DR模式 负载均衡服务搭建

    LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层 ...

  4. ​十六周一次课(4月11日) 学习完成 18.11 LVS DR模式搭建 18.12 keepalived + LVS

    2019独角兽企业重金招聘Python工程师标准>>> 18.11 LVS DR模式搭建 准备工作:三台机器 分发器,也叫调度器(简写为dir) 192.134 rs1 192.13 ...

  5. LVS DR模式搭建,keepalived + LVS

    2019独角兽企业重金招聘Python工程师标准>>> LVS DR模式搭建 准备工作 三台机器,只需要有公网IP 分发器,也叫调度器(简写为dir)IP:192.168.133.1 ...

  6. lvs dr模式安装

    lvs dr模式安装 环境:centos5.5 (注:测试环境均为centos5.5,在虚拟机上虚拟三个centos系统) vip 192.168.3.169 lb真是ip192.168.3.168 ...

  7. Linux集群架构(LVS DR模式搭建、keepalived + LVS)

    为什么80%的码农都做不了架构师?>>>    LVS DR模式搭建 准备工作:三台机器 分发器,也叫调度器(简写为dir):192.168.248.128 rs1 :192.168 ...

  8. LVS DR模式搭建、keepalived + LVS

    一. LVS DR模式搭建 1).准备工作: 三台机器 分发器,也叫调度器(简写为dir) 1.31 rs1 1.12 rs2 1.29 vip 1.200 2). dir上编写脚本 vim /usr ...

  9. lvs之 lvs+nginx+tomcat_1、tomcat_2+redis(lvs dr 模式)

    前提:已经安装好 lvs+nginx+tomcat_1.tomcat_2+redis环境 ,可参考 (略有改动,比如tomcat_1.tomcat_2安装在两台机器上,而不是单机多实例 ,自行稍稍变动 ...

  10. centos6.4下LVS+keepalived的高可用(LVS/DR模式)

    LVS负载均衡机制: LVS工作在网络层.相对于其它负载均衡的解决办法,比如DNS域名轮流解析.应用层负载的调度.客户端的调度等,它的效率是非常高的.LVS的通过控制IP来实现负载均衡.IPVS是其具 ...

最新文章

  1. ubuntu安装mysql 密码忘了怎么办_在ubuntu上面安装mysql都密码忘记及一些常用命令...
  2. Kubernetes 2018 年度简史
  3. java并发框架支持锁包括,jdk1.8锁
  4. C++中virtual关键字的用法
  5. 参考文献要不要首行缩进_参考文献格式要求(2015-2016-2)
  6. 视频跟踪——meanshift算法
  7. java线程间ThreadLocal的传递
  8. DelayQueue1.8源码
  9. 页面刷新_刷新vue页面,解决数据丢失
  10. POI生成Word多级标题格式
  11. linux操作系统实用教程课后答案,Linux操作系统案例教程课后习题答案
  12. 软件设计师刷题(1)
  13. 软件测试简历项目经验该怎么写?【两年经验】
  14. Gstreamer uridecodebin 插件手动选择解码器
  15. 计算机专业职业适应性考试包括什么内容,2020年分类招生《职业适应性测试(职业技能测试)》大纲...
  16. kali安装中文拼音输入法2
  17. mac电脑有很多._开头的文件
  18. 华为鸿蒙系统落地,鸿蒙系统正式落地!华为养的“这只狼”,终于派上用场了?...
  19. Anroid 逆向工具
  20. android7.0计时器代码,iCountTimer Pro(锻炼计时器)

热门文章

  1. 利用python构建分子碎片库
  2. WearOS Offload模式下的表盘开发
  3. 微信小程序删除数组指定元素
  4. 案例:Nginx作为Web缓存服务器应用
  5. Matplotlib雷达图、三维饼状图
  6. 一个餐饮店生意惨淡如何自救
  7. 【嵌入式开发】DM6467T环境搭建
  8. DM8 DEM 部署
  9. 用apache反向代理解决单外网ip对应内网多个web主机的问题
  10. Sandcastle Help File Builder