Итак, я просто настраиваю новый сервер на капле и смотрю на eth0 с ifconfig
Я вижу, что сетевая карта настроена на один адрес IPv4 и один адрес IPv6 (IPv4 изменен для защиты):
inet addr:192.168.111.111 Bcast:192.168.111.255 Mask:255.255.240.0
inet6 addr: fe80::601:29ff:fe72:9601/64 Scope:Link
Я вижу, что IPv6 является локальным, поскольку начинается с fe80
.
Затем я настраиваю Apache2
и попытайтесь загрузить главную страницу, используя адрес IPv4 (поскольку я не настраивал запись AAAA для IPv6, это должен быть IPv4, плюс IPv6 является локальным). Однако, когда я смотрю на прослушивание, Apache2
сервер выглядит так:
tcp6 0 0 :::443 :::* LISTEN
Слушатель SSH делает то же самое.
Так вот что мне интересно ... как система может подключить входящий IPv4 к прослушивающему IPv6? Раньше, насколько я помню, приходилось менять Apache2
setup, чтобы вместо этого принудительно прослушивать IPv4-адрес.
У меня есть еще один вопрос, поскольку IPv6 является локальным адресом, я могу представить, что могу ОТБРАСЫВАТЬ почти все из моих ip6tables, верно? Оставь lo
только интерфейс, но что бы вы сказали?
Некоторые приложения могут использовать v4-mapped-on-v6, поддерживая оба протокола одновременно с минимальными изменениями.
Вы проверяли, действительно ли работает IPv4?
http://linux.die.net/man/7/ipv6
Соединения IPv4 могут обрабатываться с помощью API v6 с использованием типа адреса v4-mapped-on-v6; таким образом, программа должна поддерживать только этот тип API для поддержки обоих протоколов. Это прозрачно обрабатывается функциями обработки адресов в библиотеке C.