Я пытаюсь найти способ получить реальный IP-адрес (а) для доменного имени. Я работаю над маршрутизатором, формирующим трафик с использованием iptables и tc. Затем мне нужно настроить 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-сервер, или нет.
Можно ли выполнить безопасный поиск DNS с помощью хозяин команда тоже?
Единственное, в чем я хочу быть уверенным, это то, что для данного домена mydomain.com поиск DNS вернет все IP-адреса (мне просто нужна запись A или AAAA) в актуальном состоянии.
Я все еще немного смущен всеми механизмами DNS, поэтому любые комментарии / замечания / советы, конечно, приветствуются.
С практической точки зрения маловероятно, что результаты, полученные от dig
будут сфальсифицированы. Однако если вам нужна какая-то абсолютная гарантия, вам не повезло - без чего-то вроде DNSSEC спуфинг вполне возможен.
Пока DNSSEC не используется широко, лучший способ защиты от подмены DNS - использование «рандомизации исходного порта». Это особенно важно, поскольку "Каминский баг DNS".
Вы должны убедиться, что и версия DIG, которую вы используете, а также рекурсивный DNS-сервер, который вы запрашиваете, реализовали «рандомизацию исходного порта».
Теоретически можно подделать даже "рандомизацию исходного порта", но это займет ДОЛГОЕ время и БОЛЬШОЙ сетевой трафик.
Итак, если вы выполните команду dig + dnssec и найдите 'ad' в поле флагов, вы знаете, что это не было подделано ... но поскольку dnssec не включен для очень многих зон, это вам ничего не скажет в большинстве случаев.