LVS的DR工作模型解析

2019-04-14 20:44发布

class="markdown_views prism-kimbie-light"> LVS的DR模式:Direct Routing直接路由模式
在这里插入图片描述

DR模式的工作过程

第一步:用户对一个网站进行数据请求时,在浏览器输入网站域名,请求会被发送到DNS服务器进行域名解析,DNS服务器将域名解析成IP地址发送给客户端。 第二步:客户端拿到IP后通过网络访问该IP会到达IP所在地址的路由器,路由器将请求转发到内网中的交换机(内网的所有节点都在交换机上连接),由于此时请求的目标IP和目标mac都是DR的,所以该请求只能被DR接收, 第三步:DR接收到请求之后会重新进项封装
  1. 通过预先定义好的算法找出一个RS的mac地址
  2. 将请求报文的目标mac改为找出的那个RS的mac
  3. 最后将这个修改了mac地址的请求报文发送出去
第四步:因为这是内部网络,所有节点都会收到这个请求数据包
  1. 后端的RS服务器判断收到的数据中的目标IP和目标mac是否与自己的相同,相同的会处理该数据包,不相同的自动丢弃
  2. 处理完成后,RS服务器会将结果通过交换机、路由器直接发送给客户端,不在经过DR
补充:
  1. 为了让DR RS可以接受请求,就必须要使DR和所有的RS服务器有相同的IP,这个IP就是VIP(VirtualIP),为了防止引起IP冲突我们需要将VIP绑定在本地的网络回环接口之上(lo)
  2. 还有一个问题后端多个节点都有一个相同的vip,那么客户端在请求获取mac地址的时候,就不可避免的出现arp争抢。
    解决方法:在RS服务器上设置arp抑制,即不让RS服务器对arp请求做应答,这样就保证了DR和RS服务器有相同VIP的情况下客户端能准确获取DR的mac地址。
  3. ARP请求:获取ip所对应的mac地址
DR模式总结:
  1. 调度器(DR)仅仅修改的目标的mac地址
  2. 响应报文是直接发送给客户端,不在经过调度器
  3. RS和DR必须在容一个局域网中
  4. DR无法修改请求报文中的目标端口,所以RS的端口必须和DR端口一致
  5. DR和所有RS服务器都需要配置相同的VIP
  6. 所有的RS服务器都需要配置ARP抑制
  7. RS服务器必须可以和外网通信
  8. DR模式效率相对高,配置复杂,所以如果访问量小(pv<2000),建议用更简单的nginx haproxy