Mikrotik настройка trunk на нескольких портах

В предыдущей статье мы рассмотрели, что такое vlan: технология VLAN предоставляет возможность разделения реальной физической сети на несколько виртуальных, но имеющих такие же свойства и функционал (иными словами, создать отдельные широковещательные домены).

Идентификация VLAN по vlan id

Для идентификации каждого такого домена сетевое оборудование нуждается в определенных числовых метках – vlan id. Каждый vlan id соответствует определенному vlan, то есть определенной подсети конкретного отдела или подразделения. В отличие от собственных стандартов конфигурации VLAN, таких как ISL для Cisco, международный стандарт 802.1Q очень широко используется практически на любом сетевом оборудовании и оперирует понятием vlan id, тегируя им фреймы данных для определения принадлежности к конкретному vlan.

Согласно стандарту, vlan id может принимать значения в диапазоне от 0 до 4095, резервируя vlan id 1 как vlan по умолчанию. Также зарезервированы такие значения vlan id, как 1002 и 1004 для FDDI-сетей, 1003 и 1005 – для сетей Token Ring, но ввиду малой востребованности данного типа сетей, практически не используются.

Типы портов на коммутаторах и тегирование

Различают два типа портов на коммутаторах – access и trunk. Первый тип используется при подключении конечных хостов, таких как ПК, ip-телефоны, сервера и т.д., указывая в каком vlan данный хост будет работать.

Второй предназначен в основном для подключений между коммутаторами, передавая несколько vlan’ов.

Другими словами, если вы имеете более одного vlan на транковом порту, вам необходимо указать сетевому устройству, какой из пакетов данных к какому vlan принадлежит на другом конце соединения. Для этого и используется механизм тегирования пакетов данных с помощью vlan тегов. Vlan тег просто вставляется в оригинальный Ethernet-кадр, добавляя необходимую информацию.

802.1Q определяет, что тег содержит такую информацию, как vlan id и некоторые другие данные, указанные данным стандартом. Таким образом, тегированные пакеты данных содержат информацию о принадлежности к vlan, в то время как нетегированные – нет. Типичный пример использования тегирования — это подключение между маршрутизатором и коммутатором, за которым находится несколько подключенных к нему пользователей из разных vlan.

Транкинг и маршрутизация между vlan

Термин “маршрутизатор на палочке” часто используется для описания подключения маршрутизатора и коммутатора, соединенных Ethernet линком, настроенным как транк по стандарту 802.1Q. В данном случае коммутатор настроен на использование нескольких vlan, а маршрутизатор выполняет все функции по маршрутизации между различными подсетями/vlan.

Для некоторых пользователей данный термин звучит немного странно, но он является очень популярным и повсеместно используется в сетях, в которых нет коммутаторов с функциями 3-го уровня сетевой модели OSI. Хорошим примером конфигурации «маршрутизатор на палочке» может быть установка Cisco CCME, что подразумевает необходимость отделить VoIP сеть, состоящую из ваших ip-телефонов, от общей сети, где находятся рабочие станции и сервера.

Тегирование vlan

В целом, для понимания процесса тегирования, нужно разделять пакеты данных на входящие (входящие «с сетевого провода») и исходящие (исходящие «в провод»).

Входящие нетегированные пакеты, поступающие на порт, помещаются в так называемый «родной» vlan. Если коммутатор настроен на использование нескольких vlan, вам необходимо указать, к какому именно vlan принадлежит входящий нетегированный пакет.

Входящие тегированные пакеты, поступающие на порт, будут тегированы, и больше ничего вы не сможете с ними сделать. Если коммутатор не умеет работать с тегированием и не знает точной информации о vlan, он будет отбрасывать такие пакеты. Также можно принудительно указать коммутатору принимать только тегированные или же нетегированные пакеты.

Для исходящих нетегированных пакетов вы можете выбрать один vlan на каждом порту, где пакеты тегироваться не будут, т.к. хосты обычно не поддерживают тегирование и не смогут расшифровать такой пакет. Примером такого хоста является ПК, принтер и т.п.

Для исходящих нетегированных пакетов процесс происходит так: вам нужно указать коммутатору, какие из vlan-ов нужно сделать доступными на порту, и если их более одного, то все, за исключением одного, будут тегироваться в любом случае.

Рубрики: корпоративная сеть | локальная сеть Тэги: vlan | локальная сеть Виртуализация уже давно стала частью инфраструктуры практически каждого предприятия. Любой администратор использует или хотя бы пробовал сервер виртуализации. Мы уже рассматривали, как развернуть сервер виртуализации, поэтому в сегодняшней статье речь пойдет о другом: об Open vSwitch для объединения физических и виртуальных сетевых узлов и его преимуществах.

Представь, что у тебя есть готовая инфраструктура с гипервизорами и виртуалками внутри. Задача: предоставить определенной группе виртуальных машин IP-адрес в одном широковещательном домене, другой группе — в другом, а самому гипервизору — в третьем. То есть разместить их в различных сетях.

Такая ситуация может возникнуть по разным причинам. Приведу несколько примеров.

  1. Обязанности в организации строго разделены. Есть администратор доменной сети (AD), есть администратор других серверов, предоставляющих различные сетевые сервисы организации (DNS-сервер, mail-сервер, веб-сервер, сервер баз данных и другие). Администратор сервера AD хочет, чтобы его виртуальный сервер был в одной сети с клиентами, при этом безопасник настаивает, чтобы сам гипервизор находился в отдельной сети серверов (отдельный широковещательный домен).
  2. Ты предоставляешь доступ извне к виртуальной машине. Как обеспечить такой доступ и закрыть доступ к любому другому узлу?

Самый простой способ реализовать такую схему — это включить один сетевой интерфейс в одну сеть, другой в другую и настроить мосты соответствующим образом. Нельзя сказать, что такой подход на 100% правильный или неправильный, но он вполне рабочий. И значит, имеет право на жизнь. А как быть тем, у кого всего один сетевой интерфейс? В любом случае наиболее правильный метод, если есть коммутатор второго уровня (L2), — это разделить сеть на логические сегменты. Проще говоря, построить сеть на VLAN’ах.

Что нужно знать о VLAN

VLAN — это виртуальные сети, которые существуют на втором уровне модели OSI и реализуются с помощью коммутаторов второго уровня. Не вдаваясь в подробности, можно сказать, что это группа портов коммутатора, разделенная на логические сегменты сети. Каждый такой сегмент имеет свой маркер (тег PVID). Каждая группа портов VLAN’а знает о своей принадлежности к определенной группе благодаря этим тегам.

Существует два типа портов: access и trunk. В access подключаются конечные сетевые устройства, в trunk подключаются только другие trunk-порты. Если с компьютера пакет попадает на access-порт, то он помечается тегом (PVID), и далее коммутатор отправляет этот пакет только на порты точно с такими же VLAN ID или на trunk-порт. При отправке кадра конечному узлу тег снимается, так что они понятия не имеют о том, что находятся в каком-либо VLAN’е.

Когда пакет попадает на trunk-порт, он передается как есть, тег не снимается. Таким образом, внутри trunk-порта передаются пакеты с несколькими тегами (PVID).

Стоит заметить, что access-порт можно настроить так, чтобы тег на выходе не снимался, тогда для принятия пакета конечный клиент должен знать, в какой VLAN он подключен. Не все сетевые карты и/или ОС поддерживают работу с VLAN по умолчанию. Как правило, это зависит от драйвера сетевой карты.

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

Напоминаю, что в одной из предыдущих статей мы рассматривали построение виртуализации на базе Ubuntu/Debian и KVM. Поэтому исходить будем из того, что система установлена и настроена, есть два физических интерфейса, один подключен к виртуальному мосту и есть виртуальные машины, которые им пользуются. Второй интерфейс не сконфигурирован.

Теперь вернемся к нашим VLAN’ам. Чтобы наша идея работала, нам нужно подключить первый физический интерфейс нашей машины к trunk-порту коммутатора, но при этом заблаговременно разделить (а точнее, протегировать) трафик виртуалок по разным VLAN’ам.

Самый простой и примитивный вариант это сделать — создавать виртуальные сетевые карты, каждую настраивать на определенный VLAN и для каждой виртуальной карты поднять отдельный виртуальный сетевой мост, через который и подключать нужную виртуальную машину. Способ рабочий, правда есть несколько недостатков:

  1. Очень некрасивый вывод ifconfig.
  2. Нет возможности на лету добавить или удалить VLAN. Иначе говоря, для каждого нового VLAN’а нужно добавлять виртуальный интерфейс. Подключать его в VLAN, включать в мост. Останавливать виртуальную машину и подключать сеть через этот мост.
  3. Занимает много времени.

Но если у нас виртуальные машины, почему бы не воспользоваться виртуальным коммутатором второго уровня, в который и воткнуть все виртуальные проводки? Это решение гораздо лучше, позволяет более гибко настроить систему. Ну и использовать такой коммутатор, как самый обычный!

Гугление привело к трем наиболее популярным решениям. Одно входит в состав Hyper-V, который платный и не умеет OpenFlow. Второе: MikroTik, с помощью которого можно не только создать виртуальный коммутатор, но и перенести его конфигурацию на железный. Отпугивает только, что он базируется на полноценной операционной системе — RouterOS. А это уже совсем не то. И наконец, встречай — Open vSwitch.

Open vSwitch

Open vSwitch — программный многоуровневый коммутатор с открытым исходным текстом, предназначенный для работы с гипервизорами. Работает в Linux начиная с версии 2.6.15. Основные возможности коммутатора:

  • учет трафика, в том числе проходящего между виртуальными машинами с использованием SPAN/RSPAN, sFlow и Netflow;
  • поддержка VLAN (IEEE 802.1q);
  • привязка к конкретным физическим интерфейсам и балансировка нагрузки по исходящим MAC-адресам;
  • работа на уровне ядра, совместимость с программным мостом Linux Bridge;
  • поддерживает OpenFlow для управления логикой коммутации;
  • с меньшей производительностью, чем в режиме на уровне ядра, Open vSwitch может работать как обычное приложение.

Open vSwitch используется в составе Xen Server, Xen Cloud Platform, KVM, VirtualBox, QEMU, ProxMox (начиная с 2.3).

В качестве наглядного примера будем виртуализировать сервер Kerio 9.1.4. Итак, чтобы понимать, как сейчас все устроено до переделки. Железный сервер Kerio — второй сервер виртуализации, в котором работает несколько сетевых сервисов организации: клиентские сети net1, net2, net3 и net4, серверная сеть net5. Каждый сегмент сети подключен в отдельный сетевой интерфейс «железного» Kerio.

2.png

Другие статьи в выпуске:Cover_222_new_mid-res-210x280.jpg

Xakep #222. Логика подлога

Приветствую всех! Хотел поделится простой настройкой, как сделать несколько trunk портов на роутере Mikrotik. Пусть это будет ещё одним из способов, среди остальных описанных в Интернете, который поможет вспомнить, как это сделать. Итак начнём!

Давайте придумаем сеть, в которой будут следующие vlan-ы:

  • vlan 150: сеть для роутеров и серверов
  • vlan 151: сеть для пользователей
  • vlan 152: сеть для бухгалтерии
  • vlan 153: гостевая сеть

Для экспериментов можно взять образ RouterOS — VirtualBox, который можно скачать на официальном сайте, под названием Cloud Hosted Router. Далее создаём виртуальную машину для роутера, выделаем ей 128 Мб ОЗУ и для примера 5 сетевых портов. Запускаем виртуальную машину и подключившись WinBox-ом к роутеру начинаем конфигурацию. Порты можно распределить так:

  • ether1 – будет access портом для vlan 151
  • ether2 – будет access портом для vlan 152
  • ether3 – будет access портом для vlan 153
  • ether4 – trunk
  • ether5 – trunk

61b806756c00c385816688a89b2a74c8.jpg

Теперь объединим порты для trunk мостом. Создаём мост и обзываем его, к примеру bridge-trunk.

Bridge - Плюс – Name bridge-trunk

20636ae4b73abe2525e20cccc2f74c4e.jpg

После в созданный мост добавляем порты

Bridge – Ports – Плюс – Interface: ether4, Brige: brige-trunk

Так же добавляем ether5 в мост.

9b6f0acc71b9e313b2d9e61b0985739a.jpg

Теперь можно на только что созданный мост повестить требуемые нам vlan-ы, которые надо передавать по trunk портам.

Interface – VLAN – плюс – Name: vlan151-lan, VLAN ID: 151, Interface: bridge-trunk

Таким же способом добавляем остальные vlan-ы.

be6d68f39da6c62952e2d0235f111b3c.jpg

Собственно и всё. Остаётся только раскидать vlan-ы по access портам. Для этого создаём мосты для каждого vlan-а.

Bridge - Плюс – Name bridge-vlan151

И так для vlan 152, 153

653a60428462e8dd618c1e0859ad493e.jpg

И теперь добавляем в эти мосты vlan-ы и нужные ether порты. Получается так:

3c8f26199ffb41a4a030d0f23de9d6d3.jpg

Готово. Схема которые мы придумали реализована.

Используемые источники:

  • https://tvoi-setevichok.ru/korporativnaya-set/tegirovannyiy-i-netegirovannyiy-vlan-chto-eto-i-kak-uznat-vlan-id.html
  • https://xakep.ru/2017/09/04/open-vswitch/
  • https://prestigecomputer.ru/info/news/mikrotik-trunk-setup-on-several-ports/

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации