Погодин Евгений — ИТ Заметки
🌐Cisco Обновлено 13.10.2026

Cisco с нуля 05. Маршрутизация между VLAN: router-on-a-stick и SVI

Note

Команды сверены с официальной документацией Cisco (руководства по настройке Cisco IOS XE 17.x для Catalyst 9000 и маршрутизаторов ISR; отличия классической IOS 15.x отмечены в тексте). Перед работой на боевом оборудовании проверьте их на тестовом стенде или сделайте резервную копию.

В прошлой статье мы разделили сеть на VLAN: OFFICE (10), GUEST (20) и MGMT (99). Теперь у них есть одна неприятная особенность. Каждый VLAN — это отдельный широковещательный домен уровня L2, и кадры из одного VLAN не попадут в другой, как бы вы ни старались. Компьютер из OFFICE не увидит принтер в GUEST, а администратор из MGMT не достучится до пользователей. Чтобы VLAN могли общаться, между ними нужен маршрутизатор, то есть устройство уровня L3.

В этой статье разберём два способа связать VLAN между собой через L3-устройство:

  • router-on-a-stick («маршрутизатор на палочке») — один физический кабель между SW1 и R1, по которому идёт трафик всех VLAN, а R1 маршрутизирует его на подинтерфейсах;
  • SVI (Switch Virtual Interface) — маршрутизация прямо на L3-коммутаторе, без захода на маршрутизатор.

В итоге вы настроите шлюзы для VLAN 10, 20 и 99 на R1, проверите связность между VLAN и поймёте, когда лучше выбрать второй вариант.

Что понадобится

  • Маршрутизатор R1 и коммутатор SW1 из нашей топологии, соединённые кабелем GigabitEthernet0/0/1 (R1) — GigabitEthernet1/0/24 (SW1).
  • Доступ к консоли обоих устройств. Это важно: если вы ошибётесь в настройке trunk, по сети вы к устройству уже не подключитесь. Как подключаться, описано в первой статье серии.
  • Готовые VLAN 10, 20, 99 и trunk-порт на SW1 из статьи 04, включая управляющий интерфейс Vlan99 с адресом 192.168.99.2 и ip default-gateway. Команды из той статьи здесь не повторяются: в шаге 1 вы только проверите, что всё на месте.
  • Два-три тестовых компьютера (или виртуальные машины) для проверки: по одному в VLAN 10 и 20 и ПК администратора в VLAN 99.
  • Понимание базовой IP-адресации из статьи 03.

Напомню адреса из нашей схемы:

VLAN Название Сеть Шлюз
10 OFFICE 192.168.10.0/24 192.168.10.1
20 GUEST 192.168.20.0/24 192.168.20.1
99 MGMT 192.168.99.0/24 192.168.99.1 (R1), SW1 — 192.168.99.2

Native VLAN на trunk — 999 (неиспользуемый «BLACKHOLE»).

Tip

Если имена портов у вас другие, сверьтесь с show ip interface brief; подробности — в статье 03.

Как это работает: шлюз для каждого VLAN

Хост из VLAN 10 (192.168.10.15) хочет отправить пакет хосту из VLAN 20 (192.168.20.15). Он видит, что адрес назначения не из его сети, и отдаёт пакет шлюзу по умолчанию — адресу 192.168.10.1. Шлюз смотрит в таблицу маршрутов, находит напрямую подключённую сеть 192.168.20.0/24 и отправляет пакет туда уже как L3-устройство.

Поэтому в любой схеме маршрутизации между VLAN у каждого VLAN должен быть свой IP-адрес на устройстве, которое выполняет маршрутизацию. Различаются схемы лишь тем, где живут эти адреса:

  • в router-on-a-stick — на подинтерфейсах R1;
  • в схеме с SVI — на виртуальных интерфейсах Vlan10, Vlan20 и так далее самого коммутатора.

Вариант 1. Router-on-a-stick на R1

Идея такая: SW1 собирает все VLAN в один trunk-линк к R1. На маршрутизаторе физический порт делится на логические подинтерфейсы (subinterfaces) — по одному на каждый VLAN. Подинтерфейс получает пакеты со своим тегом 802.1Q, маршрутизирует их и отправляет обратно в тот же кабель уже с другим тегом.

Это стандартное решение, когда коммутатор умеет только L2 (как наш SW1), а маршрутизатор уже есть.

Шаг 1. Проверьте, что из статьи 04 настроено на SW1

Этот шаг ничего не меняет: VLAN и trunk-порт GigabitEthernet1/0/24 вы уже настроили в статье 04, повторять эти команды не нужно. Достаточно убедиться, что всё на месте. Выполните на SW1:

enable
show vlan brief
show interfaces trunk

Что должно получиться:

  • show vlan brief показывает VLAN 10 (OFFICE), 20 (GUEST), 99 (MGMT) и 999 (BLACKHOLE);
  • show interfaces trunk показывает порт Gi1/0/24 в состоянии trunking, native vlan 999 и разрешённые VLAN 10,20,99.

Пример вывода (формат зависит от модели и версии):

SW1#show interfaces trunk

Port        Mode         Encapsulation  Status        Native vlan
Gi1/0/24    on           802.1q         trunking      999

Port        Vlans allowed on trunk
Gi1/0/24    10,20,99

Port        Vlans allowed and active in management domain
Gi1/0/24    10,20,99

Port        Vlans in spanning tree forwarding state and not pruned
Gi1/0/24    10,20,99

Если VLAN нет в третьей таблице, значит, он не создан или не активен на SW1 (проверьте show vlan brief). Если он есть в третьей, но пропал из четвёртой, порт не находится в состоянии forwarding по STP (протокол остовного дерева) или VLAN отсечён функцией pruning.

Если порта Gi1/0/24 в выводе нет, возможно, линк ещё не поднят: порт GigabitEthernet0/0/1 на R1 включается только в шаге 2. Вернитесь к этой проверке после шага 2. Если порта нет и после него, проверьте кабель и настройки порта командой show running-config interface GigabitEthernet1/0/24. Если VLAN или trunk не настроены вовсе, вернитесь к статье 04.

Шаг 2. Настройте физический порт и подинтерфейсы на R1

Warning

Ошибка в настройке подинтерфейсов или trunk может оборвать вашу сессию, если вы подключены к R1 по сети. Лучше выполнять эти команды с консоли. Если работаете по сети, поставьте страховку reload in 15.

  1. Сначала сохраните рабочую конфигурацию, настроенную в прошлых статьях: copy running-config startup-config. После перезагрузки устройство вернётся именно к ней.
  2. Поставьте страховку reload in 15; на вопрос о сохранении конфигурации ответьте no. Если связь пропала, просто дождитесь перезагрузки. Таймер отсчитывается от момента команды: если работа затянулась, отмените его и поставьте заново.
  3. После успешной проверки выполните reload cancel, затем copy running-config startup-config (шаг 6). Поэтому в блоках ниже сохранения нет.

Страховка ставится отдельной командой до основного блока:

enable
reload in 15

Порядок на маршрутизаторе такой:

  1. Физический порт включается (no shutdown), но IP-адрес на нём не задаётся. Он служит лишь «трубой».
  2. Для каждого VLAN создаётся подинтерфейс GigabitEthernet0/0/1.<номер>. Номер подинтерфейса — просто его имя, но принято делать его равным номеру VLAN, чтобы не запутаться.
  3. На подинтерфейсе сначала задаётся инкапсуляция (encapsulation dot1Q <VLAN>), и только потом IP-адрес.
enable
configure terminal
interface GigabitEthernet0/0/1
 description LAN trunk to SW1
 no ip address
 no shutdown
interface GigabitEthernet0/0/1.10
 description OFFICE
 encapsulation dot1Q 10
 ip address 192.168.10.1 255.255.255.0
interface GigabitEthernet0/0/1.20
 description GUEST
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0
interface GigabitEthernet0/0/1.99
 description MGMT
 encapsulation dot1Q 99
 ip address 192.168.99.1 255.255.255.0
end

Сохранение здесь намеренно отсутствует: сохраните конфигурацию в шаге 6, когда убедитесь, что всё работает.

Разберём ключевые строки:

  • no shutdown на физическом порту нужен обязательно. Пока он выключен, все подинтерфейсы тоже лежат.
  • encapsulation dot1Q 10 означает: этот подинтерфейс принимает кадры с тегом VLAN 10 и отправляет их с тем же тегом. Регистр записи (dot1Q или dot1q) не важен.
  • ip address 192.168.10.1 255.255.255.0 — тот самый шлюз для VLAN 10.
  • На маршрутизаторе IOS XE IP-маршрутизация включена по умолчанию, отдельная команда ip routing не нужна.

Important

Для каждого подинтерфейса encapsulation задаётся один раз и с уникальным номером VLAN. Если у вас есть подинтерфейс, обслуживающий именно native VLAN коммутатора, у него нужно добавить ключевое слово native (encapsulation dot1Q 1 native), а на одном физическом порту такой подинтерфейс может быть только один.

Про native VLAN 999 на R1

Напомню: native VLAN — единственная VLAN, кадры которой идут по trunk без тега 802.1Q.

В нашей схеме native VLAN — 999, и ею никто не пользуется. Поэтому подинтерфейс для VLAN 999 на R1 мы не создаём: все рабочие VLAN идут с тегами, а нетегированного рабочего трафика в схеме нет. Нетегированные кадры нам не нужны: VLAN 999 не входит в список разрешённых на trunk (статья 04), поэтому SW1 не передаёт трафик этой VLAN в сторону R1.

В статье 04 мы упоминали, что native 999 «зададим в статье 05». Уточнение: на маршрутизаторе для него ничего настраивать не нужно, достаточно того, что native VLAN 999 задана на стороне SW1 (switchport trunk native vlan 999, команда из статьи 04).

Главное правило, на котором спотыкаются чаще всего: если на trunk используется native-подинтерфейс, его VLAN должна совпадать с native VLAN на другой стороне. В документации Cisco по маршрутизации между VLAN разные native-параметры на маршрутизаторе и коммутаторе названы распространённой ошибкой, а в руководстве по trunk сказано, что при несовпадении native VLAN на концах trunk могут возникнуть петли STP.

Если же вы оставили native VLAN по умолчанию (1) и хотите, чтобы маршрутизатор принимал нетегированный трафик, подинтерфейс для неё должен быть создан со словом native:

enable
configure terminal
interface GigabitEthernet0/0/1.1
 encapsulation dot1Q 1 native
 ip address <АДРЕС> <МАСКА>
end

(Это шаблон: адрес и маску подставьте из той сети, которую обслуживает native VLAN. В нашей схеме VLAN 1 не используется.)

Подинтерфейс с native нужен только если вы хотите принимать нетегированный трафик; в нашей схеме он не нужен.

Для управления лучше не использовать VLAN 1 — именно поэтому у нас отдельный MGMT (VLAN 99) с тегом.

Шаг 3. Проверьте R1

enable
show ip interface brief
show ip route
show interfaces GigabitEthernet0/0/1.10

show ip interface brief должна показать три подинтерфейса с адресами и состоянием up/up.

Пример вывода (названия интерфейсов длинные — колонка Interface может быть шире):

R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0/0       203.0.113.2     YES manual up                    up
GigabitEthernet0/0/1       unassigned      YES unset  up                    up
GigabitEthernet0/0/1.10    192.168.10.1    YES manual up                    up
GigabitEthernet0/0/1.20    192.168.20.1    YES manual up                    up
GigabitEthernet0/0/1.99    192.168.99.1    YES manual up                    up

В show ip route для каждого VLAN должна появиться пара строк: C (подключённая сеть) и L (локальный адрес самого маршрутизатора).

Пример вывода (заголовок с кодами маршрутов опущен):

R1#show ip route
...
      192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.10.0/24 is directly connected, GigabitEthernet0/0/1.10
L        192.168.10.1/32 is directly connected, GigabitEthernet0/0/1.10
      192.168.20.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.20.0/24 is directly connected, GigabitEthernet0/0/1.20
L        192.168.20.1/32 is directly connected, GigabitEthernet0/0/1.20
      192.168.99.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.99.0/24 is directly connected, GigabitEthernet0/0/1.99
L        192.168.99.1/32 is directly connected, GigabitEthernet0/0/1.99

Команда show interfaces GigabitEthernet0/0/1.10 в числе прочего покажет строку Encapsulation 802.1Q Virtual LAN, Vlan ID 10. — это подтверждает, что подинтерфейс привязан к правильному VLAN. Командой show vlans можно увидеть, какие VLAN обслуживает маршрутизатор.

Шаг 4. Настройте клиентов и проверьте связность

Шлюзом по умолчанию клиента должен быть IP-адрес подинтерфейса его собственного VLAN:

Клиент в VLAN Шлюз
10 (OFFICE) 192.168.10.1
20 (GUEST) 192.168.20.1
99 (MGMT) 192.168.99.1

Автоматическая раздача адресов и шлюза по DHCP — тема статьи 07. Пока DHCP не настроен, для проверки задайте адреса на тестовых компьютерах вручную. Берите их из резервного диапазона .1–.20 каждой сети: в статье 07 он исключается из выдачи, и статические адреса не пересекутся с пулом.

Тестовый компьютер IP-адрес Маска Шлюз
В VLAN 10 (OFFICE) 192.168.10.15 255.255.255.0 192.168.10.1
В VLAN 20 (GUEST) 192.168.20.15 255.255.255.0 192.168.20.1
В VLAN 99 (MGMT), ПК администратора 192.168.99.15 255.255.255.0 192.168.99.1

DNS пока можно не указывать: для проверки используются только IP-адреса.

Для ПК администратора нужен access-порт в VLAN 99. В нашей схеме для него предназначен порт GigabitEthernet1/0/20: он уже настроен в статье 04 как access-порт VLAN 99. Проверьте это командой show interfaces status. Если вы его изменяли, верните настройку блоком ниже. Не меняйте порт, через который вы сейчас подключены к SW1.

enable
configure terminal
interface GigabitEthernet1/0/20
 description Admin PC
 switchport mode access
 switchport access vlan 99
 no shutdown
end

Порт администратора пригодится и дальше: в статье 08 вход по SSH будет разрешён только из сети MGMT.

Для проверки сделайте следующее:

  1. С компьютера в VLAN 10 выполните ping 192.168.10.1 — это проверка связи со шлюзом.
  2. С того же компьютера выполните ping 192.168.20.1 (адрес шлюза соседнего VLAN). Ответ означает, что шлюз VLAN 10 работает и R1 знает сеть VLAN 20. Но пакет адресован самому R1, поэтому настоящей проверкой маршрутизации между VLAN этот тест не является.
  3. Главная проверка: выполните ping на реальное устройство в VLAN 20 (например, на тестовый компьютер 192.168.20.15). Успех означает, что trunk, разрешённые VLAN, access-порты и шлюзы настроены верно. Если пункт 2 сработал, а этот нет, проверьте шлюз и брандмауэр на самом устройстве, а также доступность VLAN 20 на trunk.
  4. tracert 192.168.20.15 в Windows (или traceroute в Linux) должен показать первым узлом 192.168.10.1.
  5. С ПК администратора (VLAN 99) выполните ping 192.168.99.2 (это SW1) и ping 192.168.10.15 (компьютер в другом VLAN, через R1).

Tip

Ping с самого R1 до хостов обоих VLAN не доказывает маршрутизацию между VLAN: маршрутизатор подключён к обоим VLAN напрямую. Проверять нужно именно с клиентов.

Warning

Теперь GUEST (VLAN 20) может обращаться к OFFICE и MGMT, в том числе к адресам управления R1 (192.168.99.1) и SW1 (192.168.99.2). Не подключайте гостевых клиентов к боевой сети, пока не настроены списки доступа из статьи 08.

Шаг 5. Проверьте управление SW1: ip default-gateway

Наш SW1 — коммутатор уровня L2. Сам он не маршрутизирует, но ему нужен IP-адрес в управляющей сети и шлюз, чтобы подключаться к нему из других VLAN. Адрес 192.168.99.2 на interface Vlan99 и команда ip default-gateway 192.168.99.1 уже настроены в шаге 4 статьи 04, поэтому повторять их здесь не нужно. Теперь, когда на R1 появился подинтерфейс GigabitEthernet0/0/1.99 с адресом 192.168.99.1, шлюз реально существует, и это можно проверить:

enable
show ip interface brief
show running-config | include default-gateway
ping 192.168.99.1

Команда ip default-gateway работает только на коммутаторе с выключенной маршрутизацией (L2). Она задаёт адрес шлюза и указывает на подинтерфейс R1 в VLAN 99. В руководстве Cisco по IP-маршрутизации Catalyst отмечено, что у коммутатора нет средства обнаружить, что шлюз по умолчанию упал или стал недоступен.

Как проверить:

  • show ip interface brief на SW1 должна показать строку Vlan99 с адресом 192.168.99.2 и состоянием up/up.
  • show running-config | include default-gateway должна вывести строку ip default-gateway 192.168.99.1. Командой show ip redirects шлюз тоже можно увидеть, но точный вид её вывода зависит от платформы и версии.
  • ping 192.168.99.1 с SW1 должен вернуть ответы (!!!!!). Обратно, с R1 — ping 192.168.99.2, а с компьютера из VLAN 10 выполните ping 192.168.99.2: пакет пройдёт через R1, а ответ SW1 вернёт через свой ip default-gateway.

Если Vlan99 в состоянии down, проверьте, что VLAN 99 существует и разрешён на trunk (шаг 1), а порт GigabitEthernet0/0/1 на R1 включён. Если адреса или шлюза на SW1 нет вовсе, вернитесь к шагу 4 статьи 04.

Note

Если на коммутаторе включена маршрутизация (ip routing), ip default-gateway не используется — вместо неё задаётся статический маршрут по умолчанию ip route 0.0.0.0 0.0.0.0 <шлюз>. Это тема статьи 06.

Шаг 6. Отмените страховку и сохраните настройки

Когда ping между VLAN работает и управление SW1 проверено, отмените перезагрузку на R1 (а также на любом другом устройстве, где вы ставили reload in) и только затем сохраните конфигурацию. Сохранение объяснялось в первой статье серии.

enable
reload cancel
copy running-config startup-config

Если вы настраивали порт GigabitEthernet1/0/20 на SW1, сохраните конфигурацию и там (copy running-config startup-config); если на SW1 стояла страховка, сначала выполните на нём reload cancel.

Вариант 2. SVI на L3-коммутаторе

Если вместо SW1 у вас L3-коммутатор (например, Catalyst 9300 или 3850), маршрутизировать между VLAN можно прямо на нём. Для каждого VLAN создаётся SVI — виртуальный интерфейс interface Vlan<номер> с IP-адресом шлюза. Весь трафик между VLAN обрабатывается коммутатором и больше не проходит через R1. Кабель до маршрутизатора остаётся, но нужен уже только для VLAN 99 и выхода в интернет.

В нашей схеме SW1 — L2-коммутатор, поэтому ниже показано, как выглядела бы настройка на L3-устройстве с теми же именами и адресами. Условно считаем, что на месте SW1 стоит L3-коммутатор, а в примерах вывода оставляем приглашение SW1#. Маршрутизатор R1 остаётся шлюзом в интернет и стыкуется с коммутатором через VLAN 99.

Important

Этот раздел носит справочный характер. Не выполняйте его на стенде серии: в следующих статьях везде используется вариант 1 (подинтерфейсы на R1 как шлюзы VLAN 10 и 20), а L3-коммутатора в нашей топологии нет. Если вы выполните блоки этого раздела на стенде серии, на R1 будут удалены рабочие шлюзы VLAN 10 и 20, и дальнейшие статьи перестанут воспроизводиться. Применяйте вариант 2 только при наличии L3-коммутатора.

Warning

Адрес 192.168.10.1 не может быть одновременно на подинтерфейсе R1 и на SVI коммутатора: получится конфликт адресов. Сначала уберите подинтерфейсы VLAN 10 и 20 на R1, затем настраивайте SVI. Между этими двумя шагами связь между VLAN 10 и 20 на короткое время пропадёт, поэтому согласуйте время работ и вставляйте оба блока подряд. Делайте это с консоли, а при работе по сети поставьте на оба устройства страховку reload in 15 (как в шаге 2). Сессия управления через VLAN 99 останется работоспособной, потому что мы не трогаем ни подинтерфейс .99, ни SVI 99.

Сначала на R1 убираем лишнее и добавляем маршруты к новым сетям (через SW1 в VLAN 99):

enable
configure terminal
no interface GigabitEthernet0/0/1.10
no interface GigabitEthernet0/0/1.20
ip route 192.168.10.0 255.255.255.0 192.168.99.2
ip route 192.168.20.0 255.255.255.0 192.168.99.2
end

Теперь на коммутаторе с поддержкой L3. Заодно сузим trunk до VLAN 99: на R1 подинтерфейсов VLAN 10 и 20 больше нет, и продолжать эти VLAN до маршрутизатора незачем.

enable
configure terminal
interface GigabitEthernet1/0/24
 switchport trunk allowed vlan 99
exit
ip routing
interface Vlan10
 description OFFICE-gateway
 ip address 192.168.10.1 255.255.255.0
 no shutdown
interface Vlan20
 description GUEST-gateway
 ip address 192.168.20.1 255.255.255.0
 no shutdown
exit
no ip default-gateway
ip route 0.0.0.0 0.0.0.0 192.168.99.1
end

Интерфейс Vlan99 с адресом 192.168.99.2 уже настроен в статье 04 и остаётся без изменений.

Что здесь происходит:

  • ip routing включает L3-функции. На маршрутизаторе IOS XE она включена по умолчанию, а на коммутаторах Catalyst по умолчанию выключена (на части моделей Catalyst 9500, например C9500-32C, она включена по умолчанию — смотрите руководство модели).
  • interface Vlan10 создаёт SVI. Этот интерфейс «поднимается» только тогда, когда VLAN существует на коммутаторе и связан с физическим портом (в том числе trunk, по которому VLAN проходит), причём этот порт находится в состоянии up. Если все порты VLAN отключены, SVI останется down, хотя конфигурация верна.
  • no ip default-gateway убирает старый шлюз для L2-режима (если вы его задавали). Вместо него на L3-коммутаторе используется статический маршрут по умолчанию — адрес R1 в MGMT.
  • Из хостов в VLAN 10 и 20 трафик в интернет идёт на SVI, дальше на R1 через VLAN 99, а обратно возвращается по статическим маршрутам, которые мы добавили на R1. NAT для этих сетей настраивается в статье 07.

Как проверить на коммутаторе:

enable
show ip interface brief
show ip route

Пример вывода (фрагмент):

SW1#show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
Vlan10                 192.168.10.1    YES manual up                    up
Vlan20                 192.168.20.1    YES manual up                    up
Vlan99                 192.168.99.2    YES manual up                    up
GigabitEthernet1/0/24  unassigned      YES unset  up                    up

В таблице маршрутов должны появиться C/L-строки для Vlan10, Vlan20, Vlan99 и строка S* с маршрутом по умолчанию через 192.168.99.1. Клиентам шлюзы не меняются: 192.168.10.1 и 192.168.20.1 по-прежнему адреса шлюзов, просто теперь они «живут» на коммутаторе.

Когда маршрутизация между VLAN проверена с клиентов, отмените страховку и сохраните настройки на обоих устройствах так же, как в шаге 6 варианта 1 (reload cancel, затем copy running-config startup-config).

Routed port и подинтерфейсы на самом коммутаторе

Caution

Команда no switchport на физическом порту коммутатора отключает порт и заново включает его. При переводе порта из L2 в L3 его прежние L2-настройки могут быть потеряны, а сам порт перестаёт быть членом VLAN. Если вы подключены по этому порту, вы потеряете связь. Делайте это с консоли.

Вместо trunk можно сделать uplink к R1 маршрутизируемым портом: no switchport, затем IP-адрес прямо на порту (для него отводят отдельную небольшую сеть, например /30). Такой порт не участвует в VLAN и не поддерживает L2-протоколы, например DTP и STP. На ряде Catalyst 9000 (в руководствах Catalyst 9300 и 9400) на routed port можно создавать и подинтерфейсы с encapsulation dot1q, то есть router-on-a-stick прямо на коммутаторе. На Catalyst 9300 эта возможность появилась в IOS XE 16.12.1, и она не поддерживается на StackWise Virtual Link и в SD-Access. Для других моделей смотрите руководство по VLAN вашей платформы. Для начала это лишнее: сперва освойте схему с SVI.

Что выбрать: router-on-a-stick или SVI

Критерий Router-on-a-stick SVI на L3-коммутаторе
Нужное оборудование L2-коммутатор + маршрутизатор L3-коммутатор
Где маршрутизируется трафик на R1, через один trunk-линк на коммутаторе, внутри устройства
Пропускная способность ограничена скоростью одного порта: трафик между VLAN проходит по линку дважды определяется возможностями коммутатора
Масштаб число подинтерфейсов и нагрузка на процессор маршрутизатора есть лимиты по числу SVI и routed port, зависят от модели и версии — смотрите документацию платформы
Простота настройки проще всего на маленьких сетях требует ip routing и маршрутов до маршрутизатора
Когда подходит небольшой офис, мало трафика между VLAN, тест и обучение офис, где много трафика между VLAN, серверные

Выводы о производительности здесь — инженерные соображения, а не цитаты из документации: цифры скорости зависят от конкретной платформы. Практическое правило такое: пока трафика между VLAN мало, router-on-a-stick вполне подходит; когда он начинает занимать заметную часть канала до R1, переносите маршрутизацию на L3-коммутатор.

Типичные ошибки

  1. Забыли no shutdown на физическом порту R1. Подинтерфейсы существуют, но не работают: в show ip interface brief они down. Включите родительский порт.
  2. Подинтерфейс без encapsulation dot1Q. Cisco описывает порядок так: сначала инкапсуляция, затем IP-адрес. Без инкапсуляции подинтерфейс не привязан к VLAN и не будет обрабатывать кадры с тегом. Если команда ip address не принимается или подинтерфейс не работает, первым делом проверьте, что encapsulation задана. Проверка — show interfaces <подинтерфейс>: должна быть строка Encapsulation 802.1Q Virtual LAN, Vlan ID ....
  3. VLAN нет в разрешённых на trunk. Клиенты в этом VLAN не видят шлюз. Смотрите блок Vlans allowed on trunk в show interfaces trunk и при необходимости добавьте VLAN: switchport trunk allowed vlan add 20.
  4. Не совпадает native VLAN на двух сторонах trunk. Это частая ошибка, она может привести к петлям STP. Если на R1 есть native-подинтерфейс, его VLAN должна совпадать с native VLAN на SW1. На SW1 она задаётся командой switchport trunk native vlan, на R1 — подинтерфейсом с encapsulation dot1Q <VLAN> native. В нашей схеме такого подинтерфейса нет (нетегированного трафика не ждём), но если вы его добавляете, согласуйте обе стороны. Cisco также требует: если подинтерфейс обслуживает native VLAN trunk, слово native в encapsulation обязательно.
  5. На L3-коммутаторе не включили ip routing или SVI не поднимается. Без ip routing адреса на SVI есть, а маршрутизации между VLAN нет (в show ip route не будет C-маршрутов). Если SVI в состоянии down, проверьте, что VLAN существует на коммутаторе и есть хотя бы один порт (access или trunk) в состоянии up, работающий в этом VLAN.
  6. Неверный шлюз у клиента. Шлюзом должен быть адрес из сети самого клиента (.1 в его VLAN), а не соседнего.

Что дальше

Ещё по теме «Cisco»