设为首页 收藏本站
查看: 1511|回复: 1

[经验分享] LVS--DR模型介绍及实现

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-27 08:37:55 | 显示全部楼层 |阅读模式
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地址。


调度详细过程:
    wKiom1YuSMPCwrzOAABdhF5YGts076.jpg    
    第一步:客户端发起请求报文,报文的源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服务的调度。
    wKiom1YuSUGyB-0sAAEkL1nvcZk844.jpg
配置过程:
    (1)对调度器(director)进行配置,同时在director上安装ipvsadm软件包。
        添加vip在director上。
1
[iyunv@7-1 ~]# ifconfig eno16777736:0 172.16.125.100/32 broadcast 172.16.125.100 up



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

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



    (2)后端RS的详细配置:
    首先修改内核参数,保证前段路由器将目标地址为vip的报文发送给director。在后端RS上都要进行设置。
1
2
3
4
# 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服务。

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



    (3)在调度器上进行ipvs规则的设置。
1
2
3
[iyunv@7-1 ~]# ipvsadm -A -t 172.16.125.100:80 -s rr
[iyunv@7-1 ~]# ipvsadm -a -t 172.16.125.100:80 -r 172.16.125.6 -g
[iyunv@7-1 ~]# ipvsadm -a -t 172.16.125.100:80 -r 172.16.125.7 -g



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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-131179-1-1.html 上篇帖子: keepalived实现lvs的高可用 下篇帖子: LVS--NAT模型介绍及模型实现 模型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表