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

Невозможно использовать ping (только ping6) для проверки связи с хостом только для IPv6, определенным в зоне DNS

У меня есть сервер Debian, на котором работает DNS-сервер BIND9. В моем файле зоны у меня есть несколько хостов, которые одинаково доступны через IPv4 и IPv6, и у них есть соответствующие записи A или AAAA.

Теперь я хотел добавить в свою зону хост только для IPv6, это компьютер, работающий в моей домашней сети. Этот компьютер имеет IPv6-адрес, доступный из Интернета / моего DNS-сервера (я могу напрямую проверить адрес ping6). Однако это так не иметь IPv4-адрес (потому что он подключен через NAT за моим маршрутизатором и т. д.).

Я думал, что это не имеет значения, и я могу просто добавить запись AAAA для этого хоста с адресом IPv6 и иметь возможность пинговать его.

Дело в том, что я могу пинговать эту машину только при использовании ping6, стандартная команда ping дает мне неизвестный хост. Это немного понятно, но мне интересно, почему нормальный пинг не имеет проблем с пингом одного из хостов, у которых есть IPv4. и и запись IPv6 - в этом случае нормальный пинг разрешается в адрес IPv6.

Есть ли этому объяснение и что я могу сделать, чтобы изменить такое поведение?

Резюме:

На хосте есть запись A + AAAA: ping разрешает IPv6-адрес, ping6 разрешает IPv6-адрес

Хост имеет только запись AAAA: ping не разрешает IPv6-адрес, ping6 разрешает IPv6-адрес

ping запрашивает только адреса IPv4 (что означает, что он запрашивает ТОЛЬКО записи A), а ping6 запрашивает только адреса IPv6 (и запрашивает только записи AAAA).

Таким образом, для системы с двойным стеком, в которой оба типа адресов представлены в DNS, обе команды работают, поскольку они могут видеть соответствующие типы записей в DNS. В случае IPv6 запись только об узле A отсутствует, и, следовательно, эхо-запрос не выполняется.

Часть, которую вы ошиблись, - это предположение, что ping может разрешиться с использованием записей AAAA - но не может. Вы можете использовать сетевой сниффер (например, wirehark), чтобы точно узнать, что отправляется на резолвер. ICMP и ICMPv6 - это разные протоколы, они тесно связаны с IPv4 и IPv6 соответственно и НЕ МОГУТ быть взаимозаменяемыми.