Кто-нибудь использовал Memcached с IPv6? Можете ли вы предоставить какие-либо советы по настройке, ошибки или упомянуть какие-либо проблемы со стабильностью, которые у вас были?
memcached 1.2.5 и новее должен иметь поддержку IPv6.
Я не могу поручиться за его функциональность, поскольку я лично не использую memcached, но ищу "IPv6" в их баг трекер не показывает ничего вопиюще сломанного, поэтому я должен предположить, что он работает хотя бы в первом приближении :)
memcached поддерживает IPv6. Вы можете указать его при запуске, используя -l
параметр. Как ведут себя IPv4 и IPv6 по сравнению с установкой по умолчанию? Давайте посмотрим на сеанс Debian, в котором мы устанавливаем memcached, прослушиваем порт (ы) по умолчанию и запускаем два демона memcached, один из которых привязан к IP-адресу v6, а другой - к IP-адресу v4.
Linux hostname 3.0.4-linode38 #1 SMP Thu Sep 22 14:59:08 EDT 2011 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@hostname:~# apt-get install memcached Setting up memcached (1.4.5-1) ... Starting memcached: memcached. root@hostname:~# apt-get install libmemcached-tools libmemcached-dev Setting up libmemcached-tools (0.40-1) ... root@hostname:~# memccapable ascii quit [pass] ascii version [pass] ascii verbosity [FAIL] 1 of 54 tests failed
Мы можем использовать memccapable
чтобы проверить это memcached
действительно работает.
root@hostname:~# memcached -d -P /tmp/mcd.pid -v -l 2600:3c03::dead:beef:feeb:daed -u nobody -p 10001 -U 10001 root@hostname:~# memcached -d -P /tmp/mcd2.pid -v -l 10.0.1.2 -u nobody -p 10002 -U 10002
Мы только что запустили наш IPv6 memcached на порту 10001
и наш IPv4 memcached на порт 10002
root@hostname:~# memcstat --servers=127.0.0.1:11211,127.0.0.1:10001,127.0.0.1:10002 Server: 127.0.0.1 (11211) pid: 2131 uptime: 689 time: 1325757557 version: 1.4.5 Server: 127.0.0.1 (10001) pid: 0 uptime: 0 time: 0 version: Server: 127.0.0.1 (10002) pid: 0 uptime: 0 time: 0 version:
memcstat
позволяет нам проверять состояние нескольких хостов одновременно. Мы видим, что memcached не привязан к портам localhost 10001
или 10002
, что имеет смысл, поскольку мы явно указали наши IP-адреса. Теперь давайте проверим наш IPv4-адрес на наличие серверов memcached на каждом из портов.
root@hostname:~# memcstat --servers=10.0.1.2:11211,10.0.1.2:10001,10.0.1.2:10002 Server: 10.0.1.2 (11211) pid: 0 uptime: 0 time: 0 version: Server: 10.0.1.2 (10001) pid: 0 uptime: 0 time: 0 version: Server: 10.0.1.2 (10002) pid: 2699 uptime: 89 time: 1325757596 version: 1.4.5
Мы видим, что наш IPv6 memcached недоступен с нашего IPv4-адреса. memcstat не (начиная с Debian 6.0.3) ccapable принимать адреса IPv6 в командной строке, поэтому мы сделаем три отдельных memccapable.
root@hostname:~# memccapable -h 2600:3c03::dead:beef:feeb:daed -p 11211 ascii quit [pass] ascii version [pass] ascii verbosity [FAIL] 1 of 54 tests failed root@hostname:~# memccapable -h 2600:3c03::dead:beef:feeb:daed -p 10001 ascii quit [pass] ascii version [pass] ascii verbosity [FAIL] 1 of 54 tests failed root@hostname:~# memccapable -h 2600:3c03::dead:beef:feeb:daed -p 10002 Failed to connect socket: Connection refused Failed to connect to : Connection refused root@hostname:~#
Это интересно. Установка memcached по умолчанию привязана к localhost и IPv6-адресу, но не к нашему IPv4-адресу. Это может зависеть от конкретной среды сервера / хостинга. Следует отметить, что наш явно определенный порт 10002 на IPv4-адресе недоступен при указании нашего IPv6-адреса, а наш экземпляр порта 10001 доступен.
Итак, да, memcached делает поддержка IPv6. Вы также можете указать эти параметры в файле /etc/memcached.conf. Обратите внимание на предупреждение в этом файле, в котором предлагается прослушивать только интерфейс, защищенный брандмауэром. Если ваш интерфейс IPv6 является общедоступным / доступным, вы рискуете раскрыть уязвимые элементы кеша.