Назад | Перейти на главную страницу

Почему команда host возвращает разные результаты при присоединении http: // к домену

Сегодня я был шокирован, когда проверил, куда на самом деле указывает промежуточный домен моего сайта. Я предполагал, что из-за некоторой неаккуратной конфигурации домена или сети нашей компании мой stage-Domain каким-то образом указывал на производственный сервер.

Итак, я набрал host http://stage.***.com и получил 212. ##. ##. 70 => Бум, производственный сервер. Впоследствии я попробовал host stage.***.com и получил 212. #. ##. 73 => Уф, промежуточный сервер

Итак, мой вопрос: как может случиться, что при случайной вставке «http: //» в командную строку «host» вернет другой IP-адрес?

Изменить: поскольку кажется неясным, о чем я прошу, я пытаюсь уточнить: как указывает Свен в своем комментарии,

host http://stage.***.com

не должен ничего возвращать, но в моем случае он возвращает

http://stage.***.com has address 212.##.##.70

который на самом деле является IP ***. com (production) Итак, я хотел бы знать, как это могло произойти.

  1. почему возвращает Prod-IP?
  2. Учитывая комментарий Свена, почему он вообще что-то возвращает? Поскольку фактический ответ вводил в заблуждение, я бы предпочел сообщение об ошибке. В любом случае "http: //" было ошибкой копирования / вставки.

Кстати, у меня Ubuntu 16.10. клиент

Edit2:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> http://stage.***.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26978
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;http://stage.***.com. IN   A

;; ANSWER SECTION:
http://stage.***.com. 180 IN    A   212.48.122.70

;; AUTHORITY SECTION:
***.com.    65  IN  NS  auth2.###.de.
***.com.    65  IN  NS  auth1.###.de.

;; ADDITIONAL SECTION:
auth1.###.de.   180 IN  A   212.##.##.53
auth1.###.de.   180 IN  AAAA    2a00:####:##:##::2
auth2.###.de.   180 IN  A   212.##.##.53
auth2.###.de.   180 IN  AAAA    2a00:####:##:##::2

Хм. Я предполагаю, что часть «http: //» считается частью домена, и в нашей конфигурации DNS указано, что *. ***. Com имеет ###. 70 ??? (Итак, у нас есть подстановочный знак для всего, что не является этапом ....)

Для этого у вас должен быть подстановочный знак для вашего домена (и вы должны его удалить)

Результаты следующего должны быть такими же, если у вас есть зона вроде

Файл зоны:

example.com IN A 192.0.2.5
*.example.com IN A 192.0.2.0
www.example.com IN A 192.0.2.10

Вывод команды хоста:

host http://a.example.com
http://a.example.com has address 192.0.2.0

host http://www.example.com
http://www.example.com has address 192.0.2.0

host www.example.com
www.example.com has address 192.0.2.10

Как вы видете, www Спички www Запись, http://www соответствует подстановочному знаку

Запись апекса не соответствует *, так как это не субдомен.

host http://example.com
http://example.com not found: 3(NXDOMAIN

Всегда будет NXDomain, это как-то связано с отсутствием какого-либо символа + .

Я проверил журнал запросов, и да, запрос действительно для http://a.example.com и матчи *.example.com.

Подстановочные знаки - это ужасно, избегайте их как можно чаще!

  1. отключает отрицательный TTL (нет NXDomain, всегда отвечаете записью)
  2. увеличивает распространение * новых записей
  3. увеличить шанс отравления кеш-памяти DNS (особенно в случае разделения DNS!)
  4. Не все серверы имен одинаково обрабатывают подстановочные знаки, НЕКОТОРЫЕ полностью рекурсивны, другие - нет (*.*.*.*.example.com против *.example.com)

* распространение не имеет смысла, но обычно используется для описания времени, необходимого третьим сторонам для обновления кеша.

Полностью удалите http: //, так как это не часть FQDN.