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

Может ли сетевой интерфейс назначить сопоставленный IPv4-адрес?

У меня есть унаследованный код, который проверяет маршрутизатор Linux на подключение к сети IPv4. Есть одна проверка адресов IPv6, если они находятся в сети 0: 0: 0: 0: 0: ffff :: network. Является ли допустимым сценарий, что интерфейс может иметь адрес IPv6 в этом диапазоне IPv6 и не иметь адреса IPv4 и может обмениваться данными в сети IPv4?

Нет, это не сработает. Сопоставленные адреса используются для представления сетевых подключений IPv4 в программном обеспечении IPv6. Но это все, что они есть: представление в программном обеспечении. Назначить их сетевому интерфейсу или отправить фактические пакеты по сети не получится. Если кто-то так поступает, то это недействительный IPv6.

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

Конечно, если реальный вопрос заключается в том, находится ли интерфейс в подсети v4, которую легче найти, ip -4 addr например.