Сети

Маршрутизация VLAN между подсетями на коммутаторах

Подробная настройка маршрутизации между VLAN и подсетями через L3-коммутаторы или router-on-a-stick. Trunk-порты, SVI, ip routing для доступа к серверу из разных сетей. Решение проблем с L2-свитчами.

Как соединить две подсети через коммутаторы, чтобы сервер был доступен из обеих подсетей с использованием VLAN1 и trunk-портов?

Описание сети:

  • Сеть состоит из нескольких подсетей (левая и правая).
  • Цель: обеспечить доступ к Server0 из любой подсети.

Попытка настройки:

  • На каждом коммутаторе создаю VLAN1 и назначаю IP-адрес в пределах подсети.
  • Перевожу линии связи между коммутаторами в trunk-режим.

Проблема: Пакеты не проходят дальше коммутатора уже третий день.

Что делаю не так? Подробно объясните правильную конфигурацию коммутаторов для маршрутизации между подсетями через VLAN.

Ваша проблема в том, что обычные коммутаторы уровня 2 не умеют маршрутизировать трафик между подсетями, даже с VLAN1, IP-адресами на интерфейсах и trunk-портами — они только коммутируют внутри одной VLAN. Для доступа к Server0 из обеих подсетей нужен коммутатор уровня 3 с включенной маршрутизацией (ip routing) или внешний маршрутизатор в схеме router-on-a-stick. Trunk-порты правильно пропускают трафик VLAN между свитчами, но без L3-роутинга пакеты “застревают” на границе подсетей.


Содержание


Почему не работает маршрутизация между VLAN на L2-коммутаторах

Представьте: у вас левая подсеть 192.168.1.0/24, правая — 192.168.2.0/24, Server0 в левой с адресом 192.168.1.10. Вы создали VLAN1 на каждом коммутаторе, дали IP вроде 192.168.1.1 на первом и 192.168.2.1 на втором, перевели межкоммутаторные линк в trunk. Звучит логично? Но пакеты не доходят. Почему?

Коммутаторы уровня 2 (типа Cisco 2960) — это “пересылатели кадров” внутри VLAN. VLAN1 по умолчанию native (нетегированная), trunk её пропустит, но между разными подсетями нужен роутинг — смена MAC-адресов, ARP-запросы через подсети. L2-свитч этого не делает: он видит разные IP-подсети как “чужие” и шлёт broadcast’ы, но не маршрутизирует. Как пишут в сетевых гайдах, для маршрутизации между VLAN требуется L3-устройство или маршрутизатор.

Вы назначили IP на VLAN1-интерфейсах (SVI), но без ip routing это просто management-IP — свитч отвечает на пинги в своей подсети, но не роутит дальше. Trunk работает для L2-трафика (VLAN1 между свитчами), но inter-VLAN routing? Нет. Пакеты “застревают” на свитче, подключённом к источнику, потому что нет пути к другой подсети.

А что с Server0? Если он в VLAN1 левой подсети, хосты правой даже не узнают его MAC — ARP не пройдёт без роутера.


Правильная настройка VLAN с маршрутизацией на L3-коммутаторе

Идеал — один центральный L3-коммутатор (Cisco 3560/3750 или аналог), который видит все подсети. Разделите трафик: левая подсеть в VLAN10 (192.168.1.0/24), правая в VLAN20 (192.168.2.0/24), Server0 в VLAN10. Trunk’и от периферийных L2-свитчей к L3.

Шаги конфигурации (Cisco IOS, проверьте на вашем железе):

  1. Создайте VLAN’ы:
vlan 10
name Left_Subnet
vlan 20
name Right_Subnet
  1. Настройте SVI (Switched Virtual Interface) — виртуальные роутерные порты для подсетей:
interface vlan 10
ip address 192.168.1.1 255.255.255.0
no shutdown
interface vlan 20
ip address 192.168.2.1 255.255.255.0
no shutdown
  1. Включите роутинг:
ip routing

Теперь L3-свитч — шлюз для обеих подсетей. На хостах укажите gateway: 192.168.1.1 для левых, 192.168.2.1 для правых. Server0 пингуется из любой — свитч сам роутит.

На периферийных L2-свитчах: порты к хостам в access-режиме (switchport mode access; switchport access vlan 10), аплинк к L3 — trunk (switchport mode trunk; switchport trunk allowed vlan 10,20). Подробности в руководстве по Cisco.

Если несколько свитчей в цепочке — все trunk’и с allowed VLAN 10,20. VLAN1 оставьте для management, не мешаите трафиком.


Альтернатива: Router-on-a-Stick для двух подсетей

Нет L3-свитча? Используйте маршрутизатор (Cisco ISR). Один физпорт роутера к trunk’у свитча — subinterface’ы для VLAN.

На роутере:

interface gig0/0.10
 encapsulation dot1Q 10
 ip address 192.168.1.1 255.255.255.0
interface gig0/0.20
 encapsulation dot1Q 20
 ip address 192.168.2.1 255.255.255.0
ip routing

На свитче аплинк: switchport mode trunk. Хосты видят роутер как шлюз. Минус — bottleneck на одном порту, но для малого трафика ок. Описание в официальных доках Cisco.

Server0 подключается к свитчу в VLAN10 — доступен из VLAN20 через роутер.


Настройка trunk-портов между коммутаторами

Trunk — ключ для VLAN через свитчи. Без него VLAN1 native пройдёт, но tagged VLAN’ы — нет.

Базовая настройка на Cisco:

interface gig0/1 // аплинк к другому свитчу
switchport trunk encapsulation dot1Q // если нужно
switchport mode trunk
switchport trunk allowed vlan 10,20,1 // только нужные VLAN, не all!

Проверьте: show interfaces trunk — увидите allowed VLAN’ы. Native VLAN mismatch? Установите switchport trunk native vlan 1 на обоих концах.

Типичная ошибка: забыли allowed vlan — по умолчанию все, но иногда VLAN1 блокируется. Trunk пропускает тегированный трафик VLAN между свитчами, но роутинг — отдельно. См. практику.

Для двух подсетей: все trunk’и в цепи с одинаковыми allowed VLAN.


Доступ к серверу: IP-адреса, шлюзы и SVI

Server0 в левой подсети (VLAN10, IP 192.168.1.10, gateway 192.168.1.1). Правые хосты (192.168.2.x, gateway 192.168.2.1) пингуют его — L3-роутер перешлёт.

  • На сервере: статический IP/gateway L3-SVI.
  • DHCP? Настройте на L3-свитче: ip dhcp pool VLAN10, option router 192.168.1.1.
  • Firewall? Разрешите ICMP/ports на роутере/сервере.

Без шлюза по умолчанию хосты не выйдут за подсеть. В примерах Eltex подчёркивают: L2 нуждается в default route к L3.


Диагностика и типичные ошибки

Третий день пакеты не проходят? Проверьте поэтапно:

  1. show vlan brief — VLAN созданы?
  2. show ip interface brief — SVI up/up с IP?
  3. show ip route — connected routes для подсетей?
  4. show interfaces trunk — VLAN allowed, no mismatch?
  5. ping между SVI, traceroute к Server0.
  6. debug ip packet — видны ли пакеты?

Ошибки:

  • Нет ip routing или no shutdown на SVI.
  • Trunk без allowed vlan — трафик дропается.
  • Хосты без gateway или в wrong VLAN.
  • Native VLAN mismatch: %CDP-4-NATIVE_VLAN_MISMATCH.

ARP не проходит? show arp. В форумах часто это SVI без роутинга. Тестируйте в Packet Tracer сначала.


Источники

  1. Маршрутизация между VLAN на коммутаторе Cisco
  2. Маршрутизация между vlan - маршрутизатор на привязи
  3. Настройка VLAN в Cisco
  4. Транковые порты (trunk)
  5. Маршрутизация между VLAN через многоуровневый коммутатор
  6. Маршрутизация между VLAN с использованием router-on-a-stick
  7. Маршрутизация между VLAN’ами на основе коммутаторов 3-го уровня
  8. МАРШРУТИЗАЦИЯ между VLAN

Заключение

Переходите на L3-коммутатор с ip routing, SVI для подсетей и trunk’ами с allowed vlan — Server0 станет доступен из обеих сетей без хаков. Если роутер под рукой, router-on-a-stick спасёт. Главное — разделите подсети по VLAN, не смешивайте в VLAN1. Протестируйте шаг за шагом, и пакеты полетят. Удачи с настройкой!

Авторы
Проверено модерацией
Модерация
Маршрутизация VLAN между подсетями на коммутаторах