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

[经验分享] dns lvs webserver

[复制链接]

尚未签到

发表于 2015-11-20 13:54:05 | 显示全部楼层 |阅读模式
  一:dns

  说到dns,大家可能比较熟悉,都知道是域名解析服务,通俗的讲就是把域名(www.baidu.com)对应到服务器上,这些服务器提供一个或多个ip地址的映射给浏览器等客户端。如果是多个ip地址呢,就相当于在dns层面上做了负载均衡。
  首先谈谈A记录:
  A记录实现了DNS的基本功能,就是做域名到ip的映射,(dns系统有linux提供的bind,windows提供的dns)
  常用的负载均衡策略是RR
  CNAME,别名,可以方便管理(比如两个域名指向了同一个ip,那么到时候只更改CNAME对应的ip即可),也可以做重定向方案(新域名指向旧域名,旧域名同时支持工作)
  DNS,因为是在网络层,所以不能进行端口的转换,只能域名映射ip
  如:
  dig www.baidu.com      

; <<>> DiG 9.2.4 <<>> www.baidu.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48633
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          1200    IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       203     IN      A       119.75.218.77
www.a.shifen.com.       203     IN      A       119.75.217.56
  

  

  dns做负载均衡没有问题,一是dns记录可以被用户的浏览器或者互联网接入服务商的DNS服务器缓存,rr策略虽然性能不强,但是因为缓存原因不可能造成瓶颈。
  同时dns系统已经支持了智能的地址解析,提供给不同城市用户距离最近的域名对应的服务器ip。
  缺点:因为dns信息会缓存在各个接入服务商那,当有一台后端服务器挂掉的话,因为TTL不可能设置为0,会造成缓存,还是有用户会访问到这台服务器,造成用户体验极差

  

  二:lvs(linux virtual system)
  负载均衡可以发生在七层,也可以发生在四层以下,如数据链路层,网络层,传输层都可以实现,但是需要linux内核完成
  四层效率高,因为在网络数据包需要在内核缓冲区进入进程用户地址之前,就尽快转发到实际服务器上。
  linux内置的netfilter模块可以修改IP数据包,其对应的管理工具为iptables。
  IPVS也是一个类&#20284;于netfilter/iptables的lunux内核模块,但是他更专注于实现IP负载均衡,除了实现nat还实现了dr和ip隧道

  lvs有三种方式:
  1、NAT(网络地址转换):发生在网络层和传输层(ip地址和端口号),首先要系统支持ip_forward,其次可以使用工具IPVS设置转换:
  ipvsadm -a -t 119.75.218.77:80 -s rr                           

  ipvsadm -a -t 119.75.218.77:80 -r 10.0.1.2:8080 -m
  ipvsadm -a -t 119.75.218.77:80 -r 10.0.1.3:8080 -m
  NAT模式需要服务器有两块网卡,分别连接外部网络和内部网络
  数据包在服务器上更改目的地址,目的端口,还有更改返回数据的源地址和源端口,所以数据必须从这台服务器上来回,这样可能造成瓶颈。因为回来得数据包会比较大
  2、DR(直接路由方式):直接路由方式更改的是目标MAC地址,所以工作在二层数据链路层
  DR实现使用的是ip别名,负载均衡调度器和实际的服务器都拥有相同的ip别名(每个网卡都可以设置不超过256个IP别名),同时连接到WAN交换机,这样当数据包从交换机进入LAN后,那么需要询问谁拥有目标ip的MAC地址(ARP地址转换协议),正常情况下,负载均衡服务器和实际服务器都会返回自己机器的MAC地址,这样就必须先将实际服务器的arp广播禁止。
  这样只有负载均衡服务器接收到数据包,然后分发给接下来的实际服务器。因为只更改了mac地址,而ip地址未变,这样返回的数据包就可以不经过负载均衡调度器了,带宽瓶颈就解决了。
  

  3、ip隧道:ip隧道和DR的工作原理相&#20284;,但是需要每个服务器必须支持ip隧道协议,才能实现。
  

  三:web服务器,经过上面的两部,就到了web服务器了,而这个web服务器就是上面提到的实际的服务器。
  
  

  

  

  

运维网声明 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-141533-1-1.html 上篇帖子: 负载均衡(lvs+keepalive 比较详细的安装配置文档) 下篇帖子: lvs负载均衡基本搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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