4.-routing-protocols.md
1 # Протоколы маршрутизации 2 3 Итак, мы имеем два типа сетей и стыки между ними: 4 5 * Клиентская IP-сеть; 6 * Магистральная сеть провайдера с запущенным на ней MPLS. 7 8 Граница этих сетей находится на PE. То есть одной своей половиной он уже клиентский, а другой — провайдерский. Не зря бытует народная мудрость: Как PE ни настраивай, он всё равно на клиентов смотрит. 9 MPLS настраивается только на магистральных интерфейсах. 10 11  12 13 Напоминаю, речь о L3VPN. А тут нужно заботиться о IP-связности. Причём теперь у нас куча ограничений. Разберёмся, какие протоколы на каких участках нам пригодятся. 14 15 **Во-первых**, нужно обеспечить базовую IP-связность внутри магистральной сети провайдера. Чтобы были известны все Loopback-адреса, линковые сети, служебные префиксы, возможно, какие-то выходы вовне. 16 Для этого запускается IGP \(ISIS, OSPF\). 17 Уже поверх связной сети поднимается MPLS. 18 _Так мы обеспечили работоспособность магистральной сети_. 19 20 **Во-вторых**, у клиента в филиалах может стоять не по одному маршрутизатору, а какие-никакие сети. Эти сети тоже надо маршрутизировать внутри себя как минимум. 21 Очевидно, что внутри своей собственной сети клиент волен распространять маршрутную информацию, как ему угодно. Мы как провайдер на это повлиять не можем, да нам и без разницы. 22 _Так обеспечивается передача маршрутов в пределах сетей клиентов_. 23 24 **В-третьих**, клиенту нужно как-то сообщать своим маршруты провайдеру. На стыке CE-PE клиенту и провайдеру уже нужно договариваться о том, какой протокол будет использоваться. 25 Хотя, едва ли у клиента какой-то свой самописный протокол IGP. Наверняка, это OSPF/ISIS/RIP. Поэтому обычно провайдер идёт навстречу и выбирает тот, который удобен клиенту. 26 Тут надо понимать, что вот этот протокол взаимодействия с клиентом работает в VPN и никак не пересекается с IGP самого провайдера. Это разные независимые процессы. 27 Зачастую на этом стыке работает BGP, поскольку позволяет гибко фильтровать префиксы по различным атрибутам. 28 _Так провайдер получает маршруты клиентов_. 29 30 **До сих пор всё было понятно.** 31 32 _Даже если вам так не кажется._ 33 34 **В-четвёртых**, и это самое интересное — осталось передать маршруты одного филиала другому через магистральную сеть. При этом их надо по пути не потерять, не перепутать с чужими, доставить в целости и сохранности. Тут нам поможет расширение протокола BGP — **MBGP — Multiprotocol BGP** \(Часто его называют MP-BGP\). О нём мы сейчас и поговорим. 35 36 Но сначала посмотрите, что и где работает: 37 38  39 40 > Может, на примере из реальной жизни будет немного понятнее. 41 > Допустим, вы живёте в посёлке Ола и решили отдохнуть в Шэньчжэне. 42 > 1\) На своих двоих, на машине или на такси вы добираетесь до автовокзала посёлка Ола \(IGP внутри сети\). 43 > 2\) Садитесь на автобус, и он довозит вас до Магадана \(IGP/BGP с провайдером\). 44 > 3\) В Магадане вам туроператор выдаёт ваши загранпаспорта, билеты и ваучер \(внутренняя сервисная метка\). Теперь вы стали членом определённого рейса \(VPN\). 45 > 4\) В аэропорту всем без разницы, в какую гостиницу вы в итоге едете — их задача доставить вас в Шэньчжэнь \(BGP\), а для этого нужно посадить вас на правильный самолёт согласно вашему ваучеру \(назначить внешнюю транспортную метку — PUSH Label — и отправить в правильный интерфейс\) 46 > Итак, вы сели в самолёт. Этот самолёт является вашей внешней транспортной меткой, а ваучер — сервисной. Самолёт доставит вас до следующего хопа, а ваучер до гостиницы. 47 > 5\) Самолёт летит из Магадана в Шэньчжэнь не напрямую, а с пересадками. Сначала вы вышли в Москве, пересели в новый самолёт до Пекина. Потом в Пекине вы пересели на самолёт уже до Шэньчжэня. \(Так произошла коммутация по меткам — SWAP Label\). При этом ваучер — сервисная метка по-прежнему у вас в кармане. 48 > 6\) В Шэньчжэне вы вышли из самолёта \(POP Label\) и уже тут проверят ваш ваучер — куда вас собственно нужно везти \(в какой VPN\). 49 > 7\) Вас садят в автобус до вашей гостиницы \(IGP/BGP с провайдером\). 50 > 8\) Во дворе гостиницы вы самостоятельно находите дорогу до номера, через ресепшн \(IGP внутри сети\). 51 > 52 > Итак, аэропорт Магадана — это PE/Ingress LSR, аэропорт Шэньчжэня — это другой PE/Egress LSR, аэропорт Москвы — P/Intermediate LSR. 53 > _Особенно интересно будет выглядеть PHP в этой фантазии_.