lvs+DR模式负载均衡

Lvs实现负载均衡测试

1 实践LVS的DR模式

三台机器:

Director节点:(eth0 192.168.248.155  vip eth0:0 192.168.248.158)

Real server1:(eth0 192.168.248.156 vip lo:0 192.168.248.158)

Real server2:(eth0 192.168.248.157 vip lo:0 192.168.248.158)

临时配置

(1).临时配置,重启后失效

ip addr  add 192.168.248.158/24 dev ens33 label ens33:0

ip addr  add 192.168.248.158/24 dev lo label lo:0

(ip addr  del 192.168.248.158/24 dev ens33 label ens33:0 网卡子接口删除(重启后失效))

永久配置,修改配置文件如下

[root@localhost network-scripts]# catifcfg-ens33:0

TYPE=Ethernet

BOOTPROTO=none

DEVICE=ens33:0

ONBOOT=yes

IPADDR=192.168.248.158

NETMASK=255.255.255.0

HWADDR=00:0c:29:5b:b0:a7

IPV6INIT=no

NM_CONTROLLED=no

修改后完成后,重启网络服务

2 安装相应软件

Director端安装ipvsadm

yum install -yipvsadm

server端安装httpd

yum install -y httpd

3 director端配置脚本

#! /bin/bash


echo 1 > /proc/sys/net/ipv4/ip_forward


ipv=/sbin/ipvsadm


vip=192.168.248.158


rs1=192.168.248.156


rs2=192.168.248.157


#设置ds的ip和路由,也可以先手动设置好


ifconfig ens33:0 down


ifconfig ens33:0 $vip broadcast $vipnetmask 255.255.255.255 up


route add -host $vip dev ens33:0


$ipv -C


$ipv -A -t $vip:80 -s wrr


$ipv -a -t $vip:80 -r $rs1:80 -g -w 3


$ipv -a -t $vip:80 -r $rs2:80 -g -w 1


注释:-g的意思是采用dr模式。

特别需要注意的是端口,DR不支持端口映射,因此rs和ds端口要一样。因此,ds监听端口是80的话,那么rs的监听端口也要是80,若要修改端口则需要同步修改,比如rs的监听端口是8080,那么就要都修改为8080,则变化如下.

$ipv -A -t $vip:8080 -s wrr

$ipv -a -t $vip:8080 -r $rs1:8080 -g -w 3

$ipv -a -t $vip:8080 -r $rs2:8080 -g -w 1

 参数解析:参见https://www.linuxidc.com/Linux/2017-01/140003.htm

-A:添加一个集群服务

-t:tcp

-s:指定调度算法

-a:向指定的cs添加rs

-r:指定具体的rs,可包含ip和端口

-g:Gateway,DR(默认使用的类型),nat模式是-m

-w:指定权重

-C:清空所有集群服务

-Z:计数器清零

在server端配置脚本

#! /bin/bash


vip=192.168.248.158


ifconfig lo:0 $vip broadcast $vip netmask255.255.255.255 up


route add -host $vip lo:0


#echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore


#echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce


#echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore


#echo "2">/proc/sys/net/ipv4/conf/all/arp_announce


echo “net.ipv4.conf.lo.arp_ignore=1”

echo “net.ipv4.conf.all.arp_ignore=1”

echo “net.ipv4.conf.lo.arp_announce=2”

echo “net.ipv4.conf.all.arp_announce=2”

sysctl –p



备注:server端服务器永久生效没有实现

1、为什么所有RS上都要配置VIP

 因为当调度器把请求转发给对应RS时,并没有修改报文目的IP,因此请求报文目的IP仍为VIP,所以如果RS没有配置VIP,那么报文到达RS后就会被丢弃。

2、为什么所有RS要设置arp_ignore=1和arp_announce=2呢

 arp_ignore=1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

 因为我们在RS上都配置了VIP,因此此时是存在IP冲突的,当外部客户端向VIP发起请求时,会先发送arp请求,此时调度器和RS都会响应这个请求。如果某个RS响应了这个请求,则之后该客户端的请求就都发往该RS,并没有经过LVS,因此也就没有真正的负载均衡,LVS也就没有存在的意义。因此我们需要设置RS不响应对VIP的arp请求,这样外部客户端的所有对VIP的arp请求才会都解析到调度器上,然后经由LVS的调度器发往各个RS。

 系统默认arp_ignore=0,表示响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。也就是说,如果机器上有两个网卡设备A和B,即使在A网卡上收到对B

IP的arp请求,也会回应。而arp_ignore设置成1,则不会对B

IP的arp请求进行回应。由于lo肯定不会对外通信,所以如果只有一个对外网口,其实只要设置这个对外网口即可,不过为了保险,很多时候都对all也进行设置。

 arp_announce=2:网卡在发送arp请求时使用出口网卡IP作为源IP

 当RS处理完请求,想要将响应发回给客户端,此时想要获取目的IP对应的目的MAC地址,那么就要发送arp请求。arp请求的目的IP就是想要获取MAC地址的IP,那arp请求的源IP呢?自然而然想到的是响应报文的源IP地址,但也不是一定是这样,arp请求的源IP是可以选择的,而arp_announce的作用正是控制这个地址如何选择。系统默认arp_announce=0,也就是源ip可以随意选择。这就会导致一个问题,如果发送arp请求时使用的是其他网口的IP,达到网络后,其他机器接收到这个请求就会更新这个IP的mac地址,而实际上并不该更新,因此为了避免arp表的混乱,我们需要将arp请求的源ip限制为出口网卡ip,因此需要设置arp_announce=2。

3、为什么RS上的VIP要配置在lo上

 由上可知,只要RS上的VIP不响应arp请求就可以了,因此不一定要配置在lo上,也可以配置在其他网口。由于lo设备不会直接接收外部请求,因此只要设置机器上的出口网卡不响应非本网卡上的arp请求接口。但是如果VIP配置在其他网口上,除了上面的配置,还需要配置该网口不响应任何arp请求,也就是arp_ignore要设置为8。

4、为什么RS上lo配置的VIP掩码为32位

 这是由于lo设备的特殊性导致, 如:lo绑定192.168.0.200/24,则该设备会响应该网段所有IP(192.168.0.1~192.168.0.254) 的请求,而不是只响应192.168.0.200这一个地址。

5、为什么调度器与RS要在同一网段中

 根据DR模式的原理,调度器只修改请求报文的目的mac,也就是转发是在二层进行,因此调度器和RS需要在同一个网段,从而ip_forward也不需要开启。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容