2010/10/2 Valentin Nechayev
Fri, Oct 01, 2010 at 09:41:30, unisol wrote about "Re: [uanog] BIRD":
Когда Quagga принимает большое кол-во bgp updates и пересчитывает таблицы, то она "иногда" не успевает обрабатывать keepavile и дропает bgp session; в результате, опять пересчет таблиц, опять проигнорированный keepalive и получился "эффект домино". Разработчики пытаются сейчас сделать отдельный thread, который будет обрабатывать Подумалось: "ВО ТОРМОЗА. А низзя разбить операцию нехерового пересчёта на последовательность меньших операций фиксированной длины (может даже настраиваемой), с обработкой всякой мутотени в промежутках, а то и halt/sleep/etc (с целью уменьшить тепловыделение - иногда может не лишним оказаться... Ваще оно как начнёт впендюривать маршруты - то тоже нефигово нагружает проц...)?"
Видимо, что-то мешает. Вообще это стандартное изменение, но его надо качественно реализовать. Например, что делать, если придёт ещё группа апдейтов? Как остановить пересчёт, если что-то принципиально изменилось (порвался peer)? Всё это стандартные проблемы программирования, но для конкретной команды они могут оказаться новыми и неожиданными.
Особенно если граждане сначала программируют а уже потом думают, что в результате получилось. Из хороших статей на тему как это все можно построить: http://www.usenix.org/event/nsdi05/tech/full_papers/handley/handley_html/
У Cisco, кстати, это явно решено давным-давно (пересчёт сильно пригружает, но не парализует).
http://www.ciscotechnologyinc.com/en/US/tech/tk365/technologies_tech_note091... У вендора ну букву J есть хороший курс, называется AJNR. Там неплохо рассказывают как их реализация роутинговых протоколов (того же BGP) отличается от вендора на букву C. Btw, раз пошли разговоры за протоколы - с OpenFlow на неньке ктото играет? А с поделками от http://netfpga.org/ ? -- Regards, Volodymyr.