LVS 的几种连接模式

初次搭建LVS时使用只有一张网卡的虚拟机,无论如何配置都不能跳转到real server 上,总结发现与LVS的连接模式有关系,LVS主要有以下几种模式:

  1. NAT模式;
    NAT模型:地址转换类型,主要是做地址转换,类似于iptables的DNAT类型,它通过多目标地址转换,来实现负载均衡;
    特点和要求:
  • LVS(Director)上面需要双网卡:DIP(内网)和VIP(外网)

  • 内网的Real Server主机的IP必须和DIP在同一个网络中,并且要求其网关都需要指向DIP的地址

  • RIP都是私有IP地址,仅用于各个节点之间的通信

  • Director位于client和Real Server之间,负载处理所有的进站、出站的通信

  • 支持端口映射

  • 通常应用在较大规模的应用场景中,但Director易成为整个架构的瓶颈。
    相关机器信息;
    LB1 eth0:192.168.244.132 (Vip) (公网)
    eth1:192.168.27.128 (Dip) (内网)
    rs1 eth0:192.168.27.130 (Rip) (内网)getway:192.168.27.128
    rs2 eth0:192.168.27.131 (Rip) (内网)getway:192.168.27.128

    Paste_Image.png

    首先使用nginx将两台rs机器访问页面配置好,使得访问rs1出现welcome to nginx!I'm rs 1!,访问rs2出现welcome to nginx!I'm rs 2。

    现在在LB上操作;
    确定本机ip_vs模块是否加载,也就是是否支持lvs,2.4.2后都支持了;然后安装ipvsadm 用户操作命令。

    ipvsadm安装:

    [root@LB1 ~]# yum install ipvsadm -y
    echo 1 > /proc/sys/net/ipv4/ip_forward
    ipvsadm -A -t  192.168.244.132:80 -s rr
    ipvsadm -a -t 192.168.244.132:80 -r 192.168.27.130-m
    ipvsadm -a -t 192.168.244.132:80 -r 192.168.27.131-m
    

    测试页面时可以访问到 两台rs的 html页面交替出现。

  1. DR模式:
    特点和要求
  • 各个集群节点必须和Director在同一个物理网络中

  • RIP地址不能为私有地址,可以实现便捷的远程管理和监控

  • Director仅仅负责处理入站请求,响应报文则由Real Server直接发往客户端

  • 集群节点Real Server 的网关一定不能指向DIP,而是指向外部路由

  • Director不支持端口映射

  • Director能够支持比NAT多很多的Real Server
    原理:
    DR模型:直接路由模型,每个Real Server上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP
    Director在接受到外部主机的请求的时候转发给Real Server的时候并不更改目标地址,只是通过arp解析的MAC地址进行封装然后转给Real Server,Real Server在接受到信息以后拆除MAC帧封装,然后直接回复给CIP。

    Paste_Image.png

    LB1: eth0: 192.168.182.133
    vip(eth0:0): 192.168.182.200
    RS1: eth0:192.168.182.130
    lo:0(vip) :192.168.182.200
    RS2: eth0:192.168.182.129
    lo:0(vip) 192.168.182.200

    通信原理:
    每个Real Server上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP

    Director在接受到外部主机的请求的时候转发给Real Server的时候并不更改目标地址,只是通过arp解析的MAC地址进行封装然后转给Real Server,Real Server在接受到信息以后拆除MAC帧封装,然后直接回复给CIP。

    而此时需要关闭RS上的基于VIP的arp解析,在linux内核2.4以后,内核中都内置了这种功能,通过一些设置可以关闭其arp的功能:

    arp_ignore:定义接收到ARP请求时的响应级别
    0:默认,只用本地配置的有响应地址都给予响应
    1:仅仅在目标IP是本地地址,并且是配置在请求进来的接口上的时候才给予响应(仅在请求的目标地址配置请求到达的接口上的时候,才给予响应)
    arp_announce:定义将自己的地址向外通告时的级别
    0:默认,表示使用配置在任何接口的任何地址向外通告
    1:试图仅向目标网络通告与其网络匹配的地址
    2:仅向与本地接口上地址匹配的网络进行通告
    Ps:要想让其功能生效,必须先设置相关设置,然后在配置IP地址等信息
    1、开始在RS1操作:

    [root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
    [root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
    [root@rs1 ~]# service network restart
    [root@rs1 ~]#ifconfig lo:0 192.168.182.200 netmask 255.255.255.255 broadcast 182.168.182.200
    [root@rs1 ~]# route add -host 192.168.182.200 dev lo:0
    

    上面的就是定义了arp响应的级别;还有就是vip的请求数据,从rs1的本地ip进行了回复;
    2、在RS2上执行上面同样的操作
    3、在LB上操作:
    配置eth0网卡ip;

    [root@LB1 ~]# ifconfig eth0:0 192.168.182.200/24   #在eth0:0配置vip
    

    验证RS的web服务,访问两天RS服务器均可正确访问,分别出现I'm 1! 和 I'm 2!

    接下来在DR上设置转发:

    [root@LB1 ~]# yum install ipvsadm -y
    ipvsadm -A -t  192.168.182.200:80 -s rr
    ipvsadm -a -t 192.168.182.200:80 -r 192.168.27.130 -g
    ipvsadm -a -t 192.168.182.200:80 -r 192.168.27.131 -g
    

    访问192.168.182.200测试结果,可交替出现两台RS的html页面。

  1. TUN模式;
    其实数据转发原理和上图是一样的,不过这个我个人认为主要是位于不同位置(不同机房);LB是通过隧道进行了信息传输,虽然增加了负载,可是因为地理位置不同的优势,还是可以参考的一种方案;

    优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈。使用VS-TUN方式,如果你的负载均衡器拥有100M的全双工网卡的话,就能使得整个Virtual Server能达到1G的吞吐量。

    不足:但是,这种方式需要所有的服务器支持"IP Tunneling"(IP Encapsulation)协议;

    LB1: eth0: 192.168.182.132
    vip(tunl0): 192.168.182.200
    RS1: eth0:192.168.27.130
    tunl0(vip) :192.168.182.200
    RS2: eth0:192.168.138.131
    tunl0(vip) :192.168.182.200

    LB1操作:

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

推荐阅读更多精彩内容