Page 2 of 2

Re: zebra ospf cpu load

Posted: 09 Nov 2017, 13:28
by brodayga
tugik wrote: 20 Sep 2017, 17:42 Вообще зависит, дело в том что когда у Вас очень часто клиенты отключаются/подключаются происходит постоянное изменения топологии и это приводит к лавинному обновлению всей таблицы. И естественно в этот момент zebre сносит крышу от такого.
Конечно переход c quagga ospf на quagga bgp уменьшает нагрузку, но все же, лучше перейти на bird bgp который создает меньшую нагрузку на сервер.
Спасибо за ответ хоть и немного запоздалый. Честно сказать на bird так и не перешёл, на сервере до сих пор крутится quagga нагрузка от зебры всё та же и она все также не критична - нет ядер загруженных более 50 %.
Говоря что от количества маршрутов не зависит я имел ввиду , что если не будет изменний количества интерфейсов нагрузки тоже не будет. Мне привели пример с 7000+ маршрутов, на бордере где нет дин интерфейсов, и сказали всё ок. Я дал ответ что если фейковых ( отключающихся и подкл сессий) нет то тоже всё ок.
В том то и дело что "quagga ospf на quagga bgp" ни на грам не снизил нагрузку. На тот момент было интересно почему нагрузка от OSPF и BGP одинакова. Объясненить почему ospf грузит я мог-- из-за специфики самого протокола. Как я помню, проблема в том что зебра перебирает все интерфейсы и это не зависит от используемого протокола. Видимо архитектура у них такая. С тех пор к вопросу не возвращался.

Re: zebra ospf cpu load

Posted: 10 Nov 2017, 17:24
by tugik
Так я же так и написал "очень часто клиенты отключаются/подключаются происходит постоянное изменения топологии"
К примеру если бгп с залитым фулом где ~700к маршрутов так не подгружает сервер как в этом случае.

Re: zebra ospf cpu load

Posted: 17 Nov 2017, 11:23
by brodayga
Решил переделать на bird + bgp.
Нагрузка снизилась где то в 2 раза от демона маршрутизации . Но есть пару вопросов, с bird знаком около часа и видимо что то не понимаю.
Везде пишут что маршруты "импортируют из кернел" в случае с ппп интерфейсами, но я так и не понял как это сделать без

Code: Select all

protocol device и protocol direct
Конструкция ниже работает. Но может есть более правильный вариант. В этом варианте из кернел вообще можно ничего не брать. значит я что то не так сделал.
Спойлер
protocol direct {
interface "ppp*"; # Restrict network interfaces it works with
import all;
}

protocol kernel {
learn; # Learn all alien routes from the kernel
scan time 20; # Scan kernel routing table every 20 seconds
import all; # Default is import all
export none; # Default is export none
}

protocol device {
scan time 1800;
}

protocol bgp {
local as 65000;
neighbor 10.115.120.9 as 65000;
hold time 180;
startup hold time 240;
connect retry time 120;
next hop self; # Disable next hop processing and always advertise our local address as nexthop
source address 10.115.120.10; # What local address we use for the TCP connection
export filter {
if net ~ [ y.x.w.0/21+] then {
accept;
}
else reject;
};
}

Re: zebra ospf cpu load

Posted: 13 Nov 2018, 12:13
by _longhorn_
Подниму старую тему.
Аналогичная ситуация. На сервере с accel используем bird для динамической маршрутизации. При сканировании интерфейсов в ЧНН нагрузка от bird может доходить до 100% CPU. На НАГе читал, что можно импортировать маршруты из ядра. Если убрать из bird.conf секцию protocol device, то bird не видит ни одного интерфейса. Если же оставить protocol device, но убрать хотя-бы protocol direct, то так же bird не видит ни одного маршрута из сисиемной таблицы маршрутизации и ничего не анонсит бордеру.
Может кто-нибудь сталкивался с подобным и знает как правильно сконфигурировать bird?

Re: zebra ospf cpu load

Posted: 18 Mar 2021, 12:25
by roysbike
+1. Тему подниму . На одном сервере pppoe и ipoe(qinq), так вот на pppoe кто ,не всегда анонсит маршрут. Хз в чем дело ,может не успевает проскатить всех, так как 16к интерфейсов qinq

Re: zebra ospf cpu load

Posted: 21 Mar 2021, 00:24
by dimka88
Какие протоколы сконфигурированы в bird? Пробовали сделать unit-cache? Нас стенде можно через BNGBlaster воспроизводить подобные нагрузки.