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

Сегодня я был шокирован, когда проверял, на что фактически указывает промежуточный домен моего веб-сайта. Я предполагал, что из-за некоторой неаккуратной конфигурации домена или сети нашей компании мой stage-Domain каким-то образом указывал на производственный сервер. После этого я попробовал host stage. ***. Com и получил 212. #. ##. 73 => Уф, промежуточный сервер

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

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

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

не должен ничего возвращать, но в моем случае он ДЕЙСТВИТЕЛЬНО возвращает

http: //stage.** * .com имеет адрес 212. ##. ##. 70

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

  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 ??? (Итак, у нас есть подстановочный знак для всего, что не является этапом ....)

2
задан 24 October 2017 в 15:21
2 ответа

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

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

Файл зоны:

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 записи A, http: // www соответствует wildcard

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

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 vs *. example.com )

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

1
ответ дан 3 December 2019 в 16:07

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

-3
ответ дан 3 December 2019 в 16:07

Теги

Похожие вопросы