Jump to content

Recommended Posts

Posted
Судя по упавшему с 60 гигабит до 25 трафику на М9 проблема с такой вот ошибкой массовая

 

 

 Assertion `len < str_size' failed in file bgp_aspath.c, line 619, function aspath_make_str_count

 

http://groups.google.ru/group/fido7.ru.uni...d7a4f3ce0?hl=ru

запредельная по безответственности ошибка

патчится вот так

собственно значимую часть патча я выдели болдом:

 

aurora:/usr/home/wawa# cat /usr/ports/net/quagga/files/patch-WAWA-AS4fix*

--- bgpd/bgp_aspath.h.orig 2008-09-05 18:27:26.000000000 +0400

+++ bgpd/bgp_aspath.h 2009-04-30 13:54:00.000000000 +0400

@@ -60,7 +60,7 @@ struct aspath

char *str;

};

 

-#define ASPATH_STR_DEFAULT_LEN 32

+#define ASPATH_STR_DEFAULT_LEN 512

 

/* Prototypes. */

extern void aspath_init (void);

--- bgpd/bgp_aspath.c.orig 2008-09-05 18:27:26.000000000 +0400

+++ bgpd/bgp_aspath.c 2009-04-30 13:50:17.000000000 +0400

@@ -540,16 +540,14 @@ aspath_make_str_count (struct aspath *as

 

seg = as->segments;

 

- /* ASN takes 5 chars at least, plus seperator, see below.

+ /* ASN takes 10 chars at least, plus seperator, see below.

* If there is one differing segment type, we need an additional

* 2 chars for segment delimiters, and the final '\0'.

* Hopefully this is large enough to avoid hitting the realloc

* code below for most common sequences.

*

- * With 32bit ASNs, this range will increase, but only worth changing

- * once there are significant numbers of ASN >= 100000

*/

-#define ASN_STR_LEN (5 + 1)

+#define ASN_STR_LEN (10 + 1)

str_size = MAX (assegment_count_asns (seg, 0) * ASN_STR_LEN + 2 + 1,

ASPATH_STR_DEFAULT_LEN);

str_buf = XMALLOC (MTYPE_AS_STR, str_size);

@@ -574,16 +572,6 @@ aspath_make_str_count (struct aspath *as

XFREE (MTYPE_AS_STR, str_buf);

return NULL;

}

-

- /* We might need to increase str_buf, particularly if path has

- * differing segments types, our initial guesstimate above will

- * have been wrong. need 5 chars for ASN, a seperator each and

- * potentially two segment delimiters, plus a space between each

- * segment and trailing zero.

- *

- * This may need to revised if/when significant numbers of

- * ASNs >= 100000 are assigned and in-use on the internet...

- */

#define SEGMENT_STR_LEN(X) (((X)->length * ASN_STR_LEN) + 2 + 1 + 1)

if ( (len + SEGMENT_STR_LEN(seg)) > str_size)

{

 

Posted

ээээ объясните плиз что это за проблема и зачем надо патчить квагу

дело в том что пару дней дней назад поднял квагу в виртуалке - для теста - и наблюдал падение демона bgpd

с записью в логе аналогичной ошибки

Posted

ээээ объясните плиз что это за проблема и зачем надо патчить квагу

Патчить надо: 32bit ASN это больше, чем 5 цифр. Так что при появлении номеров более 99999 происходит "наезд" на другие данные со всеми вытекающими последствиями.

Posted

А собственно, если я full view не беру, оно мне срочно надо ? или подождать обновления в портах ?

Posted

ну тем неменее, давеча на Msk-Ix в те 6 тысяч префиксов, что там есть, закралась такая весчь.... поэтому если от апстрима отдается не только дефолт, а и что-то еще, то надо бы. причем сами такие префиксы отфильтрвать вы не сможете, оно развалится сразу по приходу.

Posted

если фильтрует аплинк и сливает тебе исключительно дефолт - то тебе будет по барабану эта проблема, можно дождаться апдейта в портах.

Posted (edited)

Подобная проблема возникает естественно при принятии fullview с апстримов. Причем штатными средствами куаги, например отрезать префикс-листами все кроме default, не дало результата, bgpd все также уходит в ступор.

 

4 варианта выхода из данной ситуации:

1. Купить cisco/juniper в место тазика с куагой ($$$$$$$$).

2. Даунгрейд до версии quagga-0.98.6. (тут все понятно)

3. Попросить апстримы отдавать Вам не fullview, а только default. (Соответственно при нескольких апстримах про балансировку забудьте. Разве что если есть сессия в IX, но не факт что и рано или поздно оттуда придут префиксы, которые завалят Вашу куагу)

4. Пропатчить куагу патчем.

Edited by Keyptor
Posted
1. Купить cisco/juniper в место тазика с куагой ($$$$$$$$).

хотелось бы спросить многоуважаемого и всепросвещённого товарища wawa, к тому что они когда то давно там в Яндексе приняли концепцию использовать только OpenSource решения,

в том числе чтобы не тратить много денег и не зависеть от злобных вендоров и их проприетарщины,

как вы кушаете такие ошибки?(*материтесь пятиэтажно в слух при всех?*) :)

проводите ли анализ кода который скачиваете бесплатно?

Posted
Уважаемые коллеги,

 

в прошедшие выходные была обнаружена проблема с программным обеспечением Route Server (работающем под управлением Quagga daemon), связанная с некорректной обработкой новых ASN32.

Был выпущен патч, который был наложен на Route Serverа MSK-IX и проблема была устранена. Обращаем внимание участников MSK-IX, кто столкнулся с подобной ошибкой, на необходимость обновления ПО quagga с целью ее устранения.

 

Для дополнительной информации вы можете ознакомиться со списком рассылки

Quagga:

 

http://lists.quagga.net/pipermail/quagga-d...ril/006537.html

 

После обновления система ведет себя стабильно и проблем более не наблюдается.

Приносим извинения за доставленные неудобства, связанными с перебоями в работе услуги Route Server на MSK-IX.

 

---

С уважением.

Технический директор MSK-IX

Ильин Александр.

Posted (edited)
1. Купить cisco/juniper в место тазика с куагой ($$$$$$$$).

хотелось бы спросить многоуважаемого и всепросвещённого товарища wawa, к тому что они когда то давно там в Яндексе приняли концепцию использовать только OpenSource решения,

в том числе чтобы не тратить много денег и не зависеть от злобных вендоров и их проприетарщины,

как вы кушаете такие ошибки?(*материтесь пятиэтажно в слух при всех?*) :)

проводите ли анализ кода который скачиваете бесплатно?

Я давно заметил, что неинформированные люди почему-то более склонны к агрессии.

Поэтому информирую (долой агрессию !):

 

Словили проблему 30 апреля утром.

Отлов и диагностика проблемы заняла минут пять

Выпуск горячего патча примерно столько же (чтоб не падало).

Еще через полчаса был выпущен более осмысленный (разобрались почему падало и исправили нетопорно).

 

Основую проблему составила переналивка большого парка маршрутизаторов. Как легко дагадаться задним умом тут полезно было соблюдать очередность

Так или иначе, к ночи 30 апреля почти все было готово (что-то по мелочи конечно недоглядели).

 

Вот планово перепуститься не успели. Факт. И закоммитить патчи по-нормальному тоже не успели. Чтобы меньше народу пострадало.

 

Тем не менее, когда бабахнуло по полной программе (в выходной день) неперепущенные Квагги попадали, но отжались уже пропатченным кодом.

 

А про Жунипер Вы у японцев спросите. Про Циску тут тоже многим есть что рассказать.

Впрочем, кто сказал что в Яндексе этих зверьков не водится ?

Edited by wawa

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.