智能DNS

来源:互联网 发布:资产重组 知乎 编辑:程序博客网 时间:2024/06/11 18:52

要点:

  • local dns (local name server)是客户端网络设置的一部分,要么是手工配置,要么从DHCP得到。一般local dns 在从网络上靠近客户端。
  • 授权DNS服务器对于管理一个域名的重要信息,同时一个域名可以分为多个Zone,个Zone可以有各自的授权DNS,称为Zone of Authority(ZOA). 比如a.foo.com b.foo.com 可以有各自的ZOA
  • 可以有一个或者多个授权DNS服务器,但是只有一个 primary authoritative DNS 负责分发域名name space的信息。

image

上面的流程可以表现为:

1. 客户端向local dns查询 www.foo.com

2.3. local dns 向 root name servers  查询 .com 的name server.

4.5. local dns 向 .com 的 name server 查询 foo.com 的授权dns

6.7. local dns 向 foo.com 的授权dns得到 www.foo.com 的ip list

8.    local dns 将 www.foo.com 的一个ip返回给客户端

9.    客户端访问 ip 指向的服务器

 

Local DNS Caching

DNS 信息有一个TTL消息, local dns 可以cache dns reply ,过期时间就是这个ttl时间。

假如dns cache信息过期,local dns 向授权dns服务器重新请求。

假如local dns 收到的dns查询响应有多个ip 地址,对于客户端的查询,将采用round-robin策略

客户端也可以cache dns 响应,但是部分客户端忽略ttl信息而采用自己的固定dns过期时间,比如微软的IE

 

Using Standard DNS for load balancing

DNS可以做load banlancing服务,对于一个域名可以配置多个ip地址,这些ip指向load balancer的VIP或者只是一台真实服务器。但是DNS无法知道某个ip是否能否服务或者负载情况如何(这个不是绝对的,有产品可以部分实现),毕竟 DNS 并不是为 GLSB 设计的。


DNS−Based GSLB

需要load balancer在DNS framework框架内,为特定客户端选择最合适的server的ip地址。这里分为两个问题:

  1. balancer如何纳入dns框架内, 返回最合适的ip地址给客户端?
  2. load balancer如何知道谁是最好的site?