Перейти к содержимому
Калькуляторы

Судя по упавшему с 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Судя по упавшему с 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)

{

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тоже сегодня нарвались, пролежали около часа пока нарыли как с этим бороться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да заплаток на данный момент уже наклепали штук 5 помоему и все разные, поидее то что с гита более правильно на мой взгляд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Угу.

Вот собственно и ветка в рассылке с несколькими вариациями патчей:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насколько я понимаю это все патчи для 0.99.11 А где взять для 0.99.10 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сегодня также влетели :(

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот так райп борется с фрей!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот так райп борется с фрей!!!!

А причем тут *bsd ? там же свой и вполне адекватный openbgpd есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дефолт не спасет. bgpd валится еще на этапе приема апдейтов, до их фильтрации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

centos 5.3. Quagga 0.98.6. Работает, не валится... Соседняя сеть - упала вчера ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

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

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

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

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

Изменено пользователем Keyptor

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

А что собсно понятно?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

в прошедшие выходные была обнаружена проблема с программным обеспечением 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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

 

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

 

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

 

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

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

Изменено пользователем wawa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.