sol Posted May 13, 2014 (edited) Есть Федора 20 с последними обновлениями. Ядро 3.14.3-200.fc20.i686+PAE И есть квагга 0.99.22.4 Беда в том, что маршруты есть в недрах квагги, но не попадаюь в ядро. Демон zebra запущен. В vtysh команда sh ip route показывает все нужные роуты а в шелле route -n или ip route show их не кажет. В лог сыплется May 12 13:32:26 nat zebra[698]: netlink-cmd error: Operation not permitted, type=RTM_NEWROUTE(24), seq=495235, pid=0 May 12 13:32:26 nat zebra[698]: netlink-cmd error: Operation not permitted, type=RTM_NEWROUTE(24), seq=495236, pid=0 в ручную типа route add -net 11.22.33.44/24 gw1.1.1.1 маршруты создаются. selinux отключен. Вопрос: кто мешает жить лошадке? Edited May 29, 2014 by sol Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 дайте CAP_NET_ADMIN зебре Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 эээ, а как? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 setcap cap_net_admin /path/to/zebra-binary, потом проверьте getcap-ом Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 Легче не стало: [root@nat quagga]# getcap /usr/sbin/zebra /usr/sbin/zebra = cap_net_admin+eip А вообще, эти самые капабилитес, они где-то в файловых атрибутах хранятся? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 (edited) По трейсу видно, что нужные капабилити есть capset({_LINUX_CAPABILITY_VERSION_3, 0}, {CAP_NET_ADMIN|CAP_NET_RAW|CAP_SYS_ADMIN, CAP_NET_ADMIN|CAP_NET_RAW|CAP_SYS_ADMIN, 0}) = 0 sendmsg(6, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"4\0\0\0\30\0\5\4\7\0\0\0\0\0\0\0\2 \0\0\0\v\0\1\0\0\0\0\10\0\1\0"..., 52}], msg_controllen=0, msg_flags=0}, 0) = 52 capset({_LINUX_CAPABILITY_VERSION_3, 0}, {0, CAP_NET_ADMIN|CAP_NET_RAW|CAP_SYS_ADMIN, 0}) = 0 recvmsg(6, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"H\0\0\0\2\0\0\0\7\0\0\0\320\357\377\377\377\377\377\3774\0\0\0\30\0\5\4\7\0\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 72 Это как раз момент добавления маршрута Edited May 13, 2014 by sol Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
KaraVan Posted May 13, 2014 Было такое на центосе. Решилось, кажется, отключением селинукс. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 [root@robin ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 sestatus покажите Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 [root@nat ~]# sestatus SELinux status: disabled Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 вы случайно не openvz всё это дело гоняете? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 (edited) На живом железе. Сервер HP 360 G3 Никакой виртуализации. Edited May 13, 2014 by sol Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 а от чистого рута запустить? сделать chown root и chmod +s, в конфиге тоже прописать user=root или в стартап скрипте или где оно там спрятано Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 Не помогает, если запускать руками от рута. А как запустить от имени юзера, отличного от quagga я не совсем понимаю. Похоже, что только при сборке можно указать юзера, от которого оно будет работать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 А как запустить от имени юзера, отличного от quagga я не совсем понимаю Ну в man zebra всё же написано! -u и -g Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bos9 Posted May 13, 2014 (edited) квагга не с сорцов? мож систему обновляли после сборки квагги? федора все-таки ) Edited May 13, 2014 by bos9 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 Управление сервером потерял... Завтра гонец съездит и перезагрузит. Квагга руками не собиралась. Штатная из репо федоры. Всё обновлено до последнего. До Ман Зебра не допёр. Мозг взорвался. Завтра попробую. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
KaraVan Posted May 13, 2014 А в vtysh они отображаются как неактивные? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 (edited) В vtysh они отображаются без "звёздочки", что означает, что маршрут не в FIB. Попробовал на другой машине. Чистая инсталяция с нуля. [root@dns quagga]# /usr/sbin/zebra -A 127.0.0.1 -f /etc/quagga/zebra.conf -u root -g root 2014/05/13 22:16:02 ZEBRA: Zebra 0.99.22.4 starting: vty@2601 2014/05/13 22:16:02 ZEBRA: netlink-cmd error: Operation not permitted, type=RTM_NEWROUTE(24), seq=6, pid=0 Сцуко, гугол уже проиндексировал... Теперь этот топик гуглится в первых рядах... Edited May 13, 2014 by sol Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 13, 2014 Смотрите sysctl.conf и лимиты и поднимайте до нужных величин. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 13, 2014 Лимиты на ЧТО?!? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 13, 2014 man limits.conf Внимательно читайте системные логи. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted May 13, 2014 да я вообще первый раз вижу такую фигню(без виртуализации). Fedora это ТЕСТОВЫЙ дистрибутив redhat, не предназначенный для production вообще. Используйте debian, ubuntu, centos или что-нибудь подобное. да уж лучше даже freebsd, чем fedora на сервере Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 13, 2014 да я вообще первый раз вижу такую фигню(без виртуализации). +1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sol Posted May 14, 2014 Fedora это ТЕСТОВЫЙ дистрибутив redhat, не предназначенный для production вообще. Кто-бы мог подумать... Являюсь пользователем этой линейки со времён RH (не федоры) 4.1 на архитектуре x86 и со времён 6.2 (вроде-бы) на SPARC и 7.1 на Альфе. С конца 90-х более сотни машин в продакшене/были в продакшене. А вы говорите "тестовый". Я вообще такой волосатый/бородатый дядя а-ля Столманн. Есть конкретная ошибка, её надо победить. Есть понимание, что виновен весь дистрибутив в целом а не какое то конкретное сочетание версий/настроек - не вопрос, отпишем в багзиллу. man limits.conf Я умею пользоваться лимитами. Я поинтересовался, какой именно лимит надо подкрутить. У меня не складывается связь между конкретной ошибкой вида "Операция не разрешена" и каким-то лимитом. Чего не хватает-то? Процессора? Памяти? Найс не тот? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...