zoukankan      html  css  js  c++  java
  • 负载均衡集群之LVS的DR模型详解(Diretor Routing)

    LVS的默认模型:默认模型DR

    DR模型原理图-->

    在讲DR模型要点之前,需要了解网络的相关知识:
    1. 接收的报文拆解顺序:帧(MAC)-->数据包(IP)-->数据报文(port)
    2. ARP是广播,即只能在同一个局域网之内,不能穿过路由设备,作用是通告自己的MAC和请求目标IP的MAC
    DR模型要点-->
    • Real Server修改内核参数,忽略别人的ARP请求,同时禁止自己ARP通告,从而避免了外部的服务请求包转发到Real Server:
    1. echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    2. echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    3. echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    4. echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    arp_ignore=1的意思是,仅当ARP广播查询的IP是进口网卡IP的时候,才予以回应,因为VIP不是,所以不回应。
    arp_announce=2的意思是,对查询目标通告本地最合适的IP地址.那么何为最合适的IP地址.即:本地某个接口的IP地址和这个查询目标处于同一个子网内;如果这个条件不成立,则通告能接收到此ARP查询数据包的接口网卡MAC.
    那么我们可以得到如下结论:
    依据arp_ignore = 1,我们可以防止来自client的数据包被网关设备直接发往real server,因此,所有的client请求都到了DR上
    依据arp_announce = 2,我们可以让DR获取到real server的DIP所在网卡的MAC.因此,DR就可以将目的MAC修改为real server的MAC,从而将数据包转发给Real server
    • 在Real Server的lo上添加VIP,但是VIP不能添加到RIP网卡上,原因在于内核的ARP限制是在网卡上限制的
    • 在Real Server上先修改内核参数,再配置IP地址,原因在于如果先配置IP,ARP就直接通告出去了
    • RIP和DIP必须在一个网段,原因在于服务请求的报文,它的目标IP和源IP都不能更改,所以只能通过更改目标MAC地址来进行转发,不在一个网段,怎么知晓Real Server的MAC,不知道MAC,就无从修改网络服务报文的目标MAC,从而无法转发
    • Real Server的网关必须指向RIP同一网段的另一个路由设备的lan口,从而发包到互联网上




    [星空刺] |-->一颗星辰一闪即逝,支撑它的唯有方向和目的
  • 相关阅读:
    MacOS中Elasticsearch的安装「借助Homebrew」
    全文搜索Lucene之倒排索引
    MybatisCodeHelperNew-2.8.1-191-201插件使用
    支付宝支付-当面付之扫码支付「扫码支付」
    ConcurrentHashMap底层原理?
    支付宝手机h5网页支付不再提供「继续浏览器付款」按钮了吗
    小程序json字符串取值问题,怎么取出来的是undefined,eval函数不能用?
    @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})注解作用
    CAS无锁机制
    数组追加数组,小程序数组里面追加数组如何操作?
  • 原文地址:https://www.cnblogs.com/aaa103439/p/677beaa4871e77e72ecbd06c4c3be19d.html
Copyright © 2011-2022 走看看