Руководства:Интерфейс/VLAN

From MikroTik Wiki
Jump to: navigation, search

Данный материал является переводом оригинальной англоязычной статьи.


Version.png

Applies to RouterOS: v3, v4+

Общие сведения

Под-меню: /interface vlan
Стандарты: IEEE 802.1Q

Виртуальная локальная сеть (Virtual Local Area Network, VLAN) предоставляет возможность организовать на L2-уровне несколько виртуальных локальных сетей на одном физическом интерфейсе (Ethernet, беспроводный интерфейс и т.д.), позволяя при этом эффективно разделять данные локальные сети.

С помощью MikroTik RouterOS (точно также как и с помощью Cisco IOS, Linux, и других систем маршрутизации) возможно как производить маркировку пакетов, так и принимать, и маршрутизировать уже промаркированные пакеты.

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

Также возможно пустить VLAN по беспроводным каналам и разместить несколько VLAN-интерфейсов на одном беспроводном интерфейсе. Необходимо иметь в виду, что, поскольку VLAN не является в полной мере туннельным протоколом (т.е., у VLAN отсутствуют дополнительные поля для транспортировки MAC-адресов отправителя и получателя), то, при организации сетевого моста между VLAN, к нему применимы те же ограничения, что и при организации сетевого моста между простыми беспроводными интерфейсами. Иными словами, до тех пор, пока беспроводные клиенты являются участниками VLAN, размещённых на беспроводных интерфейсах, невозможно разместить VLAN на беспроводном интерфейсе, находящимся в режиме станции (station), объединённым в сетевой мост с любым другим интерфейсом.

802.1Q

Наиболее часто используемым протоколом для организации виртуальных локальных сетей (VLAN) является IEEE 802.1Q. Он является стандартизированным протоколом инкапсуляции и определяет процедуру внедрения четырёхбайтового VLAN-идентификатора в заголовок Ethernet-фрейма (см. Рисунок 12.1).

Image12001.gif

Каждая VLAN рассматривается как отдельная подсеть. Это означает, что, по умолчанию, узел, относящийся к какой-либо одной VLAN, не может сообщаться с узлом, являющимся членом другой VLAN, хотя они и подключены к одному и тому же коммутатору. Таким образом, если нужно осуществлять сообщение между VLAN, необходим маршрутизатор. RouterOS поддерживает до 4095 VLAN-интерфейсов, каждый из которых со своим уникальным VLAN ID. Также возможно использование VLAN-приоритетов и управление ими.

В случае, когда VLAN проходит более чем через один коммутатор, линк между коммутаторами становится транком (trunk), пакеты в котором являются тегированными в целях указания принадлежности их к той или иной VLAN. Через транк проходит трафик нескольких VLAN, он подобен соединению типа "точка-точка" (point-to-point), через которое проходят тегированные пакеты между коммутаторами или между коммутатором и маршрутизатором.

Image12003.gif


Q-in-Q

В исходном виде стандарт 802.1Q допускает только один VLAN-заголовок, тогда как Q-in-Q допускает два или более VLAN-заголовков.

В RouterOS Q-in-Q возможно реализовать посредством добавления одного VLAN-интерфейса поверх другого.

Пример:

/interface vlan
add name=vlan1 vlan-id=11 interface=ether1
add name=vlan2 vlan-id=12 interface=vlan1

Если какой-либо пакет будет отправлен через интерфейс "vlan2", в заголовок Ethernet-фрейма будут добавлены два VLAN-тега: "11" и "12".

Параметры

Параметр Описание
arp (disabled | enabled | proxy-arp | reply-only; Default: enabled) Режим работы протокола определения адресов (Address Resolution Protocol)
interface (name; Default: ) Имя физического интерфейса, поверх которого будет работать VLAN
l2mtu (целочисленное значение; Default: ) MTU L2-уровня. Для VLAN данное значение изменить невозможно. Читать далее>>
mtu (целочисленное значение; Default: 1500) Максимальный блок передачи данных (Maximum Transmission Unit) для L3-уровня
name (строковый; Default: ) Имя интерфейса
use-service-tag (yes | no; Default: ) Служебный тег (Service Tag) совместимый со стандартом 802.1ad
vlan-id (целочисленное значение: 1..4095; Default: 1) Идентификатор виртуальной локальной сети (тег), используемый для различения VLAN. Должен быть одинаков для всех компьютеров, принадлежащих одной и той же VLAN.


Icon-note.png

Note: Для MTU желательно установить значение в 1500 байт – такое же, как и для Ethernet-интерфейсов. Но с данным значением, возможно, не смогут работать некоторые Ethernet-карты, не имеющие поддержки получения/передачи полноразмерных Ethernet-пакетов с добавленным VLAN-заголовком (1500 байт полезных данных + 4 байта VLAN-заголовка + 14 байт Ethernet-заголовка). В подобной ситуации для MTU можно указать значение 1496, но имейте в виду, что это чревато пакетной фрагментацией в случае, если через интерфейс необходимо отправить пакеты более большего размера. Одновременно помните, что значение MTU, равное 1496 байтам, может вызвать проблемы, если согласование размера MTU между узлом-источником и узлом назначения не работает должным образом.


Примеры настройки

Простой пример

Давайте предположим, что у нас имеется несколько маршрутизаторов под управлением MikroTik RouterOS, подключённых к концентратору (hub). Помните, что концентратор является устройством физического уровня OSI (если концентратор расположен между маршрутизаторами, то с точки зрения L3-уровня он выглядит так же, как и кабельное Ethernet-соединение между этими маршрутизаторами). Для упрощения предположим, что на всех маршрутизаторах для подключения к концентратору используется интерфейс ether1, и этим интерфейсам присвоены IP-адреса как на рисунке ниже. Затем на каждом из данных интерфейсов должен быть создан VLAN-интерфейс. Image12004.gif

Настройки для R2 и R4 показаны ниже:

R2:

[admin@MikroTik] /interface vlan> add name=VLAN2 vlan-id=2 interface=ether1 disabled=no

[admin@MikroTik] /interface vlan> print 
Flags: X - disabled, R - running, S - slave 
 #    NAME                  MTU   ARP        VLAN-ID INTERFACE                
0 R  VLAN2                 1500  enabled    2       ether1


R4:

[admin@MikroTik] /interface vlan> add name=VLAN2 vlan-id=2 interface=ether1 disabled=no

[admin@MikroTik] /interface vlan> print 
Flags: X - disabled, R - running, S - slave 
 #    NAME                  MTU   ARP        VLAN-ID INTERFACE                
0 R  VLAN2                 1500  enabled    2       ether1


Следующим шагом является присвоение IP-адресов VLAN-интерфейсам.

R2:

 [admin@MikroTik] ip address> add address=10.10.10.3/24 interface=VLAN2
 [admin@MikroTik] ip address> print
 Flags: X - disabled, I - invalid, D - dynamic
   #   ADDRESS            NETWORK         BROADCAST       INTERFACE
   0   10.0.1.4/24        10.0.1.0        10.0.1.255      ether1
   1   10.20.0.1/24       10.20.0.0       10.20.0.255     pc1
   2   10.10.10.3/24      10.10.10.0      10.10.10.255    vlan2

 [admin@MikroTik] ip address>

R4:

 [admin@MikroTik] ip address> add address=10.10.10.5/24 interface=VLAN2
 [admin@MikroTik] ip address> print
 Flags: X - disabled, I - invalid, D - dynamic
   #   ADDRESS            NETWORK         BROADCAST       INTERFACE
   0   10.0.1.5/24        10.0.1.0        10.0.1.255      ether1
   1   10.30.0.1/24       10.30.0.0       10.30.0.255     pc2
   2   10.10.10.5/24      10.10.10.0      10.10.10.255    vlan2

[admin@MikroTik] ip address>


Начиная с этого момента должна появиться возможность "пинговать" с маршрутизатора R2 маршрутизатор R4 и наоборот:

 '''Ping from R2 to R4:'''

 [admin@MikroTik] ip address> /ping 10.10.10.5

 10.10.10.5 64 byte ping: ttl=255 time=4 ms

 10.10.10.5 64 byte ping: ttl=255 time=1 ms

 2 packets transmitted, 2 packets received, 0% packet loss

 round-trip min/avg/max = 1/2.5/4 ms


 '''From R4 to R2:'''
 
 [admin@MikroTik] ip address> /ping 10.10.10.3
 10.10.10.3 64 byte ping: ttl=255 time=6 ms
 10.10.10.3 64 byte ping: ttl=255 time=1 ms
 2 packets transmitted, 2 packets received, 0% packet loss
 round-trip min/avg/max = 1/3.5/6 ms

Для того чтобы убедиться в том, что настройки VLAN работают корректно, попытайтесь запустить команду ping с R2 до R1. Если время для ответа на данную команду истечёт по таймауту (т.е. ответ не будет получен), то данные VLAN успешно изолированы друг от друга.

 
 '''From R2 to R1:'''

 [admin@MikroTik] ip address> /ping 10.10.10.2
 10.10.10.2 ping timeout
 10.10.10.2 ping timeout
 3 packets transmitted, 0 packets received, 100% packet loss

Создание транков и осуществление маршрутизации между VLAN

Если разделение нескольких VLAN осуществляется коммутатором, то маршрутизатору необходимо обеспечить сообщение между VLAN.

Коммутатор работает на L2-уровне OSI, таким образом, он использует для передачи только Ethernet-заголовок и не проверяет IP-заголовок. По этой причине необходимо использовать маршрутизатор, работающий шлюзом для каждой из VLAN. Без маршрутизатора узел не способен сообщаться с каким-либо другим узлом, не относящимся к его собственной VLAN.

Процесс маршрутизации между VLAN, описанный выше, называется "inter-VLAN communication" (сообщение между VLAN).

Чтобы проиллюстрировать сообщение между VLAN, создадим транк, по которому будет проходить трафик от трёх VLAN (VLAN2, VLAN3 и VLAN4) через один единственный физический линк между маршрутизатором под управлением MikroTik RouterOS и управляемым коммутатором с поддержкой VLAN. Image12005.gif

Как видно из рисунка выше, каждой VLAN выделена своя собственная отдельная подсеть (широковещательный домен):

  • VLAN 2 – 10.10.20.0/24;
  • VLAN 3 – 10.10.30.0/24;
  • VLAN 4 – 10.10.40.0./24.

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

Пример конфигурации маршрутизатора под управлением MikroTik RouterOS:

Создаём VLAN-интерфейсы:

/interface vlan
add name=VLAN2 vlan-id=2 interface=ether1 disabled=no
add name=VLAN3 vlan-id=3 interface=ether1 disabled=no
add name=VLAN4 vlan-id=4 interface=ether1 disabled=no

Присваиваем VLAN-интерфейсам IP-адреса:

/ip address 
add address=10.10.20.1/24 interface=VLAN2
add address=10.10.30.1/24 interface=VLAN3
add address=10.10.40.1/24 interface=VLAN4

RouterOS: сетевая маска /32 и непронумерованные IP-адреса

Для того чтобы в RouterOS создать туннель "точка-точка" с адресами, необходимо использовать адрес с сетевой маской /32, которая предоставляет вам те же самые возможности, что и некоторые поставщики непронумерованных IP-адресов (unnumbered IP).

Имеется 2 маршрутизатора: RouterA и RouterB, каждый из которых является частью сетей 10.22.0.0/24 и 10.23.0.0/24 соответственно. Для того чтобы соединить эти маршрутизаторы, в качестве передающей среды используем VLAN в следующей конфигурации:

Slash32.png

RouterA:

 /ip address add address=10.22.0.1/24 interface=ether1
 /interface vlan add interface=ether2 vlan-id=1 name=vlan1
 /ip address add address=10.22.0.1/32 interface=vlan1 network=10.23.0.1
 /ip route add gateway=10.23.0.1 dst-address=10.23.0.0/24

RouterB:

 /ip address add address=10.23.0.1/24 interface=ether1
 /interface vlan add interface=ether2 vlan-id=1 name=vlan1
 /ip address add address=10.23.0.1/32 interface=vlan1 network=10.22.0.1
 /ip route add gateway=10.22.0.1 dst-address=10.22.0.0/24


[ Top | Back to Content ]


--korsakoff 12:13, 2 January 2011 (UTC)