Вы не пропингуете тот же интерфейс , без каких-либо физических интерфейсов у вас все еще есть «локальный хост».
Ваш localhost
используется для обозначения вашего компьютера с его «внутреннего» IP-адреса, а не с любого «внешнего» IP-адреса вашего компьютера. Таким образом, пакеты ping не проходят через какой-либо физический сетевой интерфейс; только через интерфейс виртуальной обратной связи, который напрямую отправляет пакеты от порта к порту без каких-либо физических скачков.
Вы можете все еще задаться вопросом, почему localhost
происходит разрешение ::1
, в то время как традиционно мы ожидаем, что оно разрешится по адресу IPv4 127.0.0.1
. Обратите внимание, что .localhost
традиционно это TLD (см. RFC 2606 ), который указывает на обратный IP-адрес (для IPv4 см. RFC 3330 , особенно 127.0.0.0/8).
Поиск с localhost
помощью nslookup
дает нам:
nslookup localhost
...
Name: localhost
Addresses: ::1
127.0.0.1
Таким образом, Windows предпочитает использовать обратный IP-адрес IPv6 ::1
(см. RFC 2373 ), поскольку он указан первым.
Итак, откуда это, давайте посмотрим на файл hosts.
type %WINDIR%\System32\Drivers\Etc\Hosts
...
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
...
Хм, мы должны посмотреть на настройки DNS Windows.
В этой статье базы знаний рассказывается о настройке, влияющей на предпочтения Windows, выделенной жирным шрифтом:
В редакторе реестра найдите и щелкните следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
Дважды щелкните DisabledComponents, чтобы изменить запись DisabledComponents.
Примечание. Если запись DisabledComponents недоступна, ее необходимо создать. Для этого выполните следующие действия:
В меню «Правка» выберите пункт «Создать» и нажмите «Значение DWORD (32-разрядное)».
Введите DisabledComponents и нажмите клавишу ВВОД.
Дважды щелкните DisabledComponents.
Введите любое из следующих значений в поле «Значение: данные», чтобы настроить протокол IPv6 на требуемое состояние, и нажмите кнопку «ОК»:
- Введите,
0
чтобы включить все компоненты IPv6. (Настройка Windows по умолчанию)
- Введите,
0xffffffff
чтобы отключить все компоненты IPv6, кроме петлевого интерфейса IPv6. Это значение также настраивает Windows на использование Интернет-протокола версии 4 (IPv4) по сравнению с IPv6 путем изменения записей в таблице политик префиксов. Для получения дополнительной информации см. Выбор источника и адреса назначения.
- Введите
0x20
предпочитаемый IPv4 вместо IPv6, изменив записи в таблице политик префиксов.
- Введите,
0x10
чтобы отключить IPv6 на всех нетуннельных интерфейсах (как на интерфейсах локальной сети, так и на протоколах PPP).
- Введите
0x01
для отключения IPv6 на всех туннельных интерфейсах. К ним относятся протокол внутренней туннельной автоматической адресации (ISATAP), 6to4 и Teredo.
- Введите,
0x11
чтобы отключить все интерфейсы IPv6, кроме петлевого интерфейса IPv6.
Перезагрузите компьютер, чтобы этот параметр вступил в силу.
Что это за таблица префиксов политики?
netsh interface ipv6 show prefixpolicies
(или prefixpolicy
в более ранних версиях)
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::1/128
45 13 fc00::/7
40 1 ::/0
10 4 ::ffff:0:0/96
7 14 2002::/16
5 5 2001::/32
1 11 fec0::/10
1 12 3ffe::/16
1 10 ::/96
Эта таблица решает, какие префиксы имеют приоритет над другими префиксами при разрешении DNS.
Ах, поэтому, используя этот KB, мы могли бы добавить сюда записи, которые обозначают, что IPv4 имеет более высокий приоритет, чем IPv6.
Примечание. Нет причин переопределять это поведение, если только у вас не возникли проблемы с совместимостью. Изменение этого параметра на нашем Windows Server нарушило работу нашего почтового сервера, поэтому с ним следует обращаться осторожно ...