L3 VRF: почему у роутера много таблиц

Один физический маршрутизатор оператора обслуживает десятки клиентов сразу. И у клиентов адреса пересекаются — у всех любимый 192.168.1.0/24. Как не смешать их в кашу? Ответ — VRF. Это одна из главных идей во всей операторской сети — и одна из первых вещей, о которые спотыкается каждый новичок в CLI.

Что узнаешь
Вспомни из прошлых уроков

Урок 1: приватные адреса (192.168.x.x, 10.x.x.x) повторяются в миллионах сетей — это нормально. Урок 2: роутер, получив кадр, вскрывает его и смотрит на IP получателя, чтобы решить «куда дальше». Сегодня разберёмся, где именно он ищет этот ответ — и что будет, если таких «где» несколько.

1. Ликбез: что такое таблица маршрутизации

Прежде чем говорить «у роутера много таблиц», нужно понять, что такое одна таблица. Таблица маршрутизации — это список правил вида «сеть такая-то → отправлять туда-то». Роутер сверяет IP получателя каждого пакета с этим списком и пересылает пакет в указанную сторону.

Router# show ip route C 10.0.0.0/30 is directly connected, Gig0/0 ← «подключено прямо ко мне» S 192.168.5.0/24 [1/0] via 10.0.0.2 ← статический: инженер прописал руками B 203.0.113.0/24 [20/0] via 10.0.0.2 ← пришёл по BGP (урок 4!) S* 0.0.0.0/0 [1/0] via 10.0.0.2 ← маршрут по умолчанию: «всё остальное — туда»

Читаем построчно, это важнее, чем кажется:

Если под адрес подходит несколько строк, побеждает самая точная (с самой длинной маской). Пакет на 192.168.5.7 подходит и под 192.168.5.0/24, и под 0.0.0.0/0 — выиграет /24, потому что он конкретнее. Это правило называется longest prefix match и работает вообще везде в сетях.

Аналогия

Таблица маршрутизации = указатели на перекрёстке

Роутер — перекрёсток с указателями: «в центр — налево», «в аэропорт — прямо», «все остальные направления — направо». Конкретный указатель («аэропорт») всегда важнее общего («все остальные») — это и есть longest prefix match. А default route — тот самый указатель «все остальные».

2. Проблема: один роутер — много клиентов

Теперь рабочая ситуация. Представь маршрутизатор оператора на районе (его называют PE — Provider Edge, «край сети провайдера»). К нему подключены три разных клиента:

Вспомни урок 1: все трое взяли приватные адреса, и никто ни с кем это не согласовывал — они имеют полное право. Но если у роутера одна таблица маршрутизации, случится катастрофа: три записи про один и тот же 192.168.1.0/24 с тремя разными «via». Роутер не может держать их одновременно — и пакеты банка поедут в аптеку. Для оператора это недопустимо: клиенты должны быть полностью изолированы и при этом иметь право на любые адреса.

Суть проблемы

Клиентам нельзя запретить использовать одинаковые (приватные) адреса — они об этом даже не знают. Значит, изоляцию должен обеспечить оператор на своём железе. Инструмент для этого — VRF.

3. Что такое VRF — «роутер внутри роутера»

VRF = Virtual Routing and Forwarding, «виртуальная маршрутизация». Идея гениально простая: разрешим одному физическому роутеру держать несколько независимых таблиц маршрутизации — по одной на каждого клиента. Каждая такая таблица и есть VRF.

Каждый порт (или подынтерфейс), к которому подключён клиент, «приписывается» к его VRF. Пакет, пришедший от банка, ищет маршрут только в таблице банка и физически не видит таблицы аптеки. Три клиента — три отдельных мирка на одном железе.

Один роутер PE, три изолированных VRF
Физический роутер PE (одна железка) VRF «Банк» своя таблица 192.168.1.0/24 🏦 VRF «Аптека» своя таблица 192.168.1.0/24 💊 VRF «Школа» своя таблица 192.168.1.0/24 🏫 Одинаковые адреса не конфликтуют — таблицы разные и не видят друг друга
Три клиента с одинаковой сетью 192.168.1.0/24 спокойно живут на одном роутере — каждый в своей VRF.
Аналогия

VRF = отдельные почтовые ящики в одном подъезде

Один подъезд (роутер), но у каждой квартиры (клиента) — свой закрытый почтовый ящик (VRF). В доме может быть три «квартиры №1» на разных этажах — письма не путаются, потому что у каждой свой ящик со своим ключом. Почтальон кладёт письмо только в «ящик того клиента, от кого пришёл человек». Соседний ящик он даже не открывает.

Два уточнения, которые часто упускают новички — а они важные:

4. Как порт «привязывается» к клиенту — и ловушка №1

Магия в том, что инженер явно говорит роутеру: «этот порт — клиента Банк, значит он в VRF BANK». На Cisco это выглядит так:

! создаём VRF для клиента "Банк" Router(config)# vrf definition BANK Router(config-vrf)# rd 65000:1 Router(config-vrf)# address-family ipv4 ! привязываем клиентский порт к этой VRF Router(config)# interface Gig0/1 Router(config-if)# vrf forwarding BANK # ← порт теперь «в VRF Банк» Router(config-if)# ip address 192.168.1.254 255.255.255.0

Всё. Теперь адрес 192.168.1.254 существует только внутри VRF BANK. В другой VRF можно назначить точно такой же адрес — и они не столкнутся.

Ловушка №1 — классика жанра

Команда vrf forwarding BANK стирает IP-адрес с интерфейса. Это защита от «переезда» адреса между мирами, но джун о ней не знает: добавил порт в VRF — и связь пропала, а адрес молча исчез из конфига. Правильный порядок: сначала привязка к VRF, потом настройка IP. Если делаешь на живом клиенте — заранее скопируй строку ip address …, чтобы вернуть её сразу после привязки. IOS даже предупредит: % Interface GigabitEthernet0/1 IPv4 disabled and address(es) removed due to enabling VRF BANK — научись замечать такие сообщения.

5. VRF-lite и MPLS L3VPN — два масштаба одной идеи

То, что мы настроили выше, работает внутри одного роутера. Такой режим называют VRF-lite: таблицы разделены локально, а если надо протянуть изоляцию до соседнего роутера — придётся тащить до него отдельный линк или VLAN на каждого клиента. Для пары железок — нормально; для сети оператора из сотен роутеров — кошмар.

🧩 VRF-lite

  • Изоляция внутри одной железки
  • Между роутерами — отдельный VLAN/линк на каждую VRF
  • Просто, но не масштабируется
  • Типично: корпоративные сети, стыки, лаборатории

🏗️ MPLS L3VPN (полная схема)

  • Изоляция через всю сеть оператора
  • Маршруты клиентов едут в общем «транспорте» (BGP + MPLS), помеченные ярлыками
  • Масштабируется на тысячи клиентов
  • Это и есть услуга IPVPN — урок 7

Чтобы «полная схема» работала, маршрутам клиентов нужны те самые ярлыки — RD и RT. Разберём их прямо сейчас на конкретных числах, а как они ездят по сети — увидишь в уроках про BGP и IPVPN.

6. RD и RT — что это, без страха

Когда клиент один — VRF достаточно. Но у клиента обычно много офисов в разных городах, и их надо соединить через сеть оператора, не смешав с другими клиентами. Здесь появляются два «ярлыка»: RD и RT.

RD — Route Distinguisher («различитель маршрутов»)
Приклеивается к маршруту, чтобы сделать одинаковые адреса разных клиентов уникальными внутри сети оператора. 192.168.1.0/24 банка становится 65000:1:192.168.1.0/24, а аптеки — 65000:2:192.168.1.0/24. Теперь это разные записи — не путаются.
RT — Route Target («метка принадлежности»)
Говорит, в какие VRF импортировать маршрут. Все офисы одного клиента получают одинаковый RT — и «узнают своих». Так три офиса банка видят друг друга, но не видят аптеку.

Как это выглядит в конфиге VRF (тот же BANK, теперь полностью):

Router(config)# vrf definition BANK Router(config-vrf)# rd 65000:1 # различитель: AS оператора : номер клиента Router(config-vrf)# address-family ipv4 Router(config-vrf-af)# route-target export 65000:1 # «подписываю свои маршруты ярлыком 65000:1» Router(config-vrf-af)# route-target import 65000:1 # «принимаю к себе маршруты с ярлыком 65000:1»
Как запомнить

RD — «сделать уникальным» (чтобы одинаковые адреса не слиплись). RT — «кому раздать» (какие офисы одного клиента должны увидеть маршрут). RD — про имя, RT — про членство. Детально свяжем всё в уроке про IPVPN, ведь именно там RD/RT и работают в полную силу вместе с BGP.

Кино по кадрам: как маршрут офиса A доезжает до офиса B

Сведём RD и RT воедино. Банк: офис A (сеть 192.168.1.0/24) подключён к PE1 в Новосибирске, офис B — к PE2 в Омске. Проследим путь маршрута (не пакета!) офиса A:

Кадр 1. Маршрут рождается в VRF на PE1
Порт офиса A привязан к VRF BANK → в таблице этой VRF появляется C 192.168.1.0/24. Пока это обычная запись, никаких ярлыков.
Кадр 2. На выходе из VRF маршрут «одевают»
PE1 передаёт его в BGP (специальную «семью» vpnv4). При этом приклеивается RD: маршрут становится 65000:1:192.168.1.0/24 — теперь он не спутается с аптечным 65000:2:192.168.1.0/24. И вешается ярлык RT export 65000:1 — «этот маршрут для тех, кто состоит в клубе банка».
Кадр 3. Путешествие через сеть оператора
BGP везёт «одетый» маршрут от PE1 ко всем PE (напрямую или через route reflector). Промежуточным роутерам всё равно, что внутри — они просто транспорт.
Кадр 4. PE2 смотрит на ярлык
У PE2 в конфиге VRF BANK написано RT import 65000:1. Ярлык совпал → PE2 «раздевает» маршрут (снимает RD) и кладёт чистый 192.168.1.0/24 в свою таблицу VRF BANK с пометкой B (пришёл по BGP). VRF PHARMACY на том же PE2 маршрут не увидит: её import 65000:2 не совпадает.
Кадр 5. Офис B видит офис A
CE офиса B получает маршрут от PE2 (или пользуется default) — и пакеты поехали. То самое B 10.20.0.0/24 via 10.255.0.7 из show ip route vrf — след этого кино.
Частая путаница

Маршрут выбирается по RT, а не по RD. RD только делает запись уникальной (и поэтому RD на разных PE может даже отличаться — работать будет). А вот если на двух PE не совпали RT import/export — офисы друг друга не увидят. 90% проблем «офис не видит офис» при живом BGP — именно расхождение RT. Проверка: show vrf detail BANK | include Export|Import на обоих PE.

Route leaking — дырка в изоляции по проекту

Изоляция VRF — благо, но иногда её надо нарочно продырявить. Классические случаи:

Всё это делается игрой с RT: маршрут можно экспортировать с несколькими ярлыками и импортировать чужие. Пример «общего сервиса»:

! VRF общих сервисов: экспортирует себя ярлыком 65000:999 Router(config)# vrf definition SHARED Router(config-vrf)# rd 65000:999 Router(config-vrf-af)# route-target export 65000:999 Router(config-vrf-af)# route-target import 65000:1 # впускаю маршруты банка Router(config-vrf-af)# route-target import 65000:2 # и аптеки — сервис должен уметь ответить ! VRF банка: дополнительно впускает общий сервис Router(config)# vrf definition BANK Router(config-vrf-af)# route-target export 65000:1 Router(config-vrf-af)# route-target import 65000:1 Router(config-vrf-af)# route-target import 65000:999 # ← дырка: вижу общие сервисы

Заметь: банк импортирует SHARED, аптека импортирует SHARED, но банк не импортирует 65000:2 — клиенты по-прежнему не видят друг друга. Изоляция — это не стена, а правила клуба: кого впускать, решает список import.

Осторожно

Leaking — инструмент с обратной стороной: одна лишняя строка route-target import — и клиент внезапно видит чужие сети (привет, инцидент безопасности). Правило профи: каждая «дырка» — задокументирована (зачем, кто согласовал), а адреса общих сервисов — из отдельного, ни с кем не пересекающегося блока.

Management VRF — отдельный мир для управления

Последний штрих к картине «у роутера много миров». Почти на любой современной железке порт управления (out-of-band management, обычно подписан MGMT/MEth) заводится в отдельную VRF управления. Зачем: чтобы доступ инженеров к железке жил отдельно от клиентского и транзитного трафика — даже если в основной сети шторм или ошибка маршрутизации, ты всё ещё можешь зайти на устройство. Практическое следствие, о которое спотыкаются все:

# пингуешь шлюз управления «просто так» — тишина, потому что он в VRF Mgmt-vrf: Router# ping 10.100.0.1 ..... Success rate is 0 percent Router# ping vrf Mgmt-vrf 10.100.0.1 !!!!! Success rate is 100 percent # то же для копирования образов, NTP, TFTP, SSH с железки: Router# copy tftp://10.100.0.9/ios.bin flash: … не забудь, что TFTP-сервер доступен через Mgmt-vrf!

7. Как смотреть VRF в CLI

Список всех VRF на роутере и какие порты к ним привязаны:

Router# show vrf Name Default RD Interfaces BANK 65000:1 Gig0/1 PHARMACY 65000:2 Gig0/2 SCHOOL 65000:3 Gig0/3

А вот ключевой приём: обычная show ip route покажет только глобальную таблицу и не покажет клиентские маршруты. Чтобы увидеть маршруты конкретного клиента, добавь vrf ИМЯ:

Router# show ip route vrf BANK C 192.168.1.0/24 is directly connected, Gig0/1 B 10.20.0.0/24 [200/0] via 10.255.0.7 ← другой офис банка через сеть оператора Router# show ip route vrf PHARMACY C 192.168.1.0/24 is directly connected, Gig0/2 ← тот же адрес, другая VRF

И это правило распространяется на все команды диагностики. Выучи этот набор — он твой хлеб:

Обычная командаВариант для клиента в VRFЧто делает
show ip routeshow ip route vrf BANKтаблица маршрутов клиента
ping 192.168.1.1ping vrf BANK 192.168.1.1пинг «изнутри мира» клиента
traceroute 10.20.0.5traceroute vrf BANK 10.20.0.5путь пакета в VRF клиента
show ip arpshow ip arp vrf BANKARP-таблица клиента (у каждой VRF — своя!)
telnet 192.168.1.10telnet 192.168.1.10 /vrf BANKподключение через мир клиента

На других вендорах меняются только слова — идея «каждая команда с именем мира клиента» железная. У Juniper VRF называется routing-instance, у Huawei — vpn-instance:

ЗадачаCisco IOSJuniper JunosHuawei VRP
список VRFshow vrfshow route instancedisplay ip vpn-instance
маршруты клиентаshow ip route vrf BANKshow route table BANK.inet.0display ip routing-table vpn-instance BANK
ARP клиентаshow ip arp vrf BANKshow arp … routing-instance BANKdisplay arp vpn-instance BANK
пинг из мира клиентаping vrf BANK 192.168.1.1ping 192.168.1.1 routing-instance BANKping -vpn-instance BANK 192.168.1.1
Ловушка №2 — самая частая ошибка джуна

«Маршрута нет, всё пропало!» — а ты просто смотрел show ip route без vrf. Или: «пинга нет!» — а ты пинговал из глобальной таблицы, где клиентского адреса и быть не должно. Работаешь с клиентом — каждая команда с vrf ИМЯ. Совет: первым делом всегда show vrf — узнай, как называется VRF клиента и какие порты в ней, и дальше подставляй это имя везде.

8. Собери сам: полное подключение нового клиента

Соберём всё в одну рабочую последовательность — так выглядит типовая заявка «подключить клиенту ООО Ромашка услугу IPVPN, стык 10.77.1.0/30, их AS 65001». Это конфиг, который ты будешь вводить (или проверять за автоматикой) десятки раз:

! Шаг 1. VRF клиента: RD + RT (по внутреннему стандарту оператора: 65000:номер_клиента) PE1(config)# vrf definition ROMASHKA PE1(config-vrf)# rd 65000:105 PE1(config-vrf)# address-family ipv4 PE1(config-vrf-af)# route-target export 65000:105 PE1(config-vrf-af)# route-target import 65000:105 ! Шаг 2. Порт в VRF (помни ловушку №1: сначала vrf, потом IP!) PE1(config)# interface Gig0/2.105 # сабинтерфейс: клиент приходит во VLAN 105 PE1(config-subif)# encapsulation dot1q 105 PE1(config-subif)# vrf forwarding ROMASHKA PE1(config-subif)# ip address 10.77.1.1 255.255.255.252 # наша сторона стыка /30 PE1(config-subif)# description CUST:ROMASHKA:IPVPN:ticket-48211 ! Шаг 3. BGP-сессия с CE клиента — внутри VRF (address-family ipv4 vrf!) PE1(config)# router bgp 65000 PE1(config-router)# address-family ipv4 vrf ROMASHKA PE1(config-router-af)# neighbor 10.77.1.2 remote-as 65001 PE1(config-router-af)# neighbor 10.77.1.2 activate PE1(config-router-af)# neighbor 10.77.1.2 maximum-prefix 100 # от «протечек» клиента

И чек-лист сдачи — прогоняется за минуту, экономит часы разборов потом:

Порт в нужной VRF?
show vrf ROMASHKA — интерфейс Gig0/2.105 в списке.
Стык живой?
ping vrf ROMASHKA 10.77.1.2 — CE отвечает; show ip arp vrf ROMASHKA — MAC соседа есть.
BGP поднялся?
show ip bgp vpnv4 vrf ROMASHKA summary — состояние = число принятых префиксов.
Маршруты клиента приехали и уехали?
show ip route vrf ROMASHKA — сети клиента с буквой B; на втором PE клиента — та же картина навстречу.
Сквозная проверка
ping vrf ROMASHKA <адрес LAN дальнего офиса> source Gig0/2.105 — и только после этого закрываем заявку.

9. Плейбук №1: «офис клиента не видит второй офис»

Типовая заявка: «у банка офис на Ленина не видит офис на Мира». Оба подключены к нашим PE. Порядок действий:

Найди VRF и порт клиента
show vrf | include BANK — имя VRF, RD и список интерфейсов. Сверь с документацией/биллингом, что порт тот.
Жив ли стык с ближним офисом?
ping vrf BANK 192.168.1.1 (адрес CE клиента). Нет пинга — проблема на местном стыке: порт, линк, ARP (show ip arp vrf BANK — есть ли MAC соседа?). Дальше — по плейбуку из урока 2.
Есть ли маршрут до дальнего офиса?
show ip route vrf BANK 10.20.0.0. Маршрут есть (буква B, via адрес удалённого PE) — транспорт знает дорогу, иди дальше. Маршрута нет — дальний офис не объявился: проблема на удалённом PE или в BGP между PE (урок 4), или RT не совпадают.
Проверь путь насквозь
ping vrf BANK 10.20.0.1 source Gig0/1 — пинг до дальнего офиса «от имени» ближнего. Проходит — сеть оператора в порядке, проблема внутри офиса клиента (их локальный файрвол/маршруты). Не проходит — смотри тот же путь с удалённого PE навстречу.
Сформулируй ответ клиенту фактами
«Стык ваш жив (пинг CE есть), маршрут вашего офиса Мира в VRF присутствует, сквозной пинг между офисами проходит с обоих направлений — проверьте, пожалуйста, настройки межсетевого экрана на стороне офиса». Факты вместо догадок — так говорит инженер.

10. Плейбук №2: «новый стык не заработал»

Вторая по частоте ситуация: подключение сделали, а связи нет. Проверяй в порядке «снизу вверх» — от порта к маршрутам:

Физика: порт up/up?
show ip interface brief | include Gig0/2. down/down — кабель/кросс; up/down — линк есть, протокол нет (VLAN? encapsulation?).
Порт в правильной VRF и с IP?
show run interface Gig0/2.105 — есть ли vrf forwarding и ip address (вспомни: привязка к VRF стирает адрес — может, его забыли вернуть?). Сверь VLAN в encapsulation dot1q с тем, что настроено на стороне доступа.
ARP: соседа видно?
show ip arp vrf ROMASHKA. Записи нет / Incomplete — L2-проблема: не тот VLAN по пути, CE выключен, у CE другой адрес. Запись есть — иди на L3.
BGP: сессия и префиксы
show ip bgp vpnv4 vrf ROMASHKA summary. Не Established — проверь, что сосед прописан в address-family ipv4 vrf (а не в глобальном BGP — типичная ошибка!), совпадает ли remote-as с данными заявки. Established, но 0 префиксов — CE ничего не анонсирует: вопрос на сторону клиента, но сформулируй фактами.
RT: маршруты доехали до других офисов?
На дальнем PE: show ip route vrf ROMASHKA | include 10.77. Пусто при живом BGP — сверь route-target export/import на обоих PE: опечатка в одной цифре RT — и «клуб» не собрался.

11. Мини-лаба: VRF есть даже в твоём Linux

Не удивляйся: VRF — не эксклюзив дорогих железок. Ядро Linux умеет VRF «из коробки», и это отличный способ пощупать концепцию (а заодно — мостик в DevOps, где такими вещами управляют контейнеры). Если есть под рукой любой Linux (WSL, виртуалка, сервер):

$ sudo ip link add vrf-bank type vrf table 100 # создать VRF с таблицей №100 $ sudo ip link set vrf-bank up $ ip vrf show Name Table vrf-bank 100 $ ip route show vrf vrf-bank # таблица клиента — пока пустая $ sudo ip link set eth1 master vrf-bank # привязать порт к VRF — как vrf forwarding! $ ping -I vrf-bank 192.168.1.1 # пинг «изнутри» VRF — как ping vrf

Смотри, как один в один повторяется логика Cisco: создать VRF → привязать интерфейс → все команды с указанием VRF. Понял концепцию один раз — узнаешь её на любом вендоре и в любом облаке.

12. Словарик урока

ТерминПо-английскиСмысл в одну строку
Таблица маршрутизацииrouting tableсписок правил «сеть → куда слать»
Точнейшее совпадениеlongest prefix matchиз подходящих маршрутов побеждает самый конкретный
Маршрут по умолчаниюdefault route, 0.0.0.0/0«всё остальное — туда»
Next-hopnext-hopсосед, которому отдаётся пакет на пути к цели
VRFVirtual Routing and Forwardingизолированная таблица маршрутизации внутри роутера
Глобальная таблицаGRT, global table«нулевая» таблица вне всех VRF — служебный мир оператора
VRF-liteVRF-liteVRF без MPLS-транспорта, изоляция локально на железке
PE / CEProvider/Customer Edgeпограничный роутер оператора / роутер клиента
RDRoute Distinguisherярлык уникальности: делает одинаковые сети разных клиентов разными
RTRoute Targetярлык членства: в какие VRF импортировать маршрут
Перетекание маршрутовroute leakingнамеренный обмен маршрутами между VRF через игру с RT (общие сервисы, hub-and-spoke)
VRF управленияmanagement VRFотдельный мир для доступа инженеров к железке — живёт, даже когда основная сеть болеет
Routing-instance / vpn-instanceто же, что VRF, на языке Juniper / Huawei
Сабинтерфейсsubinterfaceлогический интерфейс на VLAN внутри физического порта: один порт — много клиентов
Таблица маршрутизации — список правил «сеть → куда слать», побеждает точнейшее совпадение. VRF — это несколько независимых таблиц на одном роутере, по одной на клиента: изоляция + право клиентов на одинаковые адреса. Порт привязывается командой vrf forwarding ИМЯ (осторожно: она стирает IP с порта!). Все команды диагностики — с vrf ИМЯ. RD делает адреса уникальными, RT — раздаёт их «своим» (импорт решается по RT, не по RD!). Route leaking — намеренная игра с RT для общих сервисов и hub-and-spoke. Управление железкой живёт в отдельной management VRF. VRF-lite — локально; с MPLS/BGP — это услуга IPVPN.

13. Задачи — реши сам

Задача 1. На PE три VRF: BANK, PHARMACY, SCHOOL — у всех сеть 192.168.1.0/24. Инженер дал ping 192.168.1.1 и получил тишину. Клиент банка ругается. Что сделал инженер не так?

Пинговал из глобальной таблицы, где этой сети нет вообще. Надо: ping vrf BANK 192.168.1.1. Без vrf — команды работают в «нулевом мире».

Задача 2. Джун добавил на рабочий порт клиента команду vrf forwarding BANK. Клиент сразу упал. Порт «up/up». Что произошло?

Команда привязки к VRF стёрла IP-адрес с интерфейса. Физика в порядке (up/up), но L3 больше нет. Вернуть ip address … — и связь восстановится.

Задача 3. Зачем нужен RD, если уже есть VRF?

VRF изолирует локально, на одном роутере. Но когда маршруты клиента едут через сеть оператора к другим офисам, RD делает одинаковые адреса разных клиентов уникальными, чтобы они не слиплись в общем транспорте (BGP).

Задача 4. Офис A банка видит офис B, а офис B офис A — нет. На PE офиса B в VRF BANK маршрута до сети офиса A нет. Куда смотреть?

Маршрут офиса A не доехал до PE офиса B. Проверить: объявил ли CE офиса A свои сети (BGP-сессия с PE), совпадают ли RT import/export на обоих PE (маршрут с «чужим» ярлыком не импортируется), жива ли BGP-связность между PE. Детали — в следующих уроках.

Задача 5. В чём разница VRF-lite и MPLS L3VPN — одним предложением?

VRF-lite изолирует таблицы внутри одной железки (между роутерами — отдельные линки/VLAN на клиента), а MPLS L3VPN переносит изоляцию через всю сеть оператора в общем транспорте с ярлыками RD/RT — это масштабируется на тысячи клиентов.

Задача 6. На PE1 у банка RD 65000:1, на PE2 кто-то настроил RD 65000:11, но RT везде 65000:1. Офисы увидят друг друга?

Да. Импорт решается по RT, а они совпадают. RD лишь делает записи уникальными в транспорте — он может отличаться между PE (хотя по стандарту оператора обычно совпадает, чтобы не путать людей). А вот если бы разошлись RT — связи бы не было.

Задача 7. Клиентам А и Б нужно дать доступ к серверу мониторинга оператора 10.99.0.5, не открывая их друг другу. Опиши схему RT.

Заводим VRF SHARED (например, RT export 65000:999), где живёт сервер. В VRF обоих клиентов добавляем route-target import 65000:999, а в SHARED — import RT обоих клиентов (65000:1 и 65000:2), чтобы ответы находили дорогу. Клиенты друг друга не импортируют — изоляция между ними сохраняется.

Задача 8. Ты завёл BGP-соседа клиента командой neighbor 10.77.1.2 remote-as 65001 прямо в router bgp 65000 (не в address-family vrf). Что будет?

Роутер будет пытаться поднять сессию в глобальной таблице, где стыковой сети нет (она в VRF) — сессия повиснет в Active. Соседей клиентских стыков объявляют внутри address-family ipv4 vrf ИМЯ. Это одна из самых частых ошибок при подключении.

Задача 9. С железки не копируется образ с TFTP-сервера 10.100.0.9, хотя «пинг с ноутбука до него есть». В чём, скорее всего, дело?

Сервер доступен через management VRF, а copy/tftp по умолчанию идёт из глобальной таблицы. Проверить: ping vrf Mgmt-vrf 10.100.0.9, и указать VRF в команде копирования (или настроить source-interface из mgmt VRF).

Три клиента используют сеть 192.168.1.0/24 на одном роутере. Почему нет конфликта?

Потому что каждый клиент — в своей VRF, а значит в отдельной таблице маршрутизации. Одинаковые адреса физически не встречаются в одной таблице.

Ты ввёл show ip route и не видишь клиентскую сеть. Что не так?

Клиентские маршруты в VRF. Нужно show ip route vrf ИМЯ_КЛИЕНТА.

У каждой VRF своя ARP-таблица — почему это логично?

Потому что в разных VRF могут жить одинаковые IP с разными MAC. Общая ARP-таблица смешала бы их. Изоляция полная: маршруты, ARP, пинги — всё «в мире клиента».

Мост к следующему уроку

В плейбуке выше маршрут другого офиса появился в VRF с буквой B — его принёс протокол BGP. Как роутеры вообще «рассказывают» друг другу о сетях, что такое автономная система и почему BGP держит на себе весь интернет — следующий урок. Он же — самый частый вопрос на собеседовании инженера СПД.