DNS高可用设计——软件高可用2020-03-28

2020-03-28 21:11 DNS loodns

  DNS是收集的根本办事,收集上的各类使用对DNS的依赖性很高。DNS的不变,间接决定了上层使用办事的不变。那若何保障DNS办事的高可用呢?

  高可用(Highavailability):指系统无外缀地施行其功能的能力,一般用下面的公式来权衡:

  MTBF: Mean time between Failures,平均多久出一次毛病;MTTR: Mean time to recover,出毛病后的恢复办事的时间。实现dns高可用,次要靠降低出毛病、毛病后快速恢复。下图是dns办事架构简图,分为管控层息争析层,后面别离描述那两层若何实现高可用。

  管控层最次要的两个功能:DNS数据的持久化,DNS数据下发到adns(dnsserver)。

  管控层领受用户配放的域名数据后,持久化存储正在数据库。操纵了数据库团队的X-Cluster产物,实现数据的高可用,消弭了运维误操做等缘由导致的数据丢掉:

  正在数据库Leader毛病场景下,数据库会从动发生切换,使用连入肆意节点获取当前Leader位放后恢复使用营业。

  2 数据下发管控取adns之间,次要通过不变的内部收集来下发数据,数据传输犯错的概率低;管控向adns发送数据时,无数据弥补机制,对取下发掉败,做多次沉试,若是沉试都无法成功,报警转人工处置。

  解析层由adns集群构成,摆设正在全球的上百个idc机房,通过anycast发布大量的办事ip。用户向那些ip发送dns请求,获取解析成果。

  从机到收集:每台adns通过双网口,双上联到两个分歧的互换机,避免网口单点、互换机的单点毛病;集群内:adns分成多个分歧集群,每个集群内多台adns,那些机械向互换机发布不异的IP,通过ECMP分发流量。同集群内DNS都是热备的关系,当某台adns出问题,互换机把流量分发到其它办事器。集群间:多个分歧的集群,发布不异的ip,那些集群之间,通过收集的anycast手艺彼此热备,某个集群不成用,流量被转到其它可用的集群。NS IP:果为特殊缘由(好比运营商黑洞等),个体IP全网都无法拜候。我们对每个NS配放多个IP,LocalDNS会基于SRTT算法,选择出最短的rt的IP,将请求转发过去,从而避开无问题的IP。2 系统容量监控系统及时监控各个办事器、集群的qps容量;adns集群,摆设上具备程度扩容能力,容量能达到机房的带宽。

  3 若何包管解析准确摆设数据对账系统,对adns之间做数据对比,adns取管控的DB做数据对比;摆设拨测系统,对zone的soa做拨测,对特定域名的rr记实做拨测;通过上面的两类手段,及时发觉数据非常并做出响当,避免非常或者缩短非常的处置时间。一般通过戴除无问题的办事器的路由,几秒钟即可生效。

  4 平安防护做为面向公网的办事,收集攻击无法避免,会影响系统可用性。我们采用了下面两类安防手段,提高dns的可用性。1) 收集攻击防护常见的dns攻击,是4层的ddos攻击。对于超大流量的收集攻击,操纵机房摆设的aliguard,做收集防护;为了削减ddos防护系统对dns的影响,我们设放了很高的防护阈值,对当阈值之下的ddos攻击,通过我们高机能的dnsserver(adns)来承载攻击。2) 使用平安为了当对DNS投毒、棍骗等场景,我们的dnsserver,收撑dnssec;为了当对DNS劫持,我们收撑无毗连的和谈,好比tcpdnshttpdnstlsdoh;用户能够按照本人的需求,选择合适的平安方案。

发表评论:

最近发表