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

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

 

[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

[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

а от чистого рута запустить? сделать 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

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

 

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

 

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

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

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.