Bug 23798

Summary: При service network restart очищаются arp и не восстанавливаются.
Product: Sisyphus Reporter: Slava Dubrovskiy <dubrsl>
Component: etcnetAssignee: Mikhail Efremov <sem>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: asy, lav, ldv, rider, sem, shaba, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
скрипт для синхронизации записей в arp-таблице none

Description Slava Dubrovskiy 2010-07-21 23:54:47 MSD
При рестарте сети очищаются arp и не восстанавливаются. В результате чего контейнеры становятся не доступны по сети. Для решения вопроса предусмотрен скрипт /usr/sbin/vzifup-post который должен стартовать после рестарта сети. В redhat для этого используются некоторые хаки - http://git.altlinux.org/people/ldv/packages/?p=vzctl.git;a=commit;h=9cadfacc1591549a1d32f8ce88c8329c9f8799b5

Очень хорошо чтобы и у нас была данная проблема решена.
Comment 1 Slava Dubrovskiy 2011-07-01 21:38:42 MSK
Я думаю это надо в etcnet делать. Чтобы при старте интерфейса на который назначен IP и при наличии  /usr/sbin/vzifup-post, его дергать.
Как вариант объезда можно делать $MYIFACEDIR/ifup-post, но хочется чтобы из коробки работало.
что думаете?
Comment 2 Slava Dubrovskiy 2011-09-19 08:19:29 MSK
Вот описание проблемы http://bugzilla.openvz.org/show_bug.cgi?id=556
Comment 3 Slava Dubrovskiy 2011-09-19 08:45:05 MSK
Вот патч решающий проблему.
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 на интерфейсе нет?

Прошу рассмотреть патч.
Comment 4 Slava Dubrovskiy 2014-01-27 10:18:49 MSK
В версии 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
Comment 5 Sergey Y. Afonin 2020-03-31 16:16:31 MSK
Всё же это проблема OpenVZ скорее: вариантов настройки сети сейчас более одного. Когда-то я в sysadmins@lists.altlinux постил скрипт на perl, который можно на cron повесить: https://lists.altlinux.org/pipermail/sysadmins/2013-November/036485.html

Сейчас наверное можно на bash4 переписать - там с хэшами.
Comment 6 Sergey Y. Afonin 2020-03-31 16:20:35 MSK
Created attachment 8697 [details]
скрипт для синхронизации записей в arp-таблице

Чуть более правильный скрипт, чем в рассылке: использует /proc/vz/veip вместо разбора конфигов.