2012-06-13 7 views
4

Я работаю над переключением доменов имен моего домена на новую службу DNS. Каков наилучший инструмент для сравнения новых настроек с существующей настройкой DNS.Сравнение DNS на двух разных серверах имен

Я попытался использовать dig с и без @nameserver, чтобы я мог убедиться, что записи DNS совпадают между старым и новым провайдером.

Пока ничего не удалось.

Любые идеи?

+0

Что вы подразумеваете под "Без успеха до сих пор"? 'dig' - это полезный инструмент, который вы найдете для этой работы. Что именно не сработало? – Celada

ответ

13

Я отвечаю, что старый вопрос, я столкнулся с этой проблемой, и я решил это так:

Для одного домена:

diff <(sort -u <(dig +nottlid +noall +answer @ns.myfirstserver.com example.com ANY)) <(sort -u <(dig +nottlid +noall +answer @ns.mysecondserver.com example.com ANY)) 

для нескольких доменов или поддоменов:

  • Создать текстовый файл с 1 доменом по строке (на примере: alldomains.txt)

Командная строка:

diff <(sort -u <(for host in $(cat alldomains.txt); do dig +nottlid +noall +answer @ns.myfirstserver.com $host ANY; done)) <(sort -u <(for host in $(cat alldomains.txt); do dig +nottlid +noall +answer @ns.mysecondserver.com $host ANY; done)) 

Комментарии:

  • дифференциалов: сравнить файлы построчно
  • сортировать: сортировать строки текстовых файлов
  • -u: убедитесь, что есть только уникальная линия
  • рыть: DNS поиска утилиты
  • + nottlid: не отображать TTL при печати записи
  • + noall: очистить все флаги дисплея
  • ответ: отображение секции полномочий ответа.
  • @ ns.server.com: имя или IP-адрес сервера имен для запроса
  • ANY: указывает, какой тип запроса требуется (ANY, A, MX, SIG, и т.д.)

Вы можете перенаправить файл, добавив > myresult.txt в конец.

Надеюсь, это может помочь кому-то.

+1

Если один из серверов имен разрешает вам передавать зоны на IP-адрес, вы можете сравнить все хосты (исключая те, о которых знает только другой сервер имен): 'diff <(sort -u <(dig + nottlid + noall + answer -t AXFR @ ns.myfirstserver.com example.com)) <(sort -u <(для хоста в $ (dig + nottlid + noall + answer -t AXFR @ ns.myfirstserver.com example.com | cut -f 1 | sort -u); + nottlid + noall + answer @ ns.mysecondserver.com $ host ANY; done)) ' – textshell

+0

Если в зоне есть делегирования другим серверам имен, мне также нужно добавить команду' + authority' в команду dig. – textshell

+0

Фантастический ответ, спасибо! – npad

Смежные вопросы