最新文章:

首页 运维技术

LVS三种工作模式以及最主流的DR模式搭建流程

发布时间:2016年08月07日 评论数:抢沙发 阅读数:880

    LVS常用的工作模式有NAT、DR、和TUN三种,其中DR模式性能最为优越,使用最为广泛
    NAT模式:网络地址转换
     
    NAT(Network Address Translation)是一种外网和内网地址映射的技术。NAT模式下,数据的进出都要经过LVS的处理。LVS需要作为Real Server(真实服务器)的网关。当包到达LVS时,LVS做目标地址转换(DNAT),将目标IP改为Real Server的IP。Real Server接收到包以后,仿佛是客户端直接发给它的一样。Real Server处理完返回响应时,源IP是Real Server IP,目标IP是客户端的IP。这时Real Server的包通过网关(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端看起来就仿佛是LVS直接返回给它的。客户端无法感知到后端Real Server的存在。

    lvs1.jpg


     

    DR模式:直接路由模式

    请求由LVS接受,但是由Real Server返还给用户信息,不经过LVS转发。这里引申一个问题:当用户请求时,源IP是CIP,目标地址是VIP;LVS调度器将请求转发给Real Server处理后再发送给用户,这个时候源IP是RIP,目标地址是CIP,但是用户并没有请求RIP,用RIP响应请求时CIP不会接受,所以需要用VIP响应请求。

    具体实现方法:DR模式下LVS和Real server都需要配备一样的VIPReal Server通过将VIP绑定在loopback实现),问题又来了,在一个网段内多台服务器出现同样IP地址会引起冲突,那么如何工作下去呢?需要在调度服务器上设置一个VIP一个DIP,每个Real Server也有一个RIP和一个VIP,但是Real Server的VIP地址做了隐藏,不会应答广播,只在响应CIP时作为源地址使用。当产生请求时LVS将目标MAC地址修改为某台Real Server的MAC,该包就会被转发到相应的Real Server处理,此时源IP和目标IP都没变。Real Server收到LVS转发来的包时发现MAC是自己的,IP也是自己的,于是这个包被合法地接受。当Real Server返回响应时,只要直接向CIP返回即可,不再经过LVS。 

    lvs2.jpg

     

    LVS  DR模式搭建流程:

    LVS的安装参考本站文章:http://www.linuxe.cn/post-192.html

    模拟环境如下:

    DIP:192.168.36.10

    VIP:192.168.36.100

    RIP:192.168.36.15、192.168.36.16 

    ①、首先在作为LVS调度器(Director)的服务器外网卡上配置一个VIP,并且添加一个路由条目,指明接收到该VIP的请求后交给谁处理

    ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up

    route add -host $VIP dev eth0:1

    01 [root@Server01 ipvsadm-1.26]# ifconfig eth0:0 192.168.36.100 broadcast 192.168.36.100 netmask 255.255.255.255 up    #添加VIP,广播地址和VIP一样,注意子网掩码不要写错
    02 [root@Server01 ipvsadm-1.26]# ifconfig
    03 eth0      Link encap:Ethernet  HWaddr 00:0C:29:B1:5B:03 
    04           inet addr:192.168.36.10  Bcast:192.168.36.255  Mask:255.255.255.0
    05           inet6 addr: fe80::20c:29ff:feb1:5b03/64 Scope:Link
    06           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    07           RX packets:193262 errors:0 dropped:0 overruns:0 frame:0
    08           TX packets:46932 errors:0 dropped:0 overruns:0 carrier:0
    09           collisions:0 txqueuelen:1000
    10           RX bytes:273832326 (261.1 MiB)  TX bytes:4948956 (4.7 MiB)
    11  
    12 eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:B1:5B:03 
    13           inet addr:192.168.36.100  Bcast:192.168.36.100  Mask:255.255.255.255
    14           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    15  
    16 lo        Link encap:Local Loopback 
    17           inet addr:127.0.0.1  Mask:255.0.0.0
    18           inet6 addr: ::1/128 Scope:Host
    19           UP LOOPBACK RUNNING  MTU:65536  Metric:1
    20           RX packets:29 errors:0 dropped:0 overruns:0 frame:0
    21           TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
    22           collisions:0 txqueuelen:0
    23           RX bytes:2440 (2.3 KiB)  TX bytes:2440 (2.3 KiB)
    24  
    25 [root@Server01 ipvsadm-1.26]# ping 192.168.36.100    #验证是否畅通
    26 PING 192.168.36.100 (192.168.36.100) 56(84) bytes of data.
    27 64 bytes from 192.168.36.100: icmp_seq=1 ttl=64 time=0.057 ms
    28 64 bytes from 192.168.36.100: icmp_seq=2 ttl=64 time=0.079 ms
    29  
    30 [root@Server01 ipvsadm-1.26]# route add -host 192.168.36.100 dev eth0:0    #增加路由条目

    ②、使用ipvsadm工具配置Director和Real Server信息

    1 [root@Server01 ipvsadm-1.26]# ipvsadm -A -t 192.168.36.100:80 -s rr    #指定LVS调度器的地址以及算法             
    2 [root@Server01 ipvsadm-1.26]# ipvsadm -a -t 192.168.36.100:80 -r 192.168.36.15:80 -g    #指定Real Server的地址以及工作模式,这里是15服务器
    3 [root@Server01 ipvsadm-1.26]# ipvsadm -a -t 192.168.36.100:80 -r 192.168.36.16:80 -g    #指定Real Server的地址以及工作模式,这里是16服务器


    ③、使用ipvsadm -L 可以检查一下配置结果

    lvsdr.png

    ④、在每台Real Server上绑定VIP并增加路由条目

    ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

    route add -host $VIP dev lo:0

    ⑤、在每台Real Server上做ARP相关抑制,其中2个参数为arp_ignore、arp_announce

    arp_ignore(接收到ARP请求后的响应级别):

    0:本地有相应地址就相应,无论在哪个接口

    1:仅对请求的目标地址是在本地接口上才作响应

    arp_announce(向外回应自己网络地址):

    0:在任意网络接口上的本地地址都向外响应

    1:尽量使用与本地接口匹配的地址向外响应

    2: 仅使用与本地接口匹配的网络向外响应

    1 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    2 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    3 echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    4 echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce


    ⑥、访问VIP地址测试,可以看到分别访问到了两台不同的服务器,实际生产环境中两个服务器上文件应该是一致的,这里为了测试效果,所以放了不同的文件区分,如果无法正常打开页面,查看下iptables的规则是否有清空

    ba93775b133922394baa8c1bbcd2a15b.gif

     

     

    温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
二维码加载中...
本文作者:Mr.linus      文章标题: LVS三种工作模式以及最主流的DR模式搭建流程
本文地址:http://www.90qj.com/380  本文已经被百度收录,点击查看详情
版权声明:若无注明,本文皆为“挨踢 Blog”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论