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

37

Upload: speedycloud

Post on 11-Jan-2017

477 views

Category:

Technology


0 download

TRANSCRIPT

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

选型指南CDN 系统中的 DNS 设计与开发

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

目录 智能 DNS 解析 域名解析过程 性能要求 智能 DNS 与 CDN 流量调度的关系

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

智能 DNS 解析 业务形式 CDN 与 DNS 支持协议标准 权威 DNS 通信特点 系统消耗特征

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

业务形式

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

CDN 与 DNS 支持协议标准 rfc 1035 : 基础 rfc 2671 : EDNS0

rfc 3596 : AAAA

ECS 支持 : draft-vandergaast-edns-client-subnet-04

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

权威 DNS 通信特点 典型报文特征

UDP 为主 单包请求应答 小数据包 五元组不重复

业务特征 延迟敏感 分布式部署

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

系统消耗特征 网络 I/O 密集型

小包高频 一次性网络 I/O

CPU 密集型 小包高频 一次性网络 I/O 域名为字串查询和处理为主。 额外进行 CDN 策略计算

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

域名解析过程 终端与 Local DNS 交互特征 Local DNS 与 CDN DNS 交互特征 Local DNS 与 DNS 集群的交互特征

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

终端与 LocalDNS 交互特征 大部分终端使用是当地Local DNS

本地终端用户群

Local DNS 的终端用户群

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

Local DNS 与智能 DNS 交互特征 Local DNS 的用户规模差异极为悬殊 从 CDN DNS 视角

Local DNS 的 cache 稀释了热点 流量调度视角

每次 DNS 访问涵盖用户群大小不一

CDNDNS

LDNS 用户群

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

LocalDNS 与 DNS 集群的交互特征 Local DNS 择优:解析时延敏感

高概率选择近 NS ( RTT 短) 低概率选择远 NS ( RTT 长)

流量调度视角 每个 NS 获得的访问不对等

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

集群择优实例

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 1001031061091121151181211241270

5

10

15

20

25

30

35

40

45

50

解析延迟IP-2DNS 解析序列

解析延迟

ms

DNS

设备

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

高延迟情形下惩罚实例

502502

500 506 512 518 524 530 536 542 548 554 560 566 572 578 584 590 596 602 608 614 620 626 632 638 644 650 656 662 668 674 680 686 692 6980

20

40

60

80

100

120

140

160

180

200

解析延迟DNS 解析序列

解析延迟

ms

DNS

设备

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

性能要求 高品质的 DNS 软件的性能特征 评估性能设计指标 性能测试 网络 I/O 选型 新近出现的 DNS 数据存储

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

高品质的 DNS 软件的性能 与 ICMP echo 服务( ping )特征相仿

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

性能指标评估性能量级

C40M - 40Gb

C10M - 10Gb

C1M - 1Gb

C500K-C100 - 100Mb

C10K - 10Mb

C1K - 1Mb

C100K

域名解析量DDoS

小型 DDoS

小型 DDoS

大型网站峰值解析活跃的网站

单机性能

Knot 、 NSD 、 BIND 、 PowerDNS

BIND+DLZ+NOSQL

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

热点稀释对性能影响 热度稀释原因

上游 Local DNS 是 cache 型服务,有效期内不会再次访问 NS 集群分散了访问加大了访问周期

热度稀释效应 线上性能比测试性能低一大截

软硬件各级 cache miss 率偏高, 云环境下,因为自身数据活跃性的劣势,软硬件各级 cache miss 率偏高。

需要注意 评估中需要额外考虑,留出足够富余 对于存储和算法等的选型中,随机访问的性能稳定性需要额外考量 回放或 clone 在线流量进行 DNS 测试。

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

性能测试 queryperf

DNSPerf

tcpreplay 回放 tcpcopy

性能测试仪器

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

性能评价误区 CDN DNS 的并发性能是多少?

作为权威 DNS ,业务特点是迅速完成一次性的应答。 对于 CPU 密集业务,堆积并发易失控,越低越好。

QPS 是评价 CDN DNS 性能的基本指标

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

使用 queryperf 、 DNSPerf 评价在线 CDN DNS 在线性能? CDN DNS 的 Local DNS 变化维度很难覆盖到 五元组固定,不能正确体现出底层消耗 queryperf 、 DNSPerf配合被测 DNS 设备的应答节奏进行固定强度压力测试 互联网访问节奏通常服从泊松分布,但会波动。但也 DNS 存在人为相关性的的访问加剧波动。

如周期性探测,周期性的网页爬取。

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

网络 I/O 选型性能量级Q40M - 40Gb

Q10M - 10Gb

Q1M - 1Gb

Q100K - 100Mb

Q10K - 10Mb

Q1K - 1Mb

网络 I/O

DPDK

PF_RING,Netmap

BPS,netfilter

Socket

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

新近出现的 DNS 数据存储 Open LDAP LMDB

Lightning Memory-Mapped Database

PowerDNS + LMDB 400kqps

Knot DNS 700kqps

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

负载均衡选型 交接机 /路由器 + 节点内的 Anycast

如果条件允许首选方式 硬负载均衡 软负载均衡

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

智能 DNS 与 CDN 流量调度 实例分析 影响 DNS 调度流量表达的因素如何评价 DNS 流量调度效果可采用调度算法

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

DNS 调度优化实例对比

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

影响智能 DNS 调度效果的因素 智能 DNS 不直接与终端交互

部分终端改变了自身的 Local DNS Local DNS Cache 影响调度生效和失效 Local DNS 涵盖的用户群大小不一 Local DNS 择优行为影响数据对等

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

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%

准度差,精度高

实际调度效果 调度目标

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

智能 DNS 的精度和准度特征的影响精度特征

影响调度系统动态调节难度 影响设备带宽利用效果

准度特征 影响调度系统预测规划难度

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

DNS 调度依据 DNS 中的统计计数数据作为调度依据

不推荐直接使用按照固有属性进行流量调度

Local DNS IP 地域属性 Local DNS IP 网络属性

按照无状态属性进行流量调度 Hash 特征 随机

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

常见调度表达方式默认流量等分按照比例 IP 分类

静态的地域分类动态的网络链路 ...

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

流量调度常见形式特征调度方法 准度 精度地区切分 很差 好默认等分 很好 很好随机比例 准确 不稳定按照 Local DNS IP切分流量 差 好

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

智能 DNS 与其他调度方式结合 智能 DNS粗分,其他调度方式细分

Http 302 集群 设备限连接,限流。

节点内混用各取所长 高品质,小流量业务

高精度智能 DNS 调度 低要求,大流量业务

高准度智能 DNS 调度,跨节点调度辅助设备限连接,限流。

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

安全 软件缺陷

异构软件互备 基于开源 DNS 软件

功能裁剪 CDN涉及的是 DNS 软件最基础,最稳定部分 代码级砍掉无关功能分支

DDoS类流量性攻击 结合 CDN带宽优势,设计超高性能非常规 DNS 软件 引入第三方 DNS安全产品

注意引入安全产品对流量调度表达的影响 提高软件性能有助于降低第三方 DNS安全产品的难度,降低负面风险

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

高可用性 分布式部署 异构 DNS 软件平台镜像

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

异构 DNS

一组DNS由两种DNS软件组成 DNS的全球13个根为BIND和NSD的混用

为什么要作异构DNS? 利用开发和来源不同DNS软件缺陷不一致性,保证高可用性 DNS是关键性系统,软件缺陷导致瘫痪是灾难性的 Local DNS的集群重试能产生蔓延效果,直到整组DNS设备全部瘫痪。

开发维护成本 DNS是相对简单,开发周期短 DNS是变化较少网络协议,CDN相关的部分变化更小 CDN相关功能

待功能稳定后,开发 开源DNS软件表达个性定制的CDN功能可能不充分,但是是非常不错后备系统

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

DNS平台克隆互备 应对平台级,平台外故障。

平台级域名故障 域名注册级故障 上级顶级域故障 安全威胁

分散风险 鸡蛋分散到过个篮子里

疏散 平台遭受故障或威胁时,转移客户至克隆平台

user1.cnd1.cnuser2.cnd1.cnuser3.cnd1.cnuser4.cnd1.cnuser5.cnd1.cn

user1.cnd2.comuser2.cnd2.comuser3.cnd2.comuser4.cnd2.comuser5.cnd2.com

user1user2user3user4user5

CDN平台1

CDN平台2

客户