Jump to content
Калькуляторы

Quagga и кернел роуты [решено]

Есть Федора 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 by sol

Share this post


Link to post
Share on other sites

эээ, а как?

Share this post


Link to post
Share on other sites

Легче не стало:

 

[root@nat quagga]# getcap /usr/sbin/zebra

/usr/sbin/zebra = cap_net_admin+eip

 

А вообще, эти самые капабилитес, они где-то в файловых атрибутах хранятся?

Share this post


Link to post
Share on other sites

По трейсу видно, что нужные капабилити есть

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 by sol

Share this post


Link to post
Share on other sites

Было такое на центосе. Решилось, кажется, отключением селинукс.

Share this post


Link to post
Share on other sites

[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

Share this post


Link to post
Share on other sites

[root@nat ~]# sestatus

SELinux status: disabled

Share this post


Link to post
Share on other sites

На живом железе. Сервер HP 360 G3

 

Никакой виртуализации.

Edited by sol

Share this post


Link to post
Share on other sites

а от чистого рута запустить? сделать chown root и chmod +s, в конфиге тоже прописать user=root или в стартап скрипте или где оно там спрятано

Share this post


Link to post
Share on other sites

Не помогает, если запускать руками от рута.

 

А как запустить от имени юзера, отличного от quagga я не совсем понимаю. Похоже, что только при сборке можно указать юзера, от которого оно будет работать.

Share this post


Link to post
Share on other sites

А как запустить от имени юзера, отличного от quagga я не совсем понимаю

 

Ну в man zebra всё же написано! -u и -g

Share this post


Link to post
Share on other sites

квагга не с сорцов? мож систему обновляли после сборки квагги? федора все-таки )

Edited by bos9

Share this post


Link to post
Share on other sites

Управление сервером потерял... Завтра гонец съездит и перезагрузит.

 

Квагга руками не собиралась. Штатная из репо федоры. Всё обновлено до последнего.

 

До Ман Зебра не допёр. Мозг взорвался. Завтра попробую.

Share this post


Link to post
Share on other sites

А в vtysh они отображаются как неактивные?

Share this post


Link to post
Share on other sites

В 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 by sol

Share this post


Link to post
Share on other sites

Смотрите sysctl.conf и лимиты и поднимайте до нужных величин.

Share this post


Link to post
Share on other sites

Лимиты на ЧТО?!?

Share this post


Link to post
Share on other sites

man limits.conf

Внимательно читайте системные логи.

Share this post


Link to post
Share on other sites

да я вообще первый раз вижу такую фигню(без виртуализации). Fedora это ТЕСТОВЫЙ дистрибутив redhat, не предназначенный для production вообще. Используйте debian, ubuntu, centos или что-нибудь подобное. да уж лучше даже freebsd, чем fedora на сервере

Share this post


Link to post
Share on other sites

да я вообще первый раз вижу такую фигню(без виртуализации).

 

+1

Share this post


Link to post
Share on other sites
Fedora это ТЕСТОВЫЙ дистрибутив redhat, не предназначенный для production вообще.
Кто-бы мог подумать... Являюсь пользователем этой линейки со времён RH (не федоры) 4.1 на архитектуре x86 и со времён 6.2 (вроде-бы) на SPARC и 7.1 на Альфе. С конца 90-х более сотни машин в продакшене/были в продакшене. А вы говорите "тестовый". Я вообще такой волосатый/бородатый дядя а-ля Столманн.

 

Есть конкретная ошибка, её надо победить. Есть понимание, что виновен весь дистрибутив в целом а не какое то конкретное сочетание версий/настроек - не вопрос, отпишем в багзиллу.

 

man limits.conf
Я умею пользоваться лимитами. Я поинтересовался, какой именно лимит надо подкрутить. У меня не складывается связь между конкретной ошибкой вида "Операция не разрешена" и каким-то лимитом. Чего не хватает-то? Процессора? Памяти? Найс не тот?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this