[Sysadmins] сказочка про ядро с IPv6 и openssh с -Y (и mountd)

Michael Shigorin mike на osdn.org.ua
Сб Июн 18 11:05:25 UTC 2011


	Здравствуйте.
Был у меня сервер под OpenVZ, работал себе.  Потом его перетащили
на 2.6.32-ovz-el (где согласно #21807 включен CONFIG_IPV6).
Затем этот самый v6 был по возможности оторван, поскольку там
не требуется, зато неудобства и даже проблемы доставлял (детали
не помню, но просьба выключить была) -- создал /etc/modprobe.d/ipv6
со строкой options ipv6 disable_ipv6=1

Несколько месяцев тому заметил, что при входе на этот сервер
ssh -Y перестал выставлять DISPLAY (как и NX).  Покрутил в руках
~/.ssh/config, проверил, что форвардинг не запрещён на сервере --
и пошёл дальше, поскольку не горело.  Наконец стало интересно --
что же это было? (эти два события как-то не сопоставил)

Кратко -- AddressFamily inet в /etc/openssh/sshd_config или
/etc/sysconfig/sshd с EXTRAOPTIONS="-4" (и service sshd restart).

--- подробнее ---

- форвардинг серверу и клиенту разрешён (в т.ч. явно)
- пакет xauth на сервере установлен
- в ~/.zshrc ничего необычного
- в выводе ssh -vv -Y строчки с x11 те же, что при входе на
  "хороший" хост

В итоге наконец заглянул в /var/log/messages на той стороне и:
sshd[409536]: error: Failed to allocate internet-domain X11 display socket.

По фразе в основном гуглятся opensolaris'овские грабли,
но нашлись и линуксовые:
http://forums.opensuse.org/english/get-technical-help-here/network-internet/398918-cant-enable-ssh-x11-forwarding-2.html
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/136947

Из того, что у нас маловероятно -- мог быть расконфигурирован или
опущен интерфейс lo либо отсутствовать запись 127.0.0.1 localhost
в /etc/hosts (хотя это скорее при ssh -L/-R может укусить).

Селективно включать IPv6 для lo не стал
(/proc/sys/net/ipv6/conf/lo/disable_ipv6).

Начал было вешать багу (поскольку вообще-то при AddressFamily any
можно бы и не обламываться слишком рано на v6 при живом v4) --
но подумал, что больше толку будет написать сюда и посоветоваться,
стоит ли дёргать апстрим (и какой) насчёт поведения при AF_UNSPEC.

--- в нагрузку ---

На схожую тему -- ядерный nfsd на той же системе примерно в то же
время учинил невнятный облом с "Cannot allocate memory", при этом
уже руками сервис перезапускался нормально; в итоге было
отслежено как проблемы при старте service nfsd _до_ service vz,
который в процессе подгружал ipv6.ko, на наличие и загруженность
которого какого-то лешего стал закладываться код NFS...
(вот тогда и появилась строчка с ipv6_disable, помнится)

https://bugzilla.redhat.com/show_bug.cgi?id=504602
https://bbs.archlinux.org/viewtopic.php?id=63505

--- disclaimer ---

ovz в данном случае "виноват" тем, что модуль vzrst вытягивает
модуль ipv6 в любом случае -- на федоре ловили на штатном ядре.
Применительно к нему меня больше волнует другое:
http://bugzilla.openvz.org/show_bug.cgi?id=1880

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


Подробная информация о списке рассылки Sysadmins