设为首页 收藏本站
查看: 1199|回复: 0

[经验分享] Centos 下面 配置LVS的DR模式

[复制链接]

尚未签到

发表于 2019-1-5 14:23:41 | 显示全部楼层 |阅读模式
  1. Lvs DR 模型原理图

  (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
  (b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
  (c) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址
  (d) 由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。
  (e) RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP
  (f) 响应报文最终送达至客户端
  2. LVS-DR模型的特性

  •   特点1:保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS
  •   RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问
  •   RS跟Director Server必须在同一个物理网络中
  •   所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
  •   不支持地址转换,也不支持端口映射
  •   RS可以是大多数常见的操作系统
  •   RS的网关绝不允许指向DIP(因为我们不允许他经过director)
  •   RS上的lo接口配置VIP的IP地址
  •   缺陷:RS和DS必须在同一机房中
  3. 特点1的解决方案:

  •   在前端路由器做静态地址路由绑定,将对于VIP的地址仅路由到Director Server
  •   存在问题:用户未必有路由操作权限,因为有可能是运营商提供的,所以这个方法未必实用
  •   arptables:在arp的层次上实现在ARP解析时做防火墙规则,过滤RS响应ARP请求。这是由iptables提供的
  •   修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。
  4.部署实例
  实验环境

  •   Director节点:  (eth1 192.168.10.31  vip eth1:0 192.168.10.70)
  •   Real server1: (eth1 192.168.10.32 vip lo:0 192.168.10.70)
  •   Real server2: (eth1 192.168.10.34 vip lo:0 192.168.10.70)
  配置 Director 服务器
  查看当前服务器ip 地址
  ifconfig eth1
  eth1      Link encap:Ethernet  HWaddr 00:0C:29:A5:E5:14
  inet addr:192.168.10.31  Bcast:192.168.10.255  Mask:255.255.255.0
  inet6 addr: fe80::20c:29ff:fea5:e514/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  RX packets:121 errors:0 dropped:0 overruns:0 frame:0
  TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:12438 (12.1 KiB)  TX bytes:12833 (12.5 KiB)
  配置 vip 地址
  cp ifcfg-eth1 ifcfg-eth1:0
  cat ifcfg-eth1
  DEVICE=eth1
  HWADDR=00:0C:29:A5:E5:14
  TYPE=Ethernet
  #UUID=64dc9596-9cf7-4e94-b1d1-690109a87926
  ONBOOT=yes
  NM_CONTROLLED=yes
  BOOTPROTO=static
  IPADDR=192.168.10.31
  GATEWAY=192.168.10.1
  NETMASK=255.255.255.0
  cat  ifcfg-eth1:0
  DEVICE=eth1:0
  NAME="eth1:0"
  HWADDR=00:0C:29:A5:E5:14
  TYPE=Ethernet
  ONBOOT=yes
  NM_CONTROLLED=yes
  BOOTPROTO=static
  IPADDR=192.168.10.70
  GATEWAY=192.168.10.1
  NETMASK=255.255.255.0
  重启网卡,查看配置是否生效
  service network restart

  打开路由转发
  echo 1 > /proc/sys/net/ipv4/ip_forward
  安装ipvsadm
  yum install ipvsadm -y
  配置规则 ipvs 的规则 (这里设置为轮训模式)
  ipvsadm -A -t192.168.10.70:80 -s rr
  ipvsadm -a -t 192.168.10.70:80 -r 192.168.10.32  -g
  ipvsadm -a -t 192.168.10.70:80 -r 192.168.10.34  -g
  
  配置 Real server1
  
  cp ifcfg-lo ifcfg-lo:1
  
  cat ifcfg-lo:1
  DEVICE=lo:1
  IPADDR=192.168.10.70
  NETMASK=255.255.255.255
  NETWORK=127.0.0.0
  # If you're having problems with gated making 127.0.0.0/8 a martian,
  # you can change this to something else (255.255.255.255, for example)
  BROADCAST=127.255.255.255
  ONBOOT=yes
  NAME=loopback
  
  关闭arp 转发
  echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore  临时生效
  echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce 临时生效
  arp_ignore 为:1 # - 只回答目标 IP 地址是访问本网络接口(eth0)的 ARP 查询请求。
  在设置参数的时候将 arp_ignore 设置为 1,意味着当别人的 arp 请求过来的时候,如果接收的网卡设备
  上面没有这个 ip,就不做出响应,默认是 0,只要这台机器上面任何一个网卡设备上面有这个 ip,就响应
  arp 请求,并发送 mac 地址。
  arp_announce (宣告) 为 2
  2 - 对查询目标使用最适当的本地地址。例如,如果在 eth0 接口上接受到了一个 VIP 的 arp 请求包。内
  核判断这个 VIP 地址是不是 eth0 接口上的 IP 一样。如果一样,则回复这个包。如果不一样,就丢弃不回
  应。
  永久生效
  vim /etc/sysctl.conf #最后添加
  net.ipv4.conf.eth0.arp_ignore = 1
  net.ipv4.conf.eth0.arp_announce = 2
  
  sysctl  -p
  
  安装http 配置测试页面
  
  yum install httpd -y
  
  echo "192.168.10.32  realserver 1" > /var/www/html/index.html
  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  
  
  配置 Real server2
  
  cp ifcfg-lo ifcfg-lo:1
  
  cat ifcfg-lo:1
  DEVICE=lo:1
  IPADDR=192.168.10.70
  NETMASK=255.255.255.255
  NETWORK=127.0.0.0
  # If you're having problems with gated making 127.0.0.0/8 a martian,
  # you can change this to something else (255.255.255.255, for example)
  BROADCAST=127.255.255.255
  ONBOOT=yes
  NAME=loopback
  
  关闭arp 转发
  echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore  临时生效
  echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce 临时生效
  永久生效
  vim /etc/sysctl.conf #最后添加
  net.ipv4.conf.eth0.arp_ignore = 1
  net.ipv4.conf.eth0.arp_announce = 2
  
  sysctl  -p
  
  安装http 配置测试页面
  
  yum install httpd -y
  
  echo "192.168.10.34 realserver 2 " > /var/www/html/index.html
  
  测试 real-server1  
  
  http://192.168.10.32
  
  
  
  测试 real-server2
  
  http://192.168.10.34
  
  
  
  
  使用vip 测试




运维网声明 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-659723-1-1.html 上篇帖子: lvs+keepalive 集群安装部署文档 下篇帖子: LVS集群中的IP负载均衡技术
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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