3

Даже после отключения ipv6 на моей машине linux и перезапуска сетевых служб, и если у меня нет IPv6-адреса, назначенного интерфейсу, один из моих демонов (в частности, cassandra) использует сопоставленный ipv4 адрес ipv6 при проверке в netstat, например ::ffff:10.xxx.x.xx:9042

Я проверил strace, и он использует sa_family=AF_INET, sin_port=htons(44315), sin_addr=inet_addr("127.0.0.1") и не использует AF_INET6 . Неужели ipv6 все еще активен? Почему это требуется?

Я задал этот вопрос и в Networkengineering , так как я не уверен, где спросить. Приносим извинения за это, и, пожалуйста, удалите один из них в не относящемся к делу разделе.

1 ответ1

1

Это должно помочь. Это говорит

Совместимость приложений IPv6 с приложениями IPv4

Сокетные приложения, написанные с семейством адресов AF_INET6, позволяют приложениям интернет-протокола версии 6 (IPv6) работать с приложениями интернет-протокола версии 4 (IPv4) (теми приложениями, которые используют семейство адресов AF_INET). Эта функция позволяет программистам сокетов использовать формат адресов IPv6, сопоставленный с IPv4. Этот формат адреса представляет адрес IPv4 узла IPv4, который должен быть представлен как адрес IPv6. Адрес IPv4 кодируется в младшие 32 бита адреса IPv6, а 96 старших бит содержат фиксированный префикс 0:0:0:0:0:FFFF. Например, сопоставленный с IPv4 адрес может выглядеть так:

::FFFF:192.1.1.1

Эти адреса могут генерироваться автоматически с помощью API getaddrinfo (), когда указанный хост имеет только адреса IPv4.

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