andryas Posted March 4, 2009 Posted March 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. Я отдаю себе отчёт, что держать роутинг на сервере доступа нехорошо, но пока что завести отдельную машину под роутер не представляеться возможным. Вставить ник Quote
Alexandr Ovcharenko Posted March 8, 2009 Posted March 8, 2009 А если попробовать указать в zebra.conf только те интерфейсы, которые зебра явно должна слушать? ! interface em0 ! interface em1 ! Если не поможет, то наверное придется разделять акцес и бордер. Вставить ник Quote
[anp/hsw] Posted March 8, 2009 Posted March 8, 2009 ну, немного не совсем так. гдето так: passive-interface default interface XXX interface YYY Вставить ник Quote
andryas Posted March 9, 2009 Author Posted March 9, 2009 А если попробовать указать в zebra.conf только те интерфейсы, которые зебра явно должна слушать?! interface em0 ! interface em1 ! Если не поможет, то наверное придется разделять акцес и бордер. Так и указано, однако Зебра слушает то что ей хочеться а не то что просят :( ну, немного не совсем так. гдето так: passive-interface default interface XXX interface YYY На такую команду обиделась: Error occured during reading below line. passive-interface default Вставить ник Quote
mikevlz Posted March 10, 2009 Posted March 10, 2009 эта команда работает только в RIP. Вставить ник Quote
snark Posted March 12, 2009 Posted March 12, 2009 Конфиг зебры классически пустой.1. покажите конфиг2. каким именно протоколом пользуетесь? Вставить ник Quote
andryas Posted March 13, 2009 Author Posted March 13, 2009 1. покажите конфиг interface int0 ! interface int1 ! interface rtr0 ! interface rtr1 ! interface lo0 ! ip forwarding ipv6 forwarding 2. каким именно протоколом пользуетесь?BGP only Вставить ник Quote
wawa Posted March 13, 2009 Posted March 13, 2009 (edited) Имеется машина под Freebsd 7.1 с последней Quagg'ой (zebra bgp). mpd создает 1000 интерфейсов ngxxx и (предположительно) при поднятии/опускании каждого из них Zebra активно грузит процессор на протяжении 5-10 секунд (system 60%-80%). Поскольку события подключения происходят довольно часто (до нескольких раз в минуту) то в результате получаем весьма некислую нагрузку на машину. Убивание процесса zebra проблему перегрузки, естественно, снимает. ... Конфиг зебры классически пустой. Вопрос: Как отучить Зебру следить за ng интерфейсами? PS. Я отдаю себе отчёт, что держать роутинг на сервере доступа нехорошо, но пока что завести отдельную машину под роутер не представляеться возможным. В этой версии зебры есть топорная затычка на предмет вечной болячки Зебры -рекурсии - ВСЯ база маршрутов тупо перелопачивается по изменению статуса ЛЮБОГО интерфейсаДля исправления ситуации Вам будет достаточно (рекурсии ведь нет ?) вырезать тело из функции, дай Бог памяти, rib_update (она легко находится - там простой цикл) и пересобрать Зебру Edited March 13, 2009 by wawa Вставить ник Quote
t0ly Posted March 13, 2009 Posted March 13, 2009 Имеется машина под Freebsd 7.1 с последней Quagg'ой (zebra bgp). mpd создает 1000 интерфейсов ngxxx и (предположительно) при поднятии/опускании каждого из них Zebra активно грузит процессор на протяжении 5-10 секунд (system 60%-80%). Поскольку события подключения происходят довольно часто (до нескольких раз в минуту) то в результате получаем весьма некислую нагрузку на машину. Убивание процесса zebra проблему перегрузки, естественно, снимает. ... Конфиг зебры классически пустой. Вопрос: Как отучить Зебру следить за ng интерфейсами? PS. Я отдаю себе отчёт, что держать роутинг на сервере доступа нехорошо, но пока что завести отдельную машину под роутер не представляеться возможным. В этой версии зебры есть топорная затычка на предмет вечной болячки Зебры -рекурсии - ВСЯ база маршрутов тупо перелопачивается по изменению статуса ЛЮБОГО интерфейсаДля исправления ситуации Вам будет достаточно (рекурсии ведь нет ?) вырезать тело из функции, дай Бог памяти, rib_update (она легко находится - там простой цикл) и пересобрать Зебру чесно говоря не нашёл тут номера версии, значит ли это что данное утверждение годится для всех версий quagga? Вставить ник Quote
GateKeeper Posted March 13, 2009 Posted March 13, 2009 Версия косвенно указана через дату поста и версию фряхи, далее freshports.org/net/quagga и смотрим по дате корректировки порта. Версия, что ближайшая перед датой исходного поста - есть искомая. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.