我们对子域名的DNS传播行为有疑问。
这是我们想要实现的方案:
User1在我们的网站" company.com"注册。子域" user1.company.com"是自动创建的,不是作为" company.com"的附加域,而是作为WHM中的独立帐户。
因此,正在创建一个自己的区域&正在设置A记录(与company.com相同的IP) NS记录也设置为" ns1.domain2.com + ns2.domain2.com",我们自己的名称服务器 (没有集群,2种不同的IP,BIND方法,它们是通过与company.com和子域相同的WHM安装提供的) Domain2.com由我们的注册商GoDaddy处理,名称服务器ns1 + ns2也在那里定义。
我们的问题是,在创建域" user1.company.com"之后不能立即访问(与附加域不同)。
当我们nslookup例如新域" user1.company.com"使用来自我们ISP的名称服务器,在它创建之后,我们得到了#34;不存在的域"。然后,在1-15分钟后,根据我们尝试的DNS,nslookup会回答正确的IP地址。来自谷歌的DNS(8.8.8.8)例如立即!使用正确的IP地址回答。
当用户尝试访问他的子域名" user1.company.com"时会发生什么?我们的名称服务器是否已联系以解析子域,还是以某种方式在全球范围内的DNS服务器上传播的子域?但是为什么谷歌的DNS立即回答,传播速度不会那么快!
任何可能存在问题的想法以及如何在创建后立即访问子域帐户,无论用户使用哪个DNS?
非常感谢
Marc
答案 0 :(得分:2)
我对DNS的理解是要解析网址,过程如下:
通常当我们联系DNS服务器时,它不是第一次收到特定网站的请求,他们会保留先前请求的记录,直到它们过期。到期时间(TTL - 以秒为单位的值)取决于您的设置。如果您更改了记录,则可能存在大量具有这些缓存记录的DNS服务器。一旦这些记录到期或服务器第一次收到它不知道的URL请求,DNS服务器就会进行“递归查找”以获取新数据。
以下是a.contoso.com.
的递归查找(注意通常隐藏的结尾处的点)
该过程开始向后工作,从URL末尾的隐藏点开始:
1 - 联系根名称服务器(点服务器),将其IP地址预先加载到DNS服务器上,这些IP对于每个服务器都是相同的并且不会更改,它们为.COM DNS提供IP地址服务器(或您使用的任何TLD,如.net)
2 - 然后在contoso.com中查询.COM DNS以查找“contoso”。 (如果您更改了名称服务器,这可能就是您的问题所在。)
3 - 然后在a.contoso.com中查询contoso.com的DNS(您的名称服务器)以获取“a”
ad infinitum(b.a.contoso.com,2.ww.c.b.a.contoso.com ......)
这些递归查找替换陈旧记录的过程称为传播。
我会假设您没有收到请求发送到您的名称服务器,因为在切换期间传播,您的服务器没有正确地将A记录复制到名称服务器
域传播只是转移域时的问题,而不是创建新域时,因为您不必处理过期记录,因为这些记录从未存在过。请求将直接发送到源。