Заказать обратный звонок
(044) 33-109-33
(066) (067) (097)
100-46-46

Базовые основы настройки VLAN в RouterOS на оборудовании Mikrotik: «VLAN для чайников», сегментация сети предприятия

13.09.2018
Поделиться в:

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

Как правило, все инструкции по VLAN достаточно сложные для понимания новичком и, уж тем более, человеком, у которого отсутствует специальное образование по данному направлению.

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

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

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

Базовые понятия принципов работы локальных сетей

Подробно рассматривать модель OSI мы не будем, т.к. это отнимет достаточно большое количество времени и усложнит понимание материала. Но в общих чертах понимать модель OSI все же требуется.

Ниже предлагаем вашему вниманию наиболее простую и понятную схему модели OSI.

1_osi_model_levels.jpg

Первый уровень OSI – физический. Как несложно догадаться, на нем происходит физическая передача данных в виде импульсов. Иными словами это передача битов 0 и 1, независимо от того, какая среда передачи данных используется, будь то витая пара, оптика или даже коаксиал (например, в сетях DOCSIS).

Второй уровень OSI – канальный. На канальном уровне уже появляется такой термин как MAC-адрес.

Вы, наверное, часто встречаете на сайтах производителей сетевого оборудования в описаниях коммутаторов пометку «Layer 2». Это как раз и обозначает то, что коммутатор работает на втором уровне модели OSI.

С понятием MAC-адреса вы сталкиваетесь постоянно, это не что иное, как уникальный физический адрес оборудования, представленный в формате CC:2D:E0:B4:ED:AD. Первые символы МАС-адреса содержат информацию о производителе, именно по этой причине в комплексных мерах повышения безопасности многие администраторы практикуют подмену внешних МАС-адресов на WAN-портах, как один из механизмов маскировки производителя оборудования и усложнения его идентификации. Во избежание конфликтов, МАС-адреса делают уникальными.

Мы сейчас не будем рассматривать хабы (Hub, концентраторы), как устройства, которые окончательно устарели. В то же время вы должны знать, что такие устройства ранее повсеместно использовались. Отличие хаба от коммутатора в том, что хаб всегда дублирует все пакеты на все порты.

На сегодня современные сети строятся с использованием коммутаторов второго уровня (или третьего). Коммутаторы также называют свичами, от английского Switch.

В отличие от хабов, у коммутатора имеется таблица MAC-адресов (MAC-table). В характеристиках коммутатора всегда указан размер данной таблицы, например 2К, 4К или 8К записей. Для более высокоуровневых решений размер таблиц еще больше.

Зачем нужна данная таблица? Во время работы коммутатор анализирует заголовки фреймов (MAC Header) и проверяет, с какого МАС поступил фрейм. После этого МАС отправителя динамически привязывается к конкретному порту.

Если коммутатор получил фрейм с неизвестным ему конечным МАС, он разошлет его на все порты. По сути, это «режим обучения». Затем, после получения ответа от получателя о приеме фрейма, коммутатор привяжет к конкретному порту и МАС получателя. В дальнейшем коммутатор будет слать фреймы только на конкретный порт.

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

Современные коммутаторы зачастую работают по принципу «Store-and-forward», это так называемая передача с промежуточным хранением. Зачем это нужно и как это работает? Во время получения данных, коммутатор проверяет контрольную сумму, что позволяет избежать передачи поврежденных данных.

Третий уровень OSI – сетевой. Для лучшего понимания, необходимо знать, что на третьем уровне добавляется IP header – заголовок пакета с информацией об IP-адресах. Коммутаторы Layer 2 не обрабатывают IP-заголовки и работают только с «внешним» MAC-заголовком. Для обработки IP header применяются маршрутизаторы Layer 3, которые способны управлять траффиком на основе IP-заголовков.

Существуют также коммутаторы Layer 2 с функциями Layer 3. К примеру, это может быть коммутатор с возможностью статической маршрутизации.

Четвертый уровень OSI – транспортный. На 4-м уровне появляется протоколы TCP и UDP, которые определяют метод доставки информации. Для TCP это доставка пакетов с подтверждением о получении, для UDP – доставка без подтверждения.

Последующие уровни OSI сегодня мы рассматривать не будем, они нам сейчас не интересны. Возвращаемся к Layer 2.

Следующая вещь, которую необходимо знать о коммутаторах это работа с широковещательными пакетами.

Всего в локальной сети существует 3 варианта доставки информации:

  • Unicast

  • Multicast

  • Broadcast

Данные термины вы неоднократно встречали, коротко пройдемся по всем.

2_unicast_broadcast.jpg

Unicast это обычная передача данных от устройства А к устройству Б.

Multicast – передача данных нескольким выборочным устройствам, например от устройства А к устройствам Б и Г.

Broadcast – передача данных всем участникам сети, например от устройства А на устройства Б, В и Г. Бродкаст еще называют широковещательными запросами. Отправляются они с использованием адреса FF:FF:FF:FF:FF:FF, такие фреймы принимаются всеми устройствами, входящими в локальную сеть.

3_hub.jpg

Если рассматривать хаб, в нем присутствует 1 широковещательный домен (broadcast domain) и 1 домен коллизий (collision domain). Что это значит? Это значит, что в пределах хаба, широковещательный запрос (FF:FF:FF:FF:FF:FF) передается всем портам, а одновременная передача данных возможна только по одному интерфейсу.

4_switch.jpg

В коммутаторах также 1 широковещательный домен, а вот доменов коллизий столько, сколько портов. Иными словами, широковещательный запрос передается на все порты, но передача данных возможна по всем портам одновременно.

5_vlan_explain.jpg

Вот мы плавно и подошли к VLAN. В случае с применением VLAN, бродкастовых доменов будет столько, сколько создано вланов. Это значит, что устройства, находящиеся в разных VLAN смогут отправлять broadcast FF:FF:FF:FF:FF:FF только в пределах своей виртуальной сети.

Что такое VLAN и как это работает

VLAN является сокращением от английского Virtual Local Area Network, обозначающего виртуальную локальную сеть.

Технология VLAN подробно описана в стандарте IEEE 802.1Q и предоставляет возможность объединения устройств в разные логические сети при использовании единой физической среды передачи данных и единого оборудования. По сути, влан эмулирует несколько каналов передачи данных и несколько физических коммутаторов. Собственно для конечных клиентов это так и выглядит.

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

VLAN предоставляет огромные преимущества:

  • виртуализация и деление сети без покупки/установки дополнительного оборудования и линий связи. Вы можете создать 2, 3, 5, 20, сколько угодно подсетей на существующем оборудовании, без прокладки новых кабелей.

  • изоляция подсетей, изоляция подключенных клиентов;

Стандартом предусмотрено до 4096 VLAN’ов, иногда этого может оказаться мало или недостаточно для реализации сложной сети. Оборудование Mikrotik (под управлением RouterOS) поддерживает технологию вложенных VLAN’ов – QinQ.

Следует четко понимать, что QinQ уменьшает размер MTU (размер пакетов), что чревато фрагментацией пакетов. По этой причине QinQ следует использовать только в случае невозможности реализации иного механизма.

Зачем нужен QinQ и где он используется?

QinQ иногда используется интернет-провайдерами для подключения клиентов, при котором может и не хватить 4+ тысяч VLAN’ов.

6_vlan_qinq.jpg

Также QinQ может быть использован провайдером для транзита клиентских VLAN через свою сеть. К примеру, у провайдера есть клиент с несколькими подключениями, на каждом из которых есть свои VLAN, при этом заказчик не желает менять VLAN ID на своей стороне, но сам провайдер указанные идентификаторы уже использует.

В этом плане QinQ чем-то напоминает проброс портов, только в данном случае пробрасываются VLAN’ы, обеспечивая для клиента «логический транк».

Принцип работы VLAN

При использовании VLAN, в Ethernet-фреймы внедряется дополнительный заголовок-метка, размером 4 байта:

7_explain_vlan_8021q.jpg

После добавления метки, коммутатор удаляет из фрейма старую контрольную сумму FCS (Frame check sequence), рассчитывает и добавляет новую.

Последующая обработка фреймов осуществляется на основе «меток», именуемых в VLAN тэгами. С метками VLAN работают коммутаторы и маршрутизаторы, для конечных клиентов они остаются незамеченными, потому как на «портах доступа» тег снимается.

VLAN на Mikrotik: варианты реализации

«Микротик микротику рознь», это необходимо всегда помнить, знать и понимать, при реализации VLAN. У Mikrotik, как и у любого другого производителя сетевого оборудования, свое собственное видение реализации настроек VLAN.

На базе оборудования Mikrotik возможна реализация как программных (софтовых) VLAN, так и аппаратных (hardware).

Аппаратный VLAN, как следует из названия, реализуется непосредственно на базе switch-chip. Возможность реализации аппаратного влана зависит от того, какой именно чип коммутации применяется в вашем устройстве.

По этому поводу рекомендуем ознакомиться с официальным руководством Switch Chip Features. Если коротко, аппаратный VLAN (Hardware VLAN) поддерживается следующими чипами:

  • Atheros7240:

  1. RB750

  2. RB750UP

  3. RB751U-2HnD

  4. RB951-2n

  • Atheros8227:

  1. RB941-2nD (hAP lite)

  2. RB951Ui-2nD (hAP)

  3. RB952Ui-5ac2nD (hAP ac lite)

  4. RB750r2 (hEX lite)

  5. RB750UPr2 (hEX PoE lite)

  6. RB750P-PBr2 (PowerBox)

  7. RB750P r2

  8. RBOmniTikU-5HnDr2 (OmniTIK 5)

  9. RBOmniTikUPA-5HnDr2 (OmniTIK 5 PoE)

  10. RB2011 series (ether6-10)

  11. RB951Ui-2HnD

  • Atheros8316:

  1. RB493G

  2. RB435G

  3. RB450G

  4. RB750G

  5. RB1200

  6. RB1100

  • Atheros8327:

  1. RB953GS

  2. RB850Gx2

  3. RB2011 series (ether1-5 + sfp1)

  4. RB750GL

  5. RB751G-2HnD

  6. RB951G-2HnD

  7. RBD52G-5HacD2HnD (hAP ac²)

  8. cAP ac

  9. RB1100AH

  10. RB1100AHx2

  11. CCR1009 series (ether1-4)

  12. RB433GL

  • QCA8337:

  1. RB3011 series

  2. RB OmniTik ac series

  3. RB750Gr2 (hEX)

  4. RB962UiGS-5HacT2HnT (hAP ac)

  5. RB960PGS (hEX PoE)

  6. RB960PGS-PB (PowerBox Pro)

Во всех перечисленных устройствах VLAN можно реализовать средствам чипа коммутации. Преимущество данного метода состоит в том, что обработка тегов, их добавление и снятие выполняется самим чипом, без участия процессора (hardware offload, аппаратная разгрузка).

К этому методу следует прибегать в тех случаях, когда:

  1. стоит цель добиться максимальной производительности;

  2. производительность VLAN упирается в возможности CPU;

  3. реализация некоторых возможностей недостижима средствами программного VLAN;

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

В случае, если эта тема будет востребованной, мы  опубликуем отдельную инструкцию.

Второй метод реализации – программный / «софтовый» VLAN / Software VLAN. Именно данный метод наиболее часто описывается и встречается на практике. Он не так функционален, зато максимально прост в настройке.

Настройка программного VLAN в RouterOS на оборудовании Mikrotik 

Рассматривать процесс настройки мы будем на примере устройств RB750UPr2 (hEX POE lite) и RB750r2 (hEX lite). Оба устройства реализованы на базе платформы MIPSBE (qca9531L). И там и там 64 МБ оперативной памяти, POE-версия отличается поддержкой PoE-out. Есть и другое отличие, в обычных версиях процессор работает на более высокой частоте – 850 МГц против 650 МГц у POE-версии. Такая разница обеспечивает на 30% большую производительность.

RB750UPr2 мы будем использовать в качестве главного шлюза, центрального узла коммутации и источника питания, два оставшиеся устройства RB750r2 будут использованы в качестве коммутаторов.

Оговоримся сразу, вариант не самый оптимальный, немного доплатив, можно приобрести RB260GS (SwOS) с гигабитными интерфейсами. Как вариант это могут быть и недорогие коммутаторы сторонних производителей, например TL-SG105E / TL-GS108E от TP-Link. При этом процесс их настройки будет отличаться.

Также можно рассматривать hAP lite (RB941-2nD), hAP ac lite (RB952Ui-5ac2nD), hAP (RB951Ui-2nD) и прочие модели со встроенным модулем Wi-Fi. Особый интерес будут представлять RB951Ui-2HnD и гигабитный RB951G-2HnD. Оба устройства оснащены радиомодулями повышенной мощности и большим объемом оперативной памяти, что позволяет реализовать беспроводную сеть на предприятии с несколькими SSID, в т.ч. HotSpot. Такой вариант реализации обойдется заметно дешевле, нежели использование, к примеру, CRS109-8G-1S-2HnD-IN.

Чуть ниже предлагаем вашему вниманию условную схему сети, которую мы и будем реализовывать.

8_vlan_network_example.jpg

В качестве основного устройства выбран Mikrotik hEX POE lite (RB750UPr2), он будет выполнять функции шлюза, маршрутизирующего траффик в локальной сети вымышленного предприятия. На схеме данное устройство обозначено как узел R1.

Допустим, нам требуется реализовать 2 подсети – офисную и гостевую. Для офисной сети мы будем использовать VLAN 20, для гостевой – VLAN 30. Номера вланов особого значения не имеют, главное, чтобы вы четко понимали, какой из них за какую сеть отвечает.

VLAN1 использовать нельзя, т.к. это «нативный» VLAN (native) для большого числа оборудования, в том числе и для Mikrotik.

Для офисной сети с VLAN 20 мы будем использовать подсеть 10.20.0.0/24, а для гостевой – 10.30.0.0/24. Идеальным вариантом является использование разных подсетей из списка:

  • 10.0.0.0 — 10.255.255.255

  • 172.16.0.0 — 172.31.255.255

  • 192.168.0.0 — 192.168.255.255

Например, 10.х.х.х для офиса и 192.168.х.х для гостевой сети. Подсеть 100.64.0.0 — 100.127.255.255 использовать не стоит, т.к. она предназначена для NAT интернет-провайдеров (CGN, Carrier-Grade NAT).

Конфигурация маршрутизатора R1

На узле R1 реализуем следующую конфигурацию:

  • ether1 используется для подключения к сети провайдера;

  • ether2 кидаем в офисную сеть VLAN 20;

  • ether3 кидаем в гостевую сеть VLAN 30;

  • ether4 и ether5 будем использовать в качестве магистральных каналов (trunk) для подключения двух дополнительных hEX lite (RB750r2), на схеме они обозначены как R2 и R3.

Сами R2 и R3 будем использовать вместо управляемых коммутаторов.

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

Поскольку устройств Mikrotik у нас несколько, первым делом задаем имя устройства (identity, alias), чтобы впоследствии не возникало путаницы с управлением. Делаем это командой:

/system identity

set name=R1-POE

s2_p1_routeros_identity.jpg

s2_p2_routeros_identity.jpg

Затем, в целях повышения безопасности, отключаем все неиспользуемые сервисы, оставляем только Winbox:

/ip service

set telnet disabled=yes

set ftp disabled=yes

set www disabled=yes

set ssh disabled=yes

set api disabled=yes

set api-ssl disabled=yes

s2_p3_routeros_services.jpg

Для удобства, переименовываем сетевые интерфейсы и добавляем к ним комментарии:

/interface ethernet

set [ find default-name=ether1 ] comment=WAN name=ether1-wan

set [ find default-name=ether2 ] comment="VLAN20 OFFICE"

set [ find default-name=ether3 ] comment="VLAN30 GUEST"

set [ find default-name=ether4 ] comment="TRUNK 1" name=ether4-trunk

set [ find default-name=ether5 ] comment="TRUNK 2" name=ether5-trunk

Это будет особенно актуально, если устройств приличное количество и/или они оснащены большим количеством интерфейсов.

s2_p4_routeros_interfaces.jpg

Как видите, ether1 мы переименовали в ether1-wan, а ether4/ether5 в ether4-trunk/ether5-trunk.

На интерфейсе ether1-wan у нас подключение к сети провайдера. Настраиваем динамическое получение IP (от DHCP-сервера):

/ip dhcp-client

add dhcp-options=hostname,clientid disabled=no interface=ether1-wan

s2_p5_routeros_dhcp-client.jpg

s2_p6_routeros_dhcp-client.jpg

При использовании софтового VLAN, существует два основные типа интерфейсов:

  • тегированные (trunk);

  • нетегированные (access);

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

Нетегированные (untagged) интерфейсы используют для подключения конечных устройств и клиентов, их еще можно называть «портами доступа» (access port).

При программной реализации портов доступа VLAN, в RouterOS используются бриджи. Поскольку у нас предполагается выделение 2 портов под офисную и гостевую сеть, создаем для них соответствующие бриджи:

/interface bridge

add comment=OFFICE fast-forward=no name=bridge-vlan20-office

add arp=reply-only comment=GUEST fast-forward=no name=bridge-vlan30-guest

s2_p7_routeros_bridges.jpg

Как вы могли заметить, для гостевого бриджа мы используем дополнительный параметр arp=reply-only, он будет использоваться совместно с ARP для того, чтобы сделать невозможным использование самоназначенных IP в гостевой сети. Иными словами, маршрутизатор не будет отвечать на запросы устройств, на которых назначен статический IP.

Перед настройкой DHCP, заранее, для каждой подсети необходимо создать пулы адресов:

/ip pool

add comment=OFFICE name=pool-vlan20-office ranges=10.20.0.11-10.20.0.253

add comment=GUEST name=pool-vlan30-guest ranges=10.30.0.11-10.30.0.253

s2_p8_routeros_ip-pool.jpg

Если в сети больше 250+ устройств, необходимо создавать дополнительные пулы. Затем они выбираются в параметре «next pool» (следующий пул, который будет задействован после исчерпания предыдущего).

В нашем случае это 10.20.0.11-10.20.0.253 для офисных устройств и 10.30.0.11-10.30.0.253 для гостевых. Первые и последний IP-адрес в обоих диапазонах мы резервируем для будущих возможных сервисов (делать это вовсе не обязательно).

Назначать все IP мы будем средствами Mikrotik, при помощи DHCP-серверов:

/ip dhcp-server

add address-pool=pool-vlan20-office disabled=no interface=\

   bridge-vlan20-office name=dhcp-vlan20-office

add add-arp=yes address-pool=pool-vlan30-guest disabled=no interface=\

   bridge-vlan30-guest name=dhcp-vlan30-guest

s2_p9_routeros_dhcp-server.jpg

Обратите внимание! Создано 2 сервера, по одному на каждый бридж. Каждый сервер будет выдавать IP из своего пула, таким образом, для VLAN 20 и VLAN 30 будут выдаваться адреса с разных подсетей (10.20.х и 10.30.х).

Для гостей мы дополнительно используем параметр add-arp=yes, он будет добавлять ARP для всех выданных аренд (DHCP leases). Если этого не сделать, гостевая сеть не будет работать, т.к. гостевой бридж не будет отвечать на запросы клиентов – ранее в настройках бриджа мы уже задали параметр arp=reply-only (только отвечать).

В каждой из подсетей назначаем маршрутизатору свой отдельный IP:

/ip address

add address=10.20.0.1/24 comment=OFFICE interface=bridge-vlan20-office \

   network=10.20.0.0

add address=10.30.0.1/24 comment=GUEST interface=bridge-vlan30-guest network=\

   10.30.0.0

s2_p10_routeros_addresses.jpg

Затем для каждой подсети указываем DNS и шлюз, используемые по-умолчанию:

/ip dhcp-server network

add address=10.20.0.0/24 comment=OFFICE dns-server=10.20.0.1 gateway=\

   10.20.0.1 netmask=24

add address=10.30.0.0/24 comment=GUEST dns-server=10.30.0.1 gateway=10.30.0.1 \

   netmask=24

s2_p11_routeros_networks.jpg

Поскольку к интерфейсам ether4 и ether5 будут подключены другие маршрутизаторы/коммутаторы (R2 и R3), их необходимо превратить в транки, выдав по 2 vlan в каждый порт:

/interface vlan

add interface=ether4-trunk name=vlan20-trunk-to-R2 vlan-id=20

add interface=ether5-trunk name=vlan20-trunk-to-R3 vlan-id=20

add interface=ether4-trunk name=vlan30-trunk-to-R2 vlan-id=30

add interface=ether5-trunk name=vlan30-trunk-to-R3 vlan-id=30

s2_p12_routeros_vlans.jpg

Делать это можно как с вкладки Interfaces/VLAN, так и с основного раздела.

VLAN’ы созданы, но порты ether2 и ether3 все еще ни к чему не привязаны.

Порт ether2 необходимо закинуть в bridge-vlan20-office и туда же закинуть 20-й влан с интерфейсов ether4 и ether5. Те же действия выполняем для ether3 и vlan 30 на транковых портах.

Иными словами, при помощи бриджа мы объединили каждый vlan в свой бридж, и туда же закинули соответствующие порты доступа. Как видите, ничего сложного здесь нет.

/interface bridge port

add bridge=bridge-vlan20-office comment="OFFICE access port" interface=ether2

add bridge=bridge-vlan30-guest comment="GUEST access port" interface=ether3

add bridge=bridge-vlan20-office comment="VLAN 20" interface=\

   vlan20-trunk-to-R2

add bridge=bridge-vlan20-office comment="VLAN 20" interface=\

   vlan20-trunk-to-R3

add bridge=bridge-vlan30-guest comment="VLAN 30" interface=vlan30-trunk-to-R2

add bridge=bridge-vlan30-guest comment="VLAN 30" interface=vlan30-trunk-to-R3

s2_p14_routeros_bridge.jpg

Собственно по части VLAN на устройстве R1 все готово.

Далее, для удобства работы с правилами Firewall, фильтрами и ограничениями, создаем 2 списка интерфейсов:

/interface list

add comment=defconf name=WAN

add comment=defconf name=LAN

s2_p15_routeros_interface-lists.jpg

После чего распределяем интерфейсы по группам:

/interface list member

add interface=ether1-wan list=WAN

add interface=bridge-vlan20-office list=LAN

add disabled=yes interface=bridge-vlan30-guest list=LAN

В группу WAN (внешние интерфейсы) добавляем ether1-wan, т.к. он используется для подключения к сети провайдера. Если вы используете PPPoE, в WAN следует добавлять и ether1, и pope-client. То же самое применимо и к другим типам подключения с VPN. Использование групп интерфейсов позволяет оптимизировать правила Firewall.

bridge-vlan20-office с офисной подсетью добавляем в список LAN-интерфейсов. Во-первых, нам нужно в этой сети иметь доступ к Интернет. Во-вторых, мы хотим сохранить возможность управления Mikrotik из этой подсети.

bridge-vlan30-guest в список LAN-интерфейсов не добавляем (disabled=yes). Почему? Потому, что последующими правилами мы запретим маршрутизатору принимать входящие соединения (input) с гостевой сети. Из гостевой сети разрешать будем только транзитный траффик (forward) в сеть Интернет. Иными словами, зайти в настройки RouterOS гости не смогут, даже если будут знать логин и пароль администратора.

Чтобы Mikrotik не обнаруживался в Winbox Neighbor, задаем соответствующие ограничения, указав доступ для группы LAN:

/ip neighbor discovery-settings

set discover-interface-list=LAN

s2_p16_routeros_neighbors.jpg

Дополнительно устанавливаем ограничения для подключения к Mikrotik по MAC:

/tool mac-server

set allowed-interface-list=LAN

/tool mac-server mac-winbox

set allowed-interface-list=LAN

s2_p17_routeros_mac-server.jpg

Подключения будут разрешены только с интерфейсов, входящих в LAN-группу.

Чтобы пользователи обеих подсетей могли выходить в интернет, необходимо разрешить запросы к DNS-серверу и настроить маскарадинг:

/ip dns

set allow-remote-requests=yes

/ip firewall nat

add action=masquerade chain=srcnat comment="defconf: masquerade" \

   ipsec-policy=out,none out-interface-list=WAN

s2_p18_routeros_dns-cfg.jpg

s2_p19_routeros_masquerade.jpg

Бывают случаи, когда одному из VLAN доступ к Интернет необходимо запретить. В этом случае в правилах маскарадинга следует явно указать src.address, для которого выполнять обработку траффика. Например, для vlan 20 необходимо указать src.address 10.20.0.0/24. Пользователи, находящиеся в vlan 30 имеют адреса 10.30.0.0/24, поэтому правило на них распространяться не будет и, соответственно, доступ в Интернет они не получат.

Если вы используете стандартные (defconf) правила Firewall, клиенты в гостевой сети не смогут использовать локальный DNS.

Правила необходимо привести до следующего вида:

/ip firewall filter

add action=accept chain=input comment=\

   "defconf: accept established,related,untracked" connection-state=\

   established,related,untracked

add action=drop chain=input comment="defconf: drop invalid" connection-state=\

   invalid

add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp

add action=accept chain=input comment="DNS for VLAN 30" dst-port=53 \

   in-interface=bridge-vlan30-guest protocol=udp

add action=drop chain=input comment="defconf: drop all not coming from LAN" \

   in-interface-list=!LAN

add action=accept chain=forward comment="defconf: accept in ipsec policy" \

   ipsec-policy=in,ipsec

add action=accept chain=forward comment="defconf: accept out ipsec policy" \

   ipsec-policy=out,ipsec

add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \

   connection-state=established,related

add action=accept chain=forward comment=\

   "defconf: accept established,related, untracked" connection-state=\

   established,related,untracked

add action=drop chain=forward comment="defconf: drop invalid" \

   connection-state=invalid

add action=drop chain=forward comment=\

   "defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat \

   connection-state=new in-interface-list=WAN

s2_p20_routeros_firewall.jpg

Почему так происходит?

Все дело в наличии правила:

action=drop chain=input in-interface-list=!LAN

Данное правило будет отбрасывать все пакеты, приходящие в цепочку input (входящий траффик) с интерфейсов, не входящих в LAN.

Для снятия данного ограничения, чуть выше соответствующего запрещающего правила, мы добавили специальное разрешающее правило:

action=accept chain=input dst-port=53 in-interface=bridge-vlan30-guest protocol=udp

Это правило будет разрешать входящие соединения на Mikrotik из гостевого бриджа по протоколу UDP на 53-порт, который используется для DNS-сервера.

Казалось бы, вот и все… но нет. Есть нюансы, о которых во многих инструкциях не сказано ни слова. Дело в том, что на устройствах Layer 2, VLANы между собой изолированы полностью.

В случае с Layer 3 не все так просто. Маршрутизатор знает все адреса и подсети, поэтому может возникнуть ситуация, когда устройства из одного VLAN смогут увидеть устройства из другого VLAN. Тут все зависит от маршрутов, правил и фильтров.

Для того, чтобы запретить маршрутизатору обрабатывать траффик между VLAN 20 и VLAN 30 можно написать соответствующее правило Firewall для цепочки forward. Но мы реализуем это более эстетично – через правила маршрутизации:

/ip route rule

add action=unreachable dst-address=10.30.0.0/24 src-address=10.20.0.0/24

add action=unreachable dst-address=10.20.0.0/24 src-address=10.30.0.0/24

s2_p21_routeros_routing_rules.jpg

Иными словами, мы явно запрещаем маршрутизировать траффик из 10.30.0.0/24 в 10.20.0.0/24 и наоборот.

Настройка маршрутизаторов R2 и R3

Для маршрутизаторов R2 и R3 настроек куда меньше, т.к. по сути, они у нас выполняют функции управляемых коммутаторов. Далее мы приведем конфигурацию для R2, для R3 она будет идентична, так что вы спокойно сможете сделать выгрузку-загрузку файла-конфигурации.

Выгрузка:

export file=conf2.rsc

Загрузка

import file=conf2.rsc

Где conf2.rsc – название файла конфигурации.

Как и ранее, первым делом отключаем ненужные сервисы, создаем новую учетку, задаем идентификатор устройства. Полагаем, данные операции вы можете выполнить самостоятельно.

Для того, чтобы распределить наши вланы, создаем все те же 2 бриджа:

/interface bridge

add comment=OFFICE fast-forward=no name=bridge-vlan20-office

add comment=GUEST fast-forward=no name=bridge-vlan30-guest

Для удобства, к интерфейсам можно добавить комментарии:

/interface ethernet

set [ find default-name=ether1 ] comment="UPLINK TRUNK" name=ether1-trunk

set [ find default-name=ether2 ] comment=OFFICE

set [ find default-name=ether4 ] comment=GUEST

Интерфейс ether1 при этом мы также немного переименовали, добавив приставку «trunk». После этого вешаем на него наши VLANы:

/interface vlan

add interface=ether1-trunk name=vlan20-uplink vlan-id=20

add interface=ether1-trunk name=vlan30-uplink vlan-id=30

s2_p22_routeros_r2_interfaces.jpg

В R2 и R2 транковый порт всего один, оставшиеся 4 интерфейса разделены в две группы, vlan 20 и vlan 30.

Соответствующим образом (согласно схеме) распределяем интерфейсы по ранее созданным бриджам:

/interface bridge port

add bridge=bridge-vlan20-office comment="UPLINK OFFICE" interface=\

   vlan20-uplink

add bridge=bridge-vlan30-guest comment="UPLINK GUEST" interface=vlan30-uplink

add bridge=bridge-vlan20-office comment=OFFICE interface=ether2

add bridge=bridge-vlan20-office interface=ether3

add bridge=bridge-vlan30-guest comment=GUEST interface=ether4

add bridge=bridge-vlan30-guest interface=ether5

s2_p23_routeros_r2_vlans.jpg

С аплинка vlan’ы необходимо раскинуть каждый в свой бридж, 20-й в bridge-vlan20-office, 30-й в bridge-vlan20-guest.

Далее в эти же бриджи добавляем требуемые порты. В нашем случае 2 и 3 порт добавлены в офисную сеть, а 4 и 5 – в гостевую.

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

/interface list

add comment="OFFICE Subnet" name=LAN

После чего заносим в этом список 20-й влан с аплинка и офисный бридж:

/interface list member

add interface=bridge-vlan20-office list=LAN

add interface=vlan20-uplink list=LAN

Для ограничения доступа добавляем правило в файрволл:

/ip firewall filter

add action=drop chain=input in-interface-list=!LAN

После этого маршрутизатор перестанет принимать входящие (input) соединения с сетей, не входящих в список «LAN», при этом пересылка пакетов (forward) останется как есть.

Для удобства, самому маршрутизатору можно назначить IP-адрес:

/ip dhcp-client

add add-default-route=no dhcp-options=clientid,hostname disabled=no \

   interface=bridge-vlan20-office

Как видите, IP мы будем получать только в 20-м VLAN непосредственно от DHCP-сервера. В 30-м VLAN устройству IP-адрес не нужен, на пересылку пакетов это никак не влияет.

Вот собственно и все. Можно приступать к проверке портов.

s3_testing_p1_scan_vlan20_office_subnet.jpg

10.20.0.1 это главный шлюз в 20-м vlan, 10.20.0.251/252 – маршрутизаторы R2/R3. HP-NC360T это тестовый ПК, выполняющий сканирование подсети.

Если вы выполните сканирование подсети 10.30.0.0/24, устройства отображаться не будут, хотя они там есть:

s3_testing_p3_scan_vlan30.jpg

10.30.0.252/253 это IP маршрутизаторов, которые мы добавляли для удобства управления из vlan 30 на этапе начальной конфигурации, у вас они отображаться не будут в виду отсутствия dhcp-client на R2 и R3 в VLAN 30.

Теперь что касается производительности. Как вы помните, мы уже упоминали о том, что программные VLAN отнимают ресурсы процессора. Чтобы изучить взаимосвязь, выполняем небольшой тест скорости между двумя ПК. Первый ПК подключен к R2, второй – к R3.

s3_testing_p4_speedtest.jpg

Обычная пересылка пакетов в локальной сети приводит к использованию ресурсов CPU. В конкретном примере сгенерирован дуплексный траффик с суммарной скоростью около 180 Мбит/сек (100 Мбит FDX), при этом загрузка процессора QCA9531 (650 МГц) составляет в среднем до 20%.

s3_testing_p5_speedtest.jpg

Как видим, даже для столь бюджетного решения не составляет особых проблем обрабатывать траффик в софтовой конфигурации VLAN. Где это и будет ощущаться, так это в больших сетях, с большим числом соединений между устройствами, например, при наличии NAS и гостевых HotSpot. Впрочем, такие решения как RB750Gr3, RB3011, RB450Gx4 с подобной задачей справляются отлично, не говоря уже о старших моделях.

Не забывайте, в сложных сетях со сложной конфигурацией стоит применять соответствующее более высокоуровневое оборудование, а при необходимости, и вовсе, использовать Hardware VLAN.

Для предприятий VLAN является весьма оправданным решением, позволяющем повысить защищенность сети в целом. К примеру, если у вас есть торговые залы, вполне логичным шагом будет поместить все кассовые ПК и POS-системы в VLAN, отличный от офисного. Если же вы используете IP-видеонаблюдение, для него также стоит выделить отдельный VLAN. В конечном итоге, даже если в вашем программном обеспечении и будет уязвимость, она будет изолирована в отдельной подсети. Вспомните сколько проблем доставил «Petya». Именно технология VLAN позволила многим предприятиям понести «минимальные потери» и ограничить распространение вредоносного ПО.  

Дополнительная справочная информация по теме VLAN:

logo
Базовые основы настройки VLAN в RouterOS на оборудовании Mikrotik: «VLAN для чайников», сегментация сети предприятия

Возврат к списку


Популярное оборудование

Авторизуйтесь, чтобы добавить отзыв