我正在尝试找到一种方法来获取域名的真实 IP 地址。我正在使用路由器进行流量整形iptables和碳.然后我需要设置iptables使用 IP 地址标记来自特定域的数据包的规则。
我第一次使用挖命令,查询域的名称服务器,如下所示:
nbNameServer=`$dig NS $url +short | wc -l`
# If there is NS for the given domain
if [ $nbNameServer -gt 0 ]; then
for i in $($dig NS $url +short $TOdig); do
ipDom=`$dig @$i $url +short $TOdig`
# Ip found on the $i name server, no need to consult the others
if [ -n "$ipDom" ]; then
failed=`echo -e "$ipDom" | egrep "no servers could be reached"`
if [ ! -n "$failed" ]; then
break
else
ipDom=""
fi
fi
done
fi
如果 /etc/resolv.conf 文件中的路由器有 8.8.8.8 google DNS,那么是否有某个 IP 或域名不是最新的,或者像我一样被欺骗了?
我实际上不知道路由器是否会处于使用本地 DNS 服务器的环境中。
是否可以使用主持人命令呢?
我唯一想确定的是,对于给定的域 mydomain.com,DNS 查找将返回所有最新的 IP 地址(我只需要 A 或 AAAA 记录)。
我对所有 DNS 机制仍然有点困惑,因此当然欢迎任何评论/意见/建议。
答案1
从实际情况来看,您获得的结果dig
被伪造的可能性很小。但是,如果您想要某种绝对的保证,那么您就没那么幸运了——如果没有 DNSSEC 之类的东西,欺骗是完全有可能的。
答案2
只要 DNSSEC 尚未被广泛使用,防止 DNS 欺骗的最佳方法就是使用“源端口随机化”。这一点尤其重要,因为“Kaminsky DNS 漏洞”。
您需要确保您使用的 DIG 版本以及您查询的递归 DNS 服务器都已实现“源端口随机化”。
理论上,仍然可以欺骗甚至是“源端口随机化”,但这会花费很长时间并且会产生大量的网络流量。
答案3
因此,如果您执行 dig +dnssec 并在标志字段中查找“ad”,您就会知道它没有被欺骗......但由于很多区域都没有启用 dnssec,所以在大多数情况下,这不会告诉您任何信息。