主机命令按顺序运行时会返回两个不同的IP地址

这是一个有趣的问题:

~ $ host gitlab.myorg.com gitlab.myorg.com is an alias for aln7git01.myorg.com. aln7git01.myorg.com has address 172.30.9.197 ~ $ host gitlab.myorg.com gitlab.myorg.com has address 172.30.8.24 gitlab.myorg.com is an alias for aln7git01.myorg.com. 

我跑了这两个命令一个接一个的。

aln7git01.myorg.com的host命令行为也相同。 这里是dig aln7git01.myorg.com

 ~ $ dig A aln7git01.myorg.com ; <<>> DiG 9.8.3-P1 <<>> A aln7git01.myorg.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5438 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;aln7git01.myorg.com. IN A ;; ANSWER SECTION: aln7git01.myorg.com. 3596 IN A 172.30.8.24 ;; AUTHORITY SECTION: myorg.com. 129 IN NS mtd-ns1.myorg.com. myorg.com. 129 IN NS mtd-ns2.myorg.com. ;; ADDITIONAL SECTION: mtd-ns1.myorg.com. 86400 IN A 207.18.164.29 mtd-ns2.myorg.com. 86400 IN A 207.18.164.30 ;; Query time: 48 msec ;; SERVER: 64.102.6.247#53(64.102.6.247) ;; WHEN: Tue Jun 9 05:27:45 2015 ;; MSG SIZE rcvd: 148 ~ $ dig A aln7git01.mtd.myorg.com ; <<>> DiG 9.8.3-P1 <<>> A aln7git01.mtd.myorg.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61048 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION ;aln7git01.mtd.myorg.com. IN A ;; ANSWER SECTION: aln7git01.mtd.myorg.com. 2727 IN A 172.30.9.197 ;; AUTHORITY SECTION mtd.myorg.com. 86400 IN NS mtd-ns1.myorg.com. mtd.myorg.com. 86400 IN NS mtd-ns2.myorg.com. ;; ADDITIONAL SECTION: mtd-ns1.myorg.com. 86400 IN A 207.18.164.29 mtd-ns2.myorg.com. 86400 IN A 207.18.164.30 ;; Query time: 46 msec ;; SERVER: 64.102.6.247#53(64.102.6.247) ;; WHEN: Tue Jun 9 05:27:45 2015 ;; MSG SIZE rcvd: 148 

设置是这样的:

 1) A bind server with a zone file for myorg.com 2) Two A records with 172.30.8.24 for gitlab and aln7git01 3) Two name servers for myorg.com on two other hosts 

你的问题的一部分是在你的debugging方法。

您正在使用A命令行选项运行您的dig命令,该命令行选项仅请求A -records。 当你得到奇怪的结果时,你想使用无选项或any选项,所以你不要限制输出:

  dig any gitlab.myorg.com. 

我的假设是,这样做会显示你有两个DNSlogging,包括一个Gitlab.myorg.com的A CNAMElogging。

这将导致循环效应,一个请求获取Alogging和下一个CNAMElogging。 解决的办法是从您的区域中删除不正确的条目。