gul_tech: (Default)
[personal profile] gul_tech
В JunOs не так давно (9.4 или 9.5 - лень смотреть) появилась dynamic-db.
Фича интересная и полезная - в первую очередь для prefix-lists. Смысл в том, что некоторые части конфигурации, относящиеся только к bgp (prefix-lists и policy-statements) можно выносить в отдельный конфиг, а из основного туда делать ссылки. Это сильно уменьшает размер основного конфига, ускоряет коммит, не засоряет rollback history автообновлениями фильтров. У нас prefix-lists - это около 90% объёма конфига, коммит вместо пары минут стал проходить за ~20 секунд.
Однако, как оказалось, пока там не всё гладко. :-(
Первое, с чем столкнулся - нет возможности посмотреть этот самый dynamic config, кроме как войти туда и сказать show, что очень неудобно для скриптов, и требует привилегий изменения конфигурации, когда нужен только просмотр. Пришлось сделать op script show-dyn-conf.slax, показывающий dynamic config (правда, проблему с привилегиями это не решает).
А примерно через месяц использования dynamic-db у него без каких-либо видимых причин сорвало крышу (MX480, 9.5R2.7). :-(

[edit dynamic]
gul# run show ?
Possible completions:
  \zп*\|п*192.121.086.000/024  Show multicast information
   √п*(              Show services information
   ╟п*-(              Show Distance Vector Multicast Routing Protocol information
  21.86.0/24           Show Open Shortest Path First version 3 information
  [Enter]              Execute this command
  ancp                 Show ancp information
[...]
[edit dynamic]
gul# show
## Last changed: 2009-11-11 09:02:54 EET
policy-options {

error: session failure: unexpected termination
error: remote side unexpectedly closed connection
Connection to quoll.itsinternet.net closed.

Nov 13 16:32:52   /kernel: BAD_PAGE_FAULT: pid 49853 (mgd), uid 0: pc 0x8109a21 got a read fault at 0xbad006bc, x86 fault flags = 0x4
Nov 13 16:32:52   /kernel: Trapframe Register Dump:
Nov 13 16:32:52   /kernel:      eax: baf4bd2e   ecx: bad006bc   edx: 08315890   ebx: 00000000
Nov 13 16:32:52   /kernel:      esp: bfbe5270   ebp: bfbe52c8   esi: 00000000   edi: baf4bdf0
Nov 13 16:32:52   /kernel:      eip: 08109a21   eflags: 00010206
Nov 13 16:32:52   /kernel:      cs: 0033        ss: 003b        ds: bfbd003b    es: 831003b
Nov 13 16:32:52   /kernel:      fs: 832003b     trapno: 0000000c        err: 00000004
Nov 13 16:32:52   /kernel: Page table info for PC address 0x8109a21: PDE = 0x2c460067, PTE = 60c31425
Nov 13 16:32:52   /kernel: Dumping 16 bytes starting at PC address 0x8109a21:
Nov 13 16:32:52   /kernel:     3a 01 75 1e 84 c0 74 15 8d 41 01 42 83 ec 08 50

Вылечилось удалением файла /var/run/db/juniper.dyn.
Пришлось отказаться от использования dynamic-db. По крайней мере, пока. :-(


UPD: По просьбам коллег выкладываю скрипт, который апдейтит префикс-листы на cisco и juniper. Вот. Он писан для себя, а не как продукт, пригодный для использования другими, поэтому с диагностикой не всё хорошо, с документацией ещё хуже, но можно попытаться запустить (предварительно заглянув внутрь - как минимум, там всякие умолчания прописаны в начале).

Date: 2010-09-10 06:48 pm (UTC)
From: [identity profile] gul-kiev.livejournal.com
Пока нет.
Просматриваю release notes, ничего про исправление ошибок в dynamic-db не нашёл. Фича хоть и приятная, но для нас не необходимая, поэтому пока страдаем. :) Наверное, через какое-то время сделаю вторую попытку, как на 10.3 перейдём (необходимость, вызванная новыми модулями).

Date: 2010-10-28 06:32 am (UTC)
From: [identity profile] graykite.livejournal.com
А если не секрет, то что используете сейчас для автоматизации обновления префикслистов? Если бы с ссылками где прочитать, было бы вообще здорово.

Date: 2010-10-28 06:50 am (UTC)
From: [identity profile] gul-kiev.livejournal.com
bgpq3 (http://snar.spb.ru/prog/bgpq3/bgpq3-0.1.7.html) с самописной перловой обвязкой, которая отслеживает изменения, при их наличии меняет конфиг и мягко передёргивает сессию. Если эта обвязка интересна, могу поделиться.

Date: 2010-10-28 06:57 am (UTC)
From: [identity profile] graykite.livejournal.com
Да интересна. Я впринципе написал на шелле скрипт, который с помощью RtConfig строил мне куски конфига с префикс-листами, но как это класть в джунипер и коммитить, как то для меня не очевидно пока. Хотя вот предложили вроде бы довольно простой вариант с ssh. Просто интересно как это делают другие операторы.

Date: 2012-06-17 01:24 pm (UTC)
From: [identity profile] gul-tech.livejournal.com
Да, через ssh, juniper авторизует по keypair. Можно залить новый префикс-лист и потом обновить его при помощи "load replace", bgpq сразу в таком формате умеет его выдавать.
Скрипт выложил в апдейте поста.

Date: 2011-08-03 08:32 am (UTC)
From: [identity profile] mikkotlv.livejournal.com
поделитесь плз

Date: 2012-06-17 01:22 pm (UTC)
From: [identity profile] gul-tech.livejournal.com
Вряд ли ещё актуально, но выложил в посте (см. update).

Date: 2011-03-25 08:48 am (UTC)
From: [identity profile] lesnix.livejournal.com
кейс конечно же не открывали ?

Date: 2011-03-25 09:06 am (UTC)
From: [identity profile] gul-kiev.livejournal.com
Нет. Во-первых, это железка без саппорта, а во-вторых, у меня негативный опыт общения с индусами из juniper support по кейсу, так что, если без этого можно обойтись, мне проще не общаться с ними.

Date: 2011-03-25 09:34 am (UTC)
From: [identity profile] lesnix.livejournal.com
Понимаю вас.
Однако, в этом случае ожидать исправления багов в dynamic-db немного наивно.

Date: 2011-03-25 09:58 am (UTC)
From: [identity profile] gul-kiev.livejournal.com
Тем не менее, многие баги и в junos, и в cisco ios (как и в любом другом софте) оказываются исправленными в очередной версии, хотя я на них кейсы не открывал. Значит, скорее всего, открыл кто-то другой, для кого эта ошибка более критична, или у кого больше времени на общение с juniper support, или лучше взаимопонимание с ними.

Я понимаю, что это не социально-активная позиция, что качество продукта во многом зависит именно от активности пользователей в обратной связи, но фактически, если заводить кейсы на каждый обнаруженный баг (особенно на EX), нужно брать отдельного человека на зарплату с ненормированным рабочим днём специально для общения с JTAC. Это финансово невыгодно. К тому же, в большинстве случаев есть workaround.

Например, после изменения полисера на EX деактивировать/активировать фильтр на интерфейсе нетрудно, иначе случайные полисеры будут применены к случайным клиентам (закономерности не обнаружил), а открывать кейс, объяснять проблему у добиваться её воспроизведения у них в лабе - это можно очень много сил и времени потратить. Быстрее написать commit script, автоматизирующий передёргивание фильтра.

Profile

gul_tech: (Default)
gul_tech

December 2020

S M T W T F S
  12345
6789101112
13141516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 16th, 2026 04:05 am
Powered by Dreamwidth Studios