sunren 发表于 2019-1-3 10:41:24

LVS集群的基础概念篇

  端口映射其实就是常说的NAT的一种,其功能就是把在公网的地址转翻译成私有地址(目标地址转换DNET)
  LVS集群中实现的三种IP负载均衡技术:
  VS/NAT:在已有的IP负载均衡技术中,主要有通过网络地址转换NAT(Network AddressTranslation)将一组服务器构成一个高性能的、高可用的虚拟服务器
  VS/TUN:通过IP隧道实现虚拟服务器。(Virtual Server via IP Tunneling)
  VS/DR:通过直接路由实现虚拟服务器的方法
http://xz159065974.blog.运维网.com/attachment/201404/22/8618592_1398175796wYXf.png
  LVSDR模型:
  CIP进入Director中目标IP(VIP)没改变,只是改变了目标IP 的mac。
  当响应返回时,源IP是VIP,目标IP是CIP。
  都处于同一物理网络,不要跨越路由器
  拒绝realserver上VIP对前端路由上的VIP的arp请求:
http://xz159065974.blog.运维网.com/attachment/201404/22/8618592_1398175809qly1.png
  在LVS DR模型中:
  Realserver中有eth0和lo接口,lo接口上配置的是VIP地址,要设置来自 director向后端realserver转发请求时,通过lo接口接进来,它还要从lo出去,lo又没办法出去,所以lo就将响应通过eth0转发出去,能通过eth0转发出去的条件是,eth0(DIP)必须指向一个网关,这个网关可以连向互联网。Eth0必须把网关指向能够到达CIP的网关。
  CIP -- VIP --- DIP --- RS(lo -->eth0)--router --CIP
  LVS-DR模型:
  Director两个地址:VIP, DIP
  RS有两个地址:VIP, RIP
  禁止RS响应对VIP的ARP广播请求:
  1、在前端路由上实现静态MAC地址VIP的绑定;
  前提:得有路由器的配置权限;
  缺点:Directory故障转时,无法更新此绑定;
  2、arptables
  前提:在各RS在安装arptables程序,并编写arptables规则
  缺点:依赖于独特功能的应用程序
  3、修改Linux内核参数
  前提:RS必须是Linux;
  缺点:适用性差;
  两个参数:
  arp_announce:定义通告模式
  arp_ignore:定义收到arp请求的时响应模式
  配置专用路由,以使得响应报文首先通过vip所配置的lo上的别名接口
  Linux的工作特性:IP地址是属于主机,而非某特定网卡;
  LVS-DR配置架构根据其VIP与RIP是否在同一样网络上有两种模型:
  在Directory和RS上配置VIP,要使用如下格式:
  # ifconfig ALIAS VIP netmask 255.255.255.255 broadcast VIP up
  # route add -host VIP dev ALIAS
  LVS-DR的配置:
  Director: 最好打开路由转发
  # iptables -t filter -F
  # ifconfig eth0:0 VIPup   不加broadcast和netmask
  # route add -host VIP dev eth0:0
  RSs:
  # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
  # ifconfig lo:0 VIP netmask 255.255.255.255 broadcast VIP up
  # route add -host VIP dev lo:0
  Director:
  # ipvsadm -A -t IP:PORT -s SCHEDULER(调度方法)   定义集群服务
  # ipvsadm -a -t IP:PORT -r RS1 -g(lvs类型) -w WEIGHThttp://xz159065974.blog.运维网.com/attachment/201404/22/8618592_1398175815zDCf.png
  /proc/sys/net/ipv4/conf/etho
  proc/sys/net/ipv4/conf/all
  先配置参数,再去配置IP地址。
  arp_announce :arp主动通告(只当有arp请求时,主机主动的通告)
  arp_announce=0(默认)B网卡上的所以网卡地址都去通过
  arp_announce=1 尽量只让B上和A在同一物理网络的网卡去通告
  arp_announce=2 只让B上和A在同一物理网络的网卡去通告(假设A为172.16网络, 那就只让m去向A通告)
  arp_ignore :arp 响应
  arp_ignore=0 只要主机上有地址,就去响应arp请求
  arp_ignore=1 对方请求的本地IP地址,并且配置在响应报文的接口上(A去请求m,   只有m刚好在与它连接的端口上,才响应)
  arp_ignore=2 同上,跟请求的一方必须在一个子网内
  arp_ignore=3 同上,并且某一网卡的作用域是本地(localhost)的话,不予响应
  arp_ignore=8 同上,并且全部的请求都不响应
http://xz159065974.blog.运维网.com/attachment/201404/22/8618592_1398175818V0RL.png



页: [1]
查看完整版本: LVS集群的基础概念篇