1

В сети моей организации, если у компьютера есть имя компьютера (имя хоста), скажем, desktop-x, я могу пропинговать эту машину, используя просто «ping desktop-x».

Но пинг фактически преобразует desktop-x в FQDN, чтобы запросить у DNS-сервера соответствующий IP-адрес. Поэтому, если доменное имя моей организации - company-x, зарегистрированное под com, то полное доменное имя для этого компьютера - desktop-x.company-x.com.

Таким образом, ping фактически запрашивает «какой IP-адрес для desktop-x.company-x.com». Теперь, когда DNS-сервер организации получает этот запрос, как он узнает, какой IP-адрес назначен desktop-x, так как desktop-x динамически назначает частный ip по DHCP.

Если DNS-сервер каким-то образом отслеживает (hostname => ip address), то почему я не могу пропинговать тот же компьютер из-за пределов сети с помощью «ping desktop-x.company-x.com»?

1 ответ1

3

desktop-x динамически назначается частному ip по DHCP

Есть три варианта:

  1. Когда используется Active Directory, рабочие станции самостоятельно регистрируются, отправляя пакеты DNS "UPDATE" на полномочный сервер (который обычно является контроллером домена AD).

    Это возможно даже без AD - но тогда вам нужно разрешить неаутентифицированные обновления или настроить пользовательские методы обновления. AD просто автоматизирует его с помощью Kerberos (т.е. GSS-TSIG).

  2. Когда используется DHCP, большинство рабочих станций сообщают свое имя хоста в пакете запроса DHCP. Затем DHCP-сервер свяжется с авторитетным DNS-сервером (вполне возможно, используя тот же "UPDATE" DNS, что и isc-dhcpd), чтобы вставить имя хоста в DNS.

    Именно так локальные имена хостов (домены .lan/.home) реализуются в пользовательских маршрутизаторах.

  3. Наконец, сопоставления DNS могут быть добавлены вручную, если DHCP-сервер настроил аренды для всех машин вручную, выдав им статические адреса.

    (Нигде в DHCP не говорится, что адреса должны быть временными, случайными или частными. Статическая аренда, присваивающая глобальный адрес, совершенно действительна.)

Если DNS-сервер каким-то образом отслеживает (hostname => ip address), то почему я не могу пропинговать тот же компьютер из-за пределов сети с помощью «ping desktop-x.company-x.com»?

Иногда вы можете.

Обычные причины, почему это не будет работать для большинства доменов:

  1. Машины имеют частные (RFC1918) IPv4-адреса, которые недоступны за пределами сайта - у Интернета нет для них маршрута.

    Это обычно, но не всегда, так. Некоторые организации имеют огромные пулы глобальных IPv4-адресов (например, MIT имел /8), и каждая машина может получить один. И некоторые организации используют IPv6, в котором каждая машина всегда получает один.

  2. Сеть находится за брандмауэром, который блокирует входящие соединения.

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

  3. На машинах установлены локальные (хостовые) брандмауэры, которые блокируют входящие соединения или только специально входящие пинг ICMP.

    Это значение по умолчанию в автономных системах Windows: они принимают пинг только из своей локальной подсети и удаляют их из любого места.

  4. Домен DNS имеет несколько представлений: внутренние запросы видят другие отображения, чем обычные пользователи. Часто "публичное" представление вообще не имеет внутренних хостов.

    (Это не стандартная функция DNS, но многие авторитетные серверы, такие как Bind, реализуют ее - путем проверки исходного IP-адреса запроса.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .