andryas Опубликовано 4 марта, 2009 · Жалоба Имеется машина под Freebsd 7.1 с последней Quagg'ой (zebra bgp). mpd создает 1000 интерфейсов ngxxx и (предположительно) при поднятии/опускании каждого из них Zebra активно грузит процессор на протяжении 5-10 секунд (system 60%-80%). Поскольку события подключения происходят довольно часто (до нескольких раз в минуту) то в результате получаем весьма некислую нагрузку на машину. Убивание процесса zebra проблему перегрузки, естественно, снимает. Лог: 19:03:34 ZEBRA: Kernel: Len: 236 Type: RTM_ADD 19:03:34 ZEBRA: Kernel: UP HOST DONE LLINFO WASCLONED 19:03:34 ZEBRA: Kernel: message seq 0 19:03:34 ZEBRA: Kernel: pid 0, rtm_addrs 0x33 19:03:34 ZEBRA: rtm_read_mesg: RTA_SDL_GET nlen 4, alen 6 19:03:34 ZEBRA: rtm_read: got rtm of type 1 (RTM_ADD) 19:03:34 ZEBRA: Kernel: Len: 96 Type: RTM_IFINFO 19:03:34 ZEBRA: Kernel: DYNAMIC STATIC PROTO1 19:03:34 ZEBRA: Kernel: message seq 1342177280 19:03:34 ZEBRA: Kernel: pid 53, rtm_addrs 0x13a 19:03:34 ZEBRA: ifm_read: sdl ifname (nil) 19:03:34 ZEBRA: ifm_read: interface ng305 index 314 19:03:34 ZEBRA: Kernel: Len: 96 Type: RTM_IFINFO 19:03:34 ZEBRA: Kernel: DYNAMIC STATIC PROTO1 19:03:34 ZEBRA: Kernel: message seq 1342177280 19:03:34 ZEBRA: Kernel: pid 53, rtm_addrs 0x13a 19:03:34 ZEBRA: ifm_read: sdl ifname (nil) 19:03:34 ZEBRA: ifm_read: interface ng305 index 314 19:03:34 ZEBRA: Kernel: Len: 96 Type: RTM_IFINFO 19:03:34 ZEBRA: Kernel: UP DYNAMIC STATIC PROTO1 19:03:34 ZEBRA: Kernel: message seq 1342177280 19:03:34 ZEBRA: Kernel: pid 53, rtm_addrs 0x13a 19:03:34 ZEBRA: ifm_read: sdl ifname (nil) 19:03:34 ZEBRA: MESSAGE: ZEBRA_INTERFACE_UP ng305 19:03:34 ZEBRA: MESSAGE: ZEBRA_INTERFACE_UP ng305 19:03:34 ZEBRA: ifm_read: interface ng305 index 314 19:03:34 ZEBRA: Kernel: Len: 116 Type: RTM_NEWADDR 19:03:34 ZEBRA: Kernel: 19:03:34 ZEBRA: Kernel: message seq 520 19:03:34 ZEBRA: Kernel: pid 0, rtm_addrs 0x13a 19:03:34 ZEBRA: ifam_read_mesg: RTA_SDL_GET nlen 5, alen 0 19:03:34 ZEBRA: ifam_read_mesg: ifindex 314, ifname ng305, ifam_addrs 0xb4, ifam_flags 0x0, addr xx.xx.xx.1/32 broad 10.80.129.1 dst 0.0.0.0 gateway 0.0.0.0 19:03:34 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_ADD xx.xx.xx.1/32 on ng305 19:03:34 ZEBRA: Kernel: Len: 124 Type: RTM_ADD 19:03:34 ZEBRA: Kernel: UP HOST 19:03:34 ZEBRA: Kernel: message seq 0 19:03:34 ZEBRA: Kernel: pid 0, rtm_addrs 0x3 19:03:34 ZEBRA: Kernel: Len: 88 Type: RTM_NEWMADDR 19:03:34 ZEBRA: Kernel: 19:03:34 ZEBRA: Kernel: message seq 1333 19:03:34 ZEBRA: Kernel: pid 20582968, rtm_addrs 0x13a 19:03:34 ZEBRA: Unprocessed RTM_type: 15 19:03:34 ZEBRA: Kernel: Len: 236 Type: RTM_ADD 19:03:34 ZEBRA: Kernel: UP HOST DONE LLINFO WASCLONED ZEBRA: ifm_read: interface ng305 index 314 ZEBRA: Kernel: Len: 124 Type: RTM_DELETE ZEBRA: Kernel: HOST ZEBRA: Kernel: message seq 0 ZEBRA: Kernel: pid 0, rtm_addrs 0x3 ZEBRA: Kernel: Len: 116 Type: RTM_DELADDR ZEBRA: Kernel: UP ZEBRA: Kernel: message seq 520 ZEBRA: Kernel: pid 0, rtm_addrs 0x13a ZEBRA: ifam_read_mesg: RTA_SDL_GET nlen 5, alen 0 ZEBRA: ifam_read_mesg: ifindex 314, ifname ng305, ifam_addrs 0xb4, ifam_flag 0x1, addr xx.xx.xx.1/32 broad 10.175.101.11 dst 0.0.0.0 gateway 0.0.0.0 ZEBRA: MESSAGE: ZEBRA_INTERFACE_ADDRESS_DELETE xx.xx.xx.1/32 on ng305 ZEBRA: MESSAGE: ZEBRA_INTERFACE_DOWN ng305 ZEBRA: Kernel: Len: 96 Type: RTM_IFINFO ZEBRA: Kernel: DYNAMIC DONE STATIC PROTO1 ZEBRA: Kernel: message seq 1342177280 ZEBRA: Kernel: pid 53, rtm_addrs 0x13a ZEBRA: ifm_read: sdl ifname (nil) ZEBRA: ifm_read: interface ng305 index 314 ZEBRA: Kernel: Len: 96 Type: RTM_IFINFO ZEBRA: Kernel: DYNAMIC STATIC PROTO1 ZEBRA: Kernel: message seq 1342177280 ZEBRA: Kernel: pid 53, rtm_addrs 0x13a ZEBRA: ifm_read: sdl ifname (nil) ZEBRA: ifm_read: interface ng305 index 314 ZEBRA: Kernel: Len: 236 Type: RTM_ADD ZEBRA: Kernel: UP HOST DONE LLINFO WASCLONED Конфиг зебры классически пустой. Вопрос: Как отучить Зебру следить за ng интерфейсами? PS. Я отдаю себе отчёт, что держать роутинг на сервере доступа нехорошо, но пока что завести отдельную машину под роутер не представляеться возможным. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexandr Ovcharenko Опубликовано 8 марта, 2009 · Жалоба А если попробовать указать в zebra.conf только те интерфейсы, которые зебра явно должна слушать? ! interface em0 ! interface em1 ! Если не поможет, то наверное придется разделять акцес и бордер. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[anp/hsw] Опубликовано 8 марта, 2009 · Жалоба ну, немного не совсем так. гдето так: passive-interface default interface XXX interface YYY Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
andryas Опубликовано 9 марта, 2009 · Жалоба А если попробовать указать в zebra.conf только те интерфейсы, которые зебра явно должна слушать?! interface em0 ! interface em1 ! Если не поможет, то наверное придется разделять акцес и бордер. Так и указано, однако Зебра слушает то что ей хочеться а не то что просят :( ну, немного не совсем так. гдето так: passive-interface default interface XXX interface YYY На такую команду обиделась: Error occured during reading below line. passive-interface default Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mikevlz Опубликовано 10 марта, 2009 · Жалоба эта команда работает только в RIP. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snark Опубликовано 12 марта, 2009 · Жалоба Конфиг зебры классически пустой.1. покажите конфиг2. каким именно протоколом пользуетесь? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
andryas Опубликовано 13 марта, 2009 · Жалоба 1. покажите конфиг interface int0 ! interface int1 ! interface rtr0 ! interface rtr1 ! interface lo0 ! ip forwarding ipv6 forwarding 2. каким именно протоколом пользуетесь?BGP only Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wawa Опубликовано 13 марта, 2009 (изменено) · Жалоба Имеется машина под Freebsd 7.1 с последней Quagg'ой (zebra bgp). mpd создает 1000 интерфейсов ngxxx и (предположительно) при поднятии/опускании каждого из них Zebra активно грузит процессор на протяжении 5-10 секунд (system 60%-80%). Поскольку события подключения происходят довольно часто (до нескольких раз в минуту) то в результате получаем весьма некислую нагрузку на машину. Убивание процесса zebra проблему перегрузки, естественно, снимает. ... Конфиг зебры классически пустой. Вопрос: Как отучить Зебру следить за ng интерфейсами? PS. Я отдаю себе отчёт, что держать роутинг на сервере доступа нехорошо, но пока что завести отдельную машину под роутер не представляеться возможным. В этой версии зебры есть топорная затычка на предмет вечной болячки Зебры -рекурсии - ВСЯ база маршрутов тупо перелопачивается по изменению статуса ЛЮБОГО интерфейсаДля исправления ситуации Вам будет достаточно (рекурсии ведь нет ?) вырезать тело из функции, дай Бог памяти, rib_update (она легко находится - там простой цикл) и пересобрать Зебру Изменено 13 марта, 2009 пользователем wawa Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
t0ly Опубликовано 13 марта, 2009 · Жалоба Имеется машина под Freebsd 7.1 с последней Quagg'ой (zebra bgp). mpd создает 1000 интерфейсов ngxxx и (предположительно) при поднятии/опускании каждого из них Zebra активно грузит процессор на протяжении 5-10 секунд (system 60%-80%). Поскольку события подключения происходят довольно часто (до нескольких раз в минуту) то в результате получаем весьма некислую нагрузку на машину. Убивание процесса zebra проблему перегрузки, естественно, снимает. ... Конфиг зебры классически пустой. Вопрос: Как отучить Зебру следить за ng интерфейсами? PS. Я отдаю себе отчёт, что держать роутинг на сервере доступа нехорошо, но пока что завести отдельную машину под роутер не представляеться возможным. В этой версии зебры есть топорная затычка на предмет вечной болячки Зебры -рекурсии - ВСЯ база маршрутов тупо перелопачивается по изменению статуса ЛЮБОГО интерфейсаДля исправления ситуации Вам будет достаточно (рекурсии ведь нет ?) вырезать тело из функции, дай Бог памяти, rib_update (она легко находится - там простой цикл) и пересобрать Зебру чесно говоря не нашёл тут номера версии, значит ли это что данное утверждение годится для всех версий quagga? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GateKeeper Опубликовано 13 марта, 2009 · Жалоба Версия косвенно указана через дату поста и версию фряхи, далее freshports.org/net/quagga и смотрим по дате корректировки порта. Версия, что ближайшая перед датой исходного поста - есть искомая. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...