首页 > 其他 > 详细

LVS--DR模型介绍及实现

时间:2015-10-27 07:03:09      阅读:460      评论:0      收藏:0      [点我收藏+]

ARP地址解析:

    报文从客户的短到达路由器之后,会加上源mac地址(从路由器哪个接口进入的就是哪个接口的mac地址),当到达本地网络之后,会在整个本地网络中做arp地址解析广播,把ip地址转换为mac地址进行通信。路由器进行报文的源mac和目标mac的封装,发送给交换机,交换机通过维护的mac地址表,进行报文的转发。  

相关内容:

    通过修改请求报文的目标mac地址实现请求报文的转发。

     (1)保证前端路由器将目标ip为vip的报文请求发送给调度器(director);

        解决方法:

            静态绑定:就是在路由器上进行配置一个arp地址表,将来自的访问请求直接解析为mac地址,发送给调度器(director);

            arptables:在两台RS上配置arptables规则,将收到vip的arp报文请求拒绝应答或者拒绝访问;

            修改RS主机内核的参数(最好用的):arp_announce(是否接受别人的通告,并且进行记录,是否通告给别人),arp_ignore(是否响应别人的arp请求)

    (2)RS的RIP可以使用私有地址,但也可以使用公网地址;

    (3)RS和director必须在同一物理网络中;

    (4)请求报文必须经过director,但响应报文一定不能经由director;

    (5)不支持端口映射;

    (6)RS支持大多数OS;

    (7)RS的网关不能指向DIP;

    当rip、vip和dip在同一网段的时候,rip指向的网关为dip的网关。当rip、vip和dip不在同一网段的时候,rip指向的网关为直接能跟客户端通讯的下一跳路由器的ip。通过修改请求报文的mac地址进行转发,在dr模型中,在调度器(director)上有两个ip地址,为VIP和DIP。同样的在RS上也有两个ip地址,为VIP和RIP。通常情况下,在RS上,VIP一般配置在本地回环接口的别名上。

    通常在director上,vip配置在网卡的别名上,dip就是网卡的ip地址。


调度详细过程:

    技术分享    

    第一步:客户端发起请求报文,报文的源IP地址为CIP,目标IP地址为VIP。在经过路由器的时候,通过对VIP的地址解析,封装为MAC帧数据, 其源MAC为(从路由器哪个接口进入的就是哪个接口的MAC的地址),进行ARP广播,只能找到VIP所在的调度器(director),同时进行对MAC帧数据进行解封。

    第二步:调度器通过某种调度算法,找出一个RS,做ARP地址广播。之后,经过调度器调度之后,对请求报文进行封装包含源MAC地址(源MAC地址并不重要)、请求报文本身(包含源IP和目的IP)以及包含挑选出来的RS的MAC地址。调度器将这个封装报文发回给交换机,交换机通过本身的MAC地址表找到调用的RS,进行解封,发现目的IP地址即VIP在本机有,那么提供服务。
    第三步:应答报文通过交换机和路由器直接返回给客户端。应答报文在在rs内部,由于客户端请求的为vip,所以不能通过rip所在网卡直接响应,必须在rs内部添加一条路由,使得从lo接口哪个别名上进来的请求,还得经过lo接口上的哪个别名出去。前提:服务器RS的RIP必须可以通过路由器与客户端进行通信。


实现拓扑:

    实现对http服务的调度。

    技术分享

配置过程:

    (1)对调度器(director)进行配置,同时在director上安装ipvsadm软件包。

        添加vip在director上。

[root@7-1 ~]# ifconfig eno16777736:0 172.16.125.100/32 broadcast 172.16.125.100 up

     要求是对vip172.16.125.100的请求必须经过eno16777736:0该接口进行响应。

[root@7-1 ~]# route add -host 172.16.125.100 dev eno16777736:0

    (2)后端RS的详细配置:

    首先修改内核参数,保证前段路由器将目标地址为vip的报文发送给director。在后端RS上都要进行设置。

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

    然后添加vip到lo接口的别名上,并且绑定通过lo接口别名进来的报文必须经过lo接口别名设备发送出去。后端RS上都要设置,同时在后端RS上开启httpd服务。

[root@7-2 ~]# ifconfig lo:0 172.16.125.100/32 broadcast 172.16.125.100 up
[root@7-2 ~]# route add -host 172.16.125.100 dev lo:0

    3)在调度器上进行ipvs规则的设置。

[root@7-1 ~]# ipvsadm -A -t 172.16.125.100:80 -s rr
[root@7-1 ~]# ipvsadm -a -t 172.16.125.100:80 -r 172.16.125.6 -g
[root@7-1 ~]# ipvsadm -a -t 172.16.125.100:80 -r 172.16.125.7 -g

    测试,在实现的时候,采用的是rr(轮询)算法,在客户机上对vip进行访问。

        技术分享


本文出自 “Angry丶Bird” 博客,请务必保留此出处http://angrybird.blog.51cto.com/10503706/1706587

LVS--DR模型介绍及实现

原文:http://angrybird.blog.51cto.com/10503706/1706587

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!