При рестарте сети очищаются arp и не восстанавливаются. В результате чего контейнеры становятся не доступны по сети. Для решения вопроса предусмотрен скрипт /usr/sbin/vzifup-post который должен стартовать после рестарта сети. В redhat для этого используются некоторые хаки - http://git.altlinux.org/people/ldv/packages/?p=vzctl.git;a=commit;h=9cadfacc1591549a1d32f8ce88c8329c9f8799b5 Очень хорошо чтобы и у нас была данная проблема решена.
Я думаю это надо в etcnet делать. Чтобы при старте интерфейса на который назначен IP и при наличии /usr/sbin/vzifup-post, его дергать. Как вариант объезда можно делать $MYIFACEDIR/ifup-post, но хочется чтобы из коробки работало. что думаете?
Вот описание проблемы http://bugzilla.openvz.org/show_bug.cgi?id=556
Вот патч решающий проблему. http://git.altlinux.org/people/dubrsl/packages/?p=etcnet.git;a=commitdiff;h=66367765431a4ac5c853ad68c4088c44b7db455f Если бы в etcnet было что-то типа ifup-post.d, куда можно было бы делать линк на выполнение нужного скрипта, то патч бы не понадобился. Можно конечно сделать костыль в спеке и делать линк /etc/net/ifup-post -> /usr/sbin/vzifup-post в случае отсутствия /etc/net/ifup-post. Но если такой есть и используется по другому? И зачем дергать скрипт, если IP на интерфейсе нет? Прошу рассмотреть патч.
В версии vzctl-4.5.1-alt1 эта проблема частична решена, путем добавления ссылки /etc/net/ifup-post-local на %_sbindir/vzifup-post if [ ! -e /etc/net/ifup-post-local ]; then ln -sf %_sbindir/vzifup-post /etc/net/ifup-post-local elif readlink /etc/net/ifup-post-local | fgrep -q %_sbindir/vzifup-post; then : # Nothing to do, symlink already points to our script else echo " WARNING: file /etc/net/ifup-post-local is present!" echo " You have to manually edit the above file so that" echo " it calls %_sbindir/vzifup-post" fi
Всё же это проблема OpenVZ скорее: вариантов настройки сети сейчас более одного. Когда-то я в sysadmins@lists.altlinux постил скрипт на perl, который можно на cron повесить: https://lists.altlinux.org/pipermail/sysadmins/2013-November/036485.html Сейчас наверное можно на bash4 переписать - там с хэшами.
Created attachment 8697 [details] скрипт для синхронизации записей в arp-таблице Чуть более правильный скрипт, чем в рассылке: использует /proc/vz/veip вместо разбора конфигов.