LVS部署之细枝末节

简介

本文总结了在LVS部署过程中需要注意的一些小细节。这些内容比较杂,并且没有规律和内在联系;它们分散在LVS部署过程中的各个小环节中,不是系统性的知识,也没有主线对它们进行连接。你可以通过此文对他们进行一个大概的了解,在实践过程中如果遇到可以再过来进行详细的查阅,以解决实际问题。

开启Linux的路由转发功能

LVS在VS/NAT方式下需要开启数据包转发(ip_forward)功能。因为在LVS的VS/NAT模式下,对IP数据进行负载均衡时,需要把多台真实服务器节点中的专网IP映射到同一个虚拟服务器的公网IP上;这就需要通过NAT技术对IP数据包进行转发,从而将IP数据包发送到真实服务器上进行处理。LVS在VS/DR模式下,因为director的DIP与真实服务器节点的RIP在同一网段,所以不需要开启路由转发功能。LVS在VS/TUN模式下,IP数据包是通过IP隧道技术进行封包后再分发的方式到达真实服务器节点的,也不需要开启路由转发功能。

开启Linux的路由转发功能的方法很多,具体细节请参阅文章Linux ip_forward 数据包转发

配置真实服务器的ARP请求与响应策略

在ARP协议中,为了减少arp请求的次数,当主机接收到询问自己的arp请求的时候,就会把源ip和源Mac放入自 己的arp表里面,方便接下来的通讯。如果收到不是询问自己的包(arp是广播的,所有人都收到),就会丢掉,这样不会造成arp表里面无用数据太多导致 有用的记录被删除。

在LVS的VS/DR模式下,当内网的真实服务器(Linux主机)要发送一个到外部网络的ip包(LVS负载器分配置过来的作业的处理结果),那么它就会请求路由器的Mac地址,发送一个arp请求,这个arp请求里面包括了自己的ip地址和Mac地址。而linux主机默认是使用ip数据包的源ip地址作为arp里面的源ip地址,而不是使用发送设备上面网络接口卡的ip地址。这样在LVS的VS/DR架构下,所有真实服务器在响应外部请求时的IP数据包的源地址都是同一个VIP地址,那么arp请求就会包括VIP地址和设备 Mac。而路由器收到这个arp请求就会更新自己的arp缓存,这样就会造成ip欺骗了,VIP被抢夺,所以就会有问题。

所以当LVS运行在VS/DR模式下时,需要在所有真实服务器上修改ARP请求与响应策略,以保证以上问题不会发生。

因为在lo(本地环回网络接口)上配置了VIP,所以需要对真实服务器中的ARP请求与响应策略配置如下:

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2

将以上代码段追加到/etc/sysctl.conf文件中,然后执行sysctl -p指令就可以。以上配置的具体含义请参阅Linux 内核参数 arp_ignore & arp_announce 详解

在VS/DR模式下 VIP 、DIP 和 RIP 必须在同一网段吗?

在VS/DR模式下 VIP 、DIP 和 RIP 不需要在同一网段!

其中VIP必须是公网IP;而DIP和RIP必须在同一网段(可以是任意网段的IP,也可以是私网IP),且需要节点主机的RIP可以把IP数据包发送到一个能把IP数据包路由到公网的路由器上。

单一公网IP的LVS VS/DR 网络拓扑图

如上图所示网络拓扑,配置LVS工作在VS/DR模式下是可以正常工作的。

其实LVS 在VS/DR模式下的要求是DIP和RIP必须处于同一网段中。在实际的部署过程中发现如果在Director上VIP和DIP在同一网段、或在RealServer上VIP与RIP在同一网段,LVS集群工作会很不稳定。因为当一个IP数据包需要发到默认网关时(在RealServer或Director上),Linux主机不知道应该使用哪个接口(在同一子网中的VIP和DIP/RIP),他可能会随机选一个,但这个不一定能成功。我感觉可以通过在Linux中配置路由表来解决,但没有验证(哪位同学如果有兴趣可以实践验证一下,如果能把验证结果反馈给我那是再好不过了)。

配置真实服务器的 反向路由过滤 策略

在Linux中用于对 网卡的反向路由过滤策略进行配置的内核参数是 rp_filter,有关此参数的详细介绍以及配置方式请参见Linux内核参数 rp_filter

LVS在VS/TUN模式下,需要对tunl0虚拟网卡的反向路由过滤策略进行配置。最直接的办法是把其值设置为0。

net.ipv4.conf.tunl0.rp_filter=0
net.ipv4.conf.all.rp_filter=0

因为Linux系统在对网卡应用反向路由过滤策略时,除了检查本网卡的rp_filter参数外,还会检查all配置项上的rp_filter参数,并使用这两个值中较大的值作为应用到当前网卡的反向路由过滤策略。所以需要同时把net.ipv4.conf.all.rp_filter参数设置为0。

配置tunl0网卡

LVS 在VS/TUN模式下,需要在每个真实服务器上开启tunl0网卡,并把VIP配置到tunl0网卡上。有关tunl0网卡的说明可以参考一下Linux 中IP隧道模块浅析

LVS在VS/TUN模式下 RealServer 上的防火墙配置

LVS在VS/TUN模式下 因为 Director主机需要通过ipip协议向RealServer分发数据包;所以需要在RealServer上配置防火墙,允许ipip协议的数据包通过。

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

推荐阅读更多精彩内容

  • 集群的概念LVS介绍ipvsadm的使用实现LVS-NAT实现LVS-DRLVS高可用 一、集群的概念 (一)系统...
    哈喽别样阅读 708评论 0 2
  • (一)LVS概念 LVS( Linux Virtual Server)是一种负载均衡(LB,Laod Balanc...
    uangianlap阅读 3,530评论 0 9
  • 1.集群的类型 1.1、LB: 负载均衡集群(Load Balancing) 组成部分负载均衡器调度器分发器后端主...
    Bruce_King阅读 772评论 0 1
  • Linux系统之lvs集群 集群的基本思想 由于现代化业务上线的需求, 单服务器已经不能满足业务的需要, 业务服务...
    魏镇坪阅读 3,620评论 0 14
  • 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有ngin...
    jiangmo阅读 1,276评论 0 1