Вопрос: Как использовать IPV6 в httpd? Поддерживает ли RHEL Apache httpd двойной стек IPv4 и IPv6 вместе?
Сначала убедитесь, что в вашей системе включен IPv6.
Для включения ipv6 выполните шаги, описанные ниже, в зависимости от версии вашей ОС.
Включение поддержки IPv6 в CentOS / RHEL 7
1. Отредактируйте /etc/default/grub и удалите запись ipv6.disable = 1 из GRUB_CMDLINE_LINUX, как в следующем примере:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root"
2. Запустите команду grub2-mkconfig, чтобы восстановить файл grub.cfg:
# grub2-mkconfig -o /boot/grub2/grub.cfg
В качестве альтернативы в системах UEFI выполните следующее:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3. Удалите файл /etc/sysctl.d/ipv6.conf, который содержит запись:
# To disable for all interfaces net.ipv6.conf.all.disable_ipv6 = 1 # the protocol can be disabled for specific interfaces as well. net.ipv6.conf.[interface].disable_ipv6 = 1
4. Затем пересоберите исходный образ RAM-диска, используя:
# dracut -f
5. Проверьте содержимое файла /etc/ssh/sshd_config и убедитесь, что строка AddressFamily закомментирована:
# vi /etc/ssh/sshd_config #AddressFamily inet
6. Убедитесь, что следующая строка существует в /etc/hosts и не закомментирована:
# cat /etc/hosts ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
7. Перезагрузите систему, чтобы включить поддержку IPv6.
# shutdown -r now
Включение поддержки IPv6 в CentOS / RHEL 6
1. Просмотрите файлы в /etc/modprobe.d/ и удалите (или закомментируйте) любую из следующих строк:
options ipv6 disable=1 install ipv6 /bin/true blacklist ipv6 alias ipv6 off
2. Настройте службу ip6tables для запуска при загрузке, введя следующую команду:
# chkconfig ip6tables on
3. Убедитесь, что для следующих параметров вашего /etc/sysctl.conf установлено значение по умолчанию ‘0‘
# ipv6 support in the kernel, set to 0 by default net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0
4. Убедитесь, что следующая строка существует в / etc / hosts и не закомментирована:
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
5. Отредактируйте /etc/netconfig для строк, начинающихся с udp6 и tcp6; замените «-» (дефис / тире) в третьем столбце на «v»
6. Перезагрузите систему, чтобы активировать поддержку IPv6.
# shutdown -r now
Включить IPv6 в Apache
1. Адреса IPv6 должны быть заключены в квадратные скобки, как показано в следующем примере в файле /etc/httpd/httpd.conf:
# vi /etc/httpd/httpd.conf Listen [2001:db8::a00:20ff:fea7:ccea]:80 <VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80> </VirtualHost>
Замечания:
Когда IPv6 включен в Apache httpd, сокет IPv6 может обрабатывать как соединения IPv4, так и соединения IPv6. При обработке соединений IPv4 с сокетом IPv6 используются IPv4-сопоставленные адреса IPv6, которые по умолчанию разрешены в CentOS / RHEL 5/6/7.
# httpd -V | grep APR_HAVE_IPV6 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)