LVS的DR工作模型解析

LVS的DR模式:Direct Routing直接路由模式
LVS的DR工作模型解析_第1张图片

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

你可能感兴趣的:(lvs)