Перейти к содержимому
Калькуляторы

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 отключен.

 

Вопрос: кто мешает жить лошадке?

Изменено пользователем sol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

эээ, а как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

setcap cap_net_admin /path/to/zebra-binary, потом проверьте getcap-ом

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

/usr/sbin/zebra = cap_net_admin+eip

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Это как раз момент добавления маршрута

Изменено пользователем sol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[root@nat ~]# sestatus

SELinux status: disabled

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Изменено пользователем sol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем bos9

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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

 

 

Сцуко, гугол уже проиндексировал... Теперь этот топик гуглится в первых рядах...

Изменено пользователем sol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

man limits.conf

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

+1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.