Daniel Ginsburg ([info]dbg) wrote,
@ 2007-11-04 21:23:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Мне тут на днях хороший человек [info]lesham подогнал свежачок (за что ему отдельное спасибо) - материалы с конференции MPLS 2007: http://www.isocore.com/mpls2007/cd/MPLS2007Program.htm.

Я пока еще не все там прочитал и обдумал, поэтому остановлюсь только на нескольких презентациях.

Некоторое время назад я писал про draft-ietf-mpls-ldp-interarea. С тех пор в этой области был некоторый прогресс. Циска выступила с контр-драфтом. Идея там очень простая: агрегирующий ABR посылает только одну метку на агрегированный префикс, но при этом не использует PHP, а деагрегирующие метки, необходимые для построения непрерывных LSP, вычисляются некоторым общим для ABR и ingress PE алгоритмом, при этом метка агрегированного префикса и деагрегирующая метка стекируются на пути от ingress PE до агрегирующего ABR и, соотвественно, никому по пути от ingress PE до агрегирующего ABR деагрегирующая метка неизвестна. Симпатично. Проблема решена?

Презентация George Swallow (автора draft-swallow-mpls-aggregated-fec) как раз посвящена проблемам, возникающим при таком подходе, и развитию его идеи с тем чтобы избежать этих проблем.

В чем засада при чистом draft-swallow-mpls-aggregated-fec? В BGP next hop tracking. Если мы все сагрегируем: и next-hop адреса, и метки, соотвествующие этим адресам, то единственным способом определить падение дальнего PE будет BGP hold timer - а это очень и очень небыстро.

Как объехать? Swallow предлагает подход "Summarized route, detailed reachability" (SRDR). Т.е. IGP у нас будет агрегировать маршрут, но при этом сообщать достижимость отдельных адресов внутри агрегированного префикса, анонсируя битовый вектор размером 2^(32 - длина агрегированного префикса). Поскольку драфта по SRDR еще нет (по крайней мере я не нашел), можно только предполагать, как именно это будет реализованно. Логично предположить, что для OSPF это будет LSA type 11 (inter-area opaque), а для IS-IS - просто отдельный TLV.

Джунипер тоже не стоял на месте, и Kireeti Kompella в своей презентации рассказал про развитие draft-ietf-mpls-ldp-interarea. У draft-ietf-mpls-ldp-interarea нет проблемы с NHT, как у draft-swallow-mpls-aggregated-fec - в случае draft-ietf-mpls-ldp-interarea падение egress PE можно определить по пропаданию его LDP метки, но есть другая проблема - там уменьшается объем IGP, но объем LDP-сигнализации и объем LIB/LFIB остается тем же.

Что предлагается? Hierarchical LDP. В Label Mapping Message добавить TLV того же самого формата, что и сам Label Mapping Message. Внешний label mapping соотвествует агрегированному префиксу, а метки во вложенных деагрегированным. Метки во внешнем Label Mapping Message и внутреннем стекируются. Соотвественно, этот внутренний label mapping нужен только ingress PE и, естественно, самому ABR. Тоже красиво. На это опять таки нет драфта, поэтому о некоторых деталях нужно догадываться.

Теперь надо решить, какая схема лучше. Я, надо сказать, в задумчивости. "Все такое вкусное". Обе решают проблему масштабирования без привлечения схемы с сомнительной управляемостью, которую я в подробностях описывал в предыдущем посте на эту тему.

Не претендуя на полноту, попробую сравнить.

1) Interop с существующим положением вещей.
Цискина схема:
Потребуется включение opaque LSA в сетях с OSPF. Поскольку речь о LDP сетях, то это новая фича - такие сети раньше не зависили от opaque LSA. А поскольку речь идет об inter-area opaque, то обязательно найдется какой-нибудь говновендор, у которого это сломано - в нынешних сетях inter-area opaque нет, соотвественно, кое-кто мог и забить. В случае IS-IS надо организовывать leaking SRDR TLVs в level-1 области. Тут больших засад не предвидится, L1/L2 роутеры все равно будут обязаны поддерживать SRDR, а остальные уже давно научились правильно обходиться с unknown TLV в IS-IS'ных LSP.
Джуниперская схема:
LDP предусматривает расширяемость и транспорт ранее неизвестных TLV с помощью механизма U- и F-битов. Конечно, всегда может найтись дятел, который сломает и это, но вероятность мала, ибо это U- и F-биты - интегральная часть спецификации LDP.

2) Потенциальные проблемы с размерами протокольных сообщений.
Цискина схема:
Максимальный размер OSPF LSA - 64K. Для достаточно длинных агрегированных префиксов SRDR бит-вектора будут не очень длинными, все может и поместиться. А если мы таки доживем до IPv6? Бит-вектор длиной 2^64 бит, например, - это слишком. Можно избежать этих проблем аккуратным назначением адресов лупбекам роутеров и выключением SRDR для агрегированных префиксов, соотвествующим адресам линков. Для IS-IS почти все то же самое, но там есть механизмы борьбы с очень длинными LSP.
Джуниперская схема:
Максимальная длина LDP Label Mapping Message - тоже 64K, но здесь не надо перечислять все адреса в агрегируемом диапазоне даже в виде битового вектора. Пусть средняя длина обычного Label Mapping Message - байтов 40. Это с запасом: 8 байт на заголовок, 16 (или 12? не помню) - на FEC, 8 на метку. Ну, с IPv6 длина FEC TLV будет побольше. Т.е. даже если в области 1000 роутеров, все поместится.

3) Общая "правильность".
Цискина схема:
Мысль о том, что routing и reachability - разные вещи, очень правильная. И, в принципе, SRDR механизм может найти и другие применения. Самое простое - обычный IP-роутинг без какого-либо MPLS с агрегацией на границах областей и BGP next-hop tracking. Если подумать, можно придумать еще. Т.е. полезность этой схемы не исчерпывается решением проблемы масштабирования LDP.
Джуниперская схема:
Здесь хорошо то, что вся информация в одном месте - в LDP. Нет сценариев, когда LDP говорит одно, а SRDR механизм говорит другое. Плюс LSA/LSP фладятся периодически, а LDP сообщения ходят по TCP и при liberal retention живут, пока живет adjacency. Цискина схема выглядит несколько более хрупкой.

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

Немного в сторону. Несколько слов в презентации Luca Martini пересекаются с этой темой, хотя презентация совсем о другом. "Keep the MPLS implementation simple, PW is the access, L3VPN in the edge/core for services." В этом есть резон не только с точки зрения сложности сети, о чем сама презентация, но и с точки зрения масштабируемости IGP и LDP. Если выделить домены, из которых выносить трафик псевдопроводами до узлов, на которых живут реальные сервисы, но эти домены вполне могут иметь совершенно отдельные IGP и LDP.

А сама по себе презентация Martini тоже интересная. Имеет прямое отношение к хайпу о PBT. Советую прочитать.

Все на сегодня. Выговорился. Пойду пивка приму.



(Post a new comment)


[info]nealar
2007-11-04 08:13 pm UTC (link)
> routing и reachability - разные вещи
Не понимаю. Если reachability наличествует, то должен существовать routing, который это подтверждает.

(Reply to this) (Thread)


[info]dbg
2007-11-04 08:23 pm UTC (link)
Роутинг - знание куда посылать пакет, чтобы он [возможно] дошел, а reachability - знание, что роутинг существует, но каков он не важно. А может быть routing без информации о reachability. Например, посмотреть на предельный случай агрегации - default route. Он все дает для роутинга, но о reachability ничего не говорит.

(Reply to this) (Parent)(Thread)


[info]nealar
2007-11-04 09:14 pm UTC (link)
> может быть routing без информации о reachability
Это понятно. И что до reachable hostа может быть несколько маршрутов - тоже. А наоборот: reachability без знания маршрута - странная вещь. Примерно как программа без знания, что она делает.

(Reply to this) (Parent)(Thread)


[info]dbg
2007-11-04 09:49 pm UTC (link)
Ну, как чистое доказательство существования. Иногда нам важно, что объект существует, а как именно его построить - не очень. Так и тут. Для некоторых случаев нам интересна специфичная информация о reachability некоторого адреса, а его routing может быть покрывается каким-то неспецифичным маршрутом.

(Reply to this) (Parent)


[info]ex_sighup150
2007-11-04 09:33 pm UTC (link)
Мне нравится читать твои посты про Это.
Я не понимаю ни слова, но звучит круто.

(Reply to this) (Thread)


[info]dbg
2007-11-04 09:59 pm UTC (link)
Но должно внушать оптимизм, не так ли? :)

(Reply to this) (Parent)(Thread)


[info]ex_sighup150
2007-11-04 10:13 pm UTC (link)
Ещё как. На душе становится тепло и спокойно от того, что кто-то там думает про меня и про мои пакетики с pr0n'ом -- чтоб им удобно и быстро маршрутизировалось и всё такое. Приятно :)

(Reply to this) (Parent)(Thread)


[info]dbg
2007-11-04 10:16 pm UTC (link)
Да, мы здесь живем для того, чтобы маршутизировать порнуху, и we take pride in it. :)

(Reply to this) (Parent)(Thread)


[info]lesham
2007-11-05 09:23 pm UTC (link)
и с каждым годом все более качественную =)

(Reply to this) (Parent)


[info]iskatel
2007-11-04 09:46 pm UTC (link)
очень интересно. Хотя, честно, еще не все понял и пережевал.

(Reply to this) (Thread)


[info]dbg
2007-11-04 09:53 pm UTC (link)
Еще никто не понял и не пережевал. George и Kireeti доложили вещи, на которые даже драфты еще не выпущены. Т.е. голые идеи. Поэтому сейчас только размышления на уровне общей архитектуры и того, как оно впишется в существующую реальность. Да и то очень по-скромному, ибо IETF community это только предстоит проработать.

(Reply to this) (Parent)


[info]as8350
2007-11-05 02:21 pm UTC (link)
пиши ещё, у тебя явный дар.
пора колумнистом становиться.
издание подберешь сам.

(Reply to this)


[info]ivanvr
2007-11-05 02:51 pm UTC (link)
спасибо!

(Reply to this)


[info]lesham
2007-11-05 11:06 pm UTC (link)
все же надо как-то думать о безMPLSных братьях

насчет аккуратного назначения адресов - вопрос дизайна. Маску естественно надо как-то определять, задавать границы каким-нибудь Access-list'ом

вопрос интероп - скорее вопрос о том, как мы с тобой недавно убедились, поддерживается ли оборудование или нет

(Reply to this) (Thread)


[info]dbg
2007-11-06 09:30 am UTC (link)
Я понимаю твой патриотизм :)

> насчет аккуратного назначения адресов - вопрос дизайна.

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

> вопрос интероп - скорее вопрос о том, как мы с тобой недавно убедились, поддерживается ли оборудование или нет

Не, интероп с железкой, на которую вендор забил - это вообще 3.14здец. А может получиться по-другому. Железка поддерживается, вендор говорит, что все будет, но поддержка interarea opaque, например, стоит в roadmap'е на 2117 год. Тоже ничего хорошего.

А вообще, оба подхода примерно равны. Те пункты, по которым я сравнивал, - это все второй порядок малости. Единственное, что меня немного волнует, это два источника информации в цискиной схеме. В принципе, ничего страшного в этом нет - у нас их и так больше одного, но есть у меня какое-то смутное ощущение, что тут возможны неожиданные эффекты с рассогласованием и порядком сигнализации. Хотя, возможно, меня просто глючит. Подождем драфта, посмотрим на детали.

(Reply to this) (Parent)(Thread)


[info]lesham
2007-11-06 10:04 am UTC (link)
я так и думал, что ты патриотизм приплетешь =)

Но все же когда мы говорим про доступность BGP нейбора, причем здесь LDP то, зачем рассмтривать частности?

А потом картина с L3VPN'ами поверх L2TPv3, IGP FRR и в дополнение к этому SRDR - красота! =)

(Reply to this) (Parent)(Thread)


[info]dbg
2007-11-06 10:13 am UTC (link)
Насчет патриотизма это была шутка, как ты, несомненно, понял :)

> А потом картина с L3VPN'ами поверх L2TPv3, IGP FRR и в дополнение к этому SRDR - красота!

Вот это правильный аргумент, годный.

(Reply to this) (Parent)


[info]romik_g
2007-11-06 04:40 am UTC (link)
> А поскольку речь идет об inter-area opaque, то обязательно
> найдется какой-нибудь говновендор, у которого это сломано - в
> нынешних сетях inter-area opaque нет, соотвественно, кое-кто
> мог и забить.
Думаю, что в крупных сетях, где применяется MPLS, и где возможно будет применяться такая схема, стоит оборудование отнюдь не говновендоров. Так что, мне кажется, на несовместимость можно и забить. Пусть меерзкие производители сами вымрут.

(Reply to this) (Thread)


[info]dbg
2007-11-06 09:17 am UTC (link)
(голосом робота Вертера) Ха-ха-ха.

(Reply to this) (Parent)(Thread)


[info]romik_g
2007-11-06 08:30 pm UTC (link)
В смысле все не так волшебно и я наивен, как ребенок?

(Reply to this) (Parent)(Thread)


[info]dbg
2007-11-06 08:36 pm UTC (link)
Ну, я не знаю, насколько именно ты наивен, но могу сказать, что в жизни есть много странного, и все далеко не так волшебно, как хотелось бы.

(Reply to this) (Parent)


[info]visir
2007-11-06 09:29 am UTC (link)
Хм, P2MP LSP -- уже реальность ? А у циски ?

(Reply to this) (Thread)


[info]dbg
2007-11-06 09:31 am UTC (link)
У ждунипера. Реальность. А циска все грозится.

(Reply to this) (Parent)(Thread)


[info]lesham
2007-11-06 10:05 am UTC (link)
ты много знаешь сетей, которые только на J построены?

(Reply to this) (Parent)(Thread)


[info]visir
2007-11-06 10:16 am UTC (link)
особенно весело будет, если у "C" и "J" формировать P2MP LSP будут несовместимые схемы сигнализации...

(Reply to this) (Parent)


[info]dbg
2007-11-06 10:19 am UTC (link)
Ну, так ведь никто не заставляет же делать только p2mp везде. По ядру протащить p2mp - это правильный ход, по краям pim, что тоже верно на сегодняшний день. А куда оно повернет завтра, поживем - увидим.

(Reply to this) (Parent)(Thread)


[info]lesham
2007-11-06 12:00 pm UTC (link)
p2mp туннели в обход C железок? ;)

(Reply to this) (Parent)(Thread)


[info]dbg
2007-11-06 12:15 pm UTC (link)
Сетей вообще, которые только на J, не существует. А вот ядер, которые только на J, в природе есть.

(Reply to this) (Parent)(Thread)


[info]lesham
2007-11-06 06:01 pm UTC (link)
давай так, ты много операторов знаешь где PTMP задеплоен?

(Reply to this) (Parent)(Thread)


[info]dbg
2007-11-06 06:59 pm UTC (link)
Ну, по крайней мере знаю нескольких, которые активно к этому готовились. За прогрессом я не следил, но к этому времени должны были уже задеплоить. Надо, кстати, навести справки, в каком состоянии у них это сейчас. Спасибо, что напомнил.

(Reply to this) (Parent)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…