Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

选型指南:Cdn系统中dns的设计与研发

772 views

Published on

本次分享会围绕CDN与DNS而展开,主要内容包括介绍CDN与DNS业务的特征以及关于其区别的一些误区,评估各种业务场景所需要的CDN与DNS的指标水平;对网络I/O模型和数据存储等关键选型点进行形象的对比分析,以作为预定指标的技术选型参考;分析CDN与DNS如何表达流量调度,并针对关键细节点进行延展探讨。本次演讲内容为近期迅达云调研开发以及与同行交流时进行的梳理汇总,均为设计开发实践中的经验之谈。如果希望了解更多,请访问:www.speedycloud.cn ,或直接发邮件联系:social@speedycloud.cn

Published in: Technology
  • Be the first to comment

选型指南:Cdn系统中dns的设计与研发

  1. 1. 选型指南 CDN系统中的DNS设计与开发
  2. 2. 目录  智能DNS解析  域名解析过程  性能要求  智能DNS与CDN流量调度的关系
  3. 3. 智能DNS解析  业务形式  CDN与DNS支持协议标准  权威DNS通信特点  系统消耗特征
  4. 4. 业务形式
  5. 5. CDN与DNS支持协议标准  rfc 1035 : 基础  rfc 2671 : EDNS0  rfc 3596 : AAAA  ECS支持: draft-vandergaast-edns-client-subnet-04
  6. 6. 权威DNS通信特点  典型报文特征  UDP为主  单包请求应答  小数据包  五元组不重复  业务特征  延迟敏感  分布式部署
  7. 7. 系统消耗特征  网络I/O密集型  小包高频  一次性网络I/O  CPU密集型  小包高频  一次性网络I/O  域名为字串查询和处理为主。  额外进行CDN策略计算
  8. 8. 域名解析过程  终端与Local DNS交互特征  Local DNS与 CDN DNS交互特征  Local DNS与 DNS集群的交互特征
  9. 9. 终端与LocalDNS交互特征  大部分终端使用是当地 Local DNS 本地终端用户群 Local DNS的终端用户群
  10. 10. Local DNS与智能DNS交互特征  Local DNS的用户规模差异极为悬殊  从CDN DNS视角  Local DNS的cache稀释了热点  流量调度视角  每次DNS访问涵盖用户群大小不一 CDN DNS LDNS用户群
  11. 11. LocalDNS与DNS集群的交互特征  Local DNS择优:解析时延敏感  高概率选择近NS(RTT短)  低概率选择远NS(RTT长)  流量调度视角  每个NS获得的访问不对等
  12. 12. 集群择优实例 解析延迟 IP-1 IP-5 IP-2 0 10 20 30 40 50 DNS设备 解析延迟ms DNS 解析序列
  13. 13. 高延迟情形下惩罚实例 502502 解析延迟 IP-3 IP-1 IP-4 IP-5 IP-6 IP-2 0 50 100 150 200 500 510 520 530 540 550 560 570 580 590 600 610 620 630 640 650 660 670 680 690 700 DNS设备 解析延迟ms DNS 解析序列
  14. 14. 性能要求  高品质的DNS软件的性能特征  评估性能设计指标  性能测试  网络I/O选型  新近出现的DNS数据存储
  15. 15. 高品质的DNS软件的性能  与ICMP echo服务(ping)特征相仿
  16. 16. 性能指标评估 性能量级 C40M - 40Gb C10M - 10Gb C1M - 1Gb C500K-C100 - 100Mb C10K - 10Mb C1K - 1Mb C100K 域名解析量 DDoS 小型DDoS 小型DDoS 大型网站峰值解析 活跃的网站 单机性能 Knot、NSD、BIND、PowerDNS BIND+DLZ+NOSQL
  17. 17. 热点稀释对性能影响  热度稀释原因  上游Local DNS是cache型服务,有效期内不会再次访问  NS集群分散了访问加大了访问周期  热度稀释效应  线上性能比测试性能低一大截  软硬件各级cache miss率偏高,  云环境下,因为自身数据活跃性的劣势,软硬件各级cache miss率偏高。  需要注意  评估中需要额外考虑,留出足够富余  对于存储和算法等的选型中,随机访问的性能稳定性需要额外考量  回放或clone在线流量进行DNS测试。
  18. 18. 性能测试  queryperf  DNSPerf  tcpreplay 回放  tcpcopy  性能测试仪器
  19. 19. 性能评价误区  CDN DNS的并发性能是多少?  作为权威DNS,业务特点是迅速完成一次性的应答。  对于CPU密集业务,堆积并发易失控,越低越好。  QPS是评价CDN DNS性能的基本指标
  20. 20.  使用queryperf、 DNSPerf评价在线CDN DNS在线性能?  CDN DNS的Local DNS变化维度很难覆盖到  五元组固定,不能正确体现出底层消耗  queryperf、 DNSPerf配合被测DNS设备的应答节奏进行固定强度压力测试  互联网访问节奏通常服从泊松分布,但会波动。  但也DNS存在人为相关性的的访问加剧波动。  如周期性探测,周期性的网页爬取。
  21. 21. 网络I/O选型 性能量级 Q40M - 40Gb Q10M - 10Gb Q1M - 1Gb Q100K - 100Mb Q10K - 10Mb Q1K - 1Mb 网络I/O DPDK PF_RING,Netmap BPS,netfilter Socket
  22. 22. 新近出现的DNS数据存储  Open LDAP LMDB  Lightning Memory-Mapped Database  PowerDNS + LMDB  400kqps  Knot DNS  700kqps
  23. 23. 负载均衡选型  交接机/路由器 + 节点内的Anycast  如果条件允许首选方式  硬负载均衡  软负载均衡
  24. 24. 智能DNS与CDN流量调度  实例分析  影响DNS调度流量表达的因素  如何评价DNS流量调度效果  可采用调度算法
  25. 25. DNS调度优化实例对比
  26. 26. 影响智能DNS调度效果的因素  智能DNS不直接与终端交互  部分终端改变了自身的Local DNS  Local DNS Cache 影响调度生效和失效  Local DNS涵盖的用户群大小不一  Local DNS择优行为影响数据对等
  27. 27. DNS智能调度的准度与精度 0% 10% 20% 30% 40% 50% 60% 70% 精度差,准度高 实际调度效果 调度目标0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 准度差,精度高 实际调度效果 调度目标
  28. 28. 智能DNS的精度和准度特征的影响  精度特征  影响调度系统动态调节难度  影响设备带宽利用效果  准度特征  影响调度系统预测规划难度
  29. 29. DNS调度依据  DNS中的统计计数数据作为调度依据  不推荐直接使用  按照固有属性进行流量调度  Local DNS IP 地域属性  Local DNS IP 网络属性  按照无状态属性进行流量调度  Hash特征  随机
  30. 30. 常见调度表达方式  默认流量等分  按照比例  IP分类  静态的地域分类  动态的网络链路  ...
  31. 31. 流量调度常见形式特征 调度方法 准度 精度 地区切分 很差 好 默认等分 很好 很好 随机比例 准确 不稳定 按照Local DNS IP切分流量 差 好
  32. 32. 智能DNS与其他调度方式结合  智能DNS粗分,其他调度方式细分  Http 302  集群  设备限连接,限流。  节点内混用各取所长  高品质,小流量业务  高精度智能DNS调度  低要求,大流量业务  高准度智能DNS调度,跨节点调度  辅助设备限连接,限流。
  33. 33. 安全  软件缺陷  异构软件互备  基于开源DNS软件  功能裁剪  CDN涉及的是DNS软件最基础,最稳定部分  代码级砍掉无关功能分支  DDoS类流量性攻击  结合CDN带宽优势,设计超高性能非常规DNS软件  引入第三方DNS安全产品  注意引入安全产品对流量调度表达的影响  提高软件性能有助于降低第三方DNS安全产品的难度,降低负面风险
  34. 34. 高可用性  分布式部署  异构DNS软件  平台镜像
  35. 35. 异构DNS  一组DNS由两种DNS软件组成  DNS的全球13个根为BIND和NSD的混用  为什么要作异构DNS?  利用开发和来源不同DNS软件缺陷不一致性,保证高可用性  DNS是关键性系统,软件缺陷导致瘫痪是灾难性的  Local DNS的集群重试能产生蔓延效果,直到整组DNS设备全部瘫痪。  开发维护成本  DNS是相对简单,开发周期短  DNS是变化较少网络协议,CDN相关的部分变化更小  CDN相关功能  待功能稳定后,开发  开源DNS软件表达个性定制的CDN功能可能不充分,但是是非常不错后备系统
  36. 36. DNS平台克隆互备  应对平台级,平台外故障。  平台级域名故障  域名注册级故障  上级顶级域故障  安全威胁  分散风险  鸡蛋分散到过个篮子里  疏散  平台遭受故障或威胁时,转移客 户至克隆平台 user1.cnd1.cn user2.cnd1.cn user3.cnd1.cn user4.cnd1.cn user5.cnd1.cn user1.cnd2.com user2.cnd2.com user3.cnd2.com user4.cnd2.com user5.cnd2.com user1 user2 user3 user4 user5 CDN 平 台 1 CDN 平 台 2 客 户

×