Заметки о кошководстве :)

VLAN – это аббревиатура, означающая Virtual Local Area Network (виртаульная локальная сеть). На одном физическом порту может совместно существовать несколько VLAN-сетей, которые настраиваются программными средствами Linux, а не конфигурацией физических интерфейсов (но настройка самих интерфейсов тоже требуется). С помощью VLAN можно разделить сетевые ресурсы для использования различных сервисов.

Преимущества VLAN следующие:

  • Производительность
  • Простота управления
  • Безопасность
  • Магистральные cоединения (trunk)
  • Возможность разделения внутри локальной сети из соображений безопасности
  • Отсутствие необходимости настройки аппаратных средств при физическом переносе сервера в другое место.

Содержание

Требования к сетевому оборудованию

Чтобы использовать VLAN, вам потребуется:

  1. Коммутатор с поддержкой стандарта IEEE 802.1q в сети Ethernet.
  2. Сетевая карта, которая работает с Linux и поддерживает стандарт 802.1q .

Возможные проблемы

Наиболее распространенные при настройке VLAN в Linux проблемы следующие:

  • Не все сетевые драйверы поддерживают VLAN. Может потребоваться обновление драйвера.
  • Возможны проблемы с MTU. Работа VLAN основана на присвоении каждому кадру тега длиной 4 байта, то есть заголовок фактически расширяется с 14 до 18 байт. Тег VLAN содержит идентификатор (VLAN ID) и приоритет.
  • Лучше не использовать VLAN ID, равный 1, так как он может быть зарезервирован для административных целей.

Сначала убедитесь, что драйвер (модуль) ядра Linux под названием 8021 загружен:

# lsmod | grep 8021q

vlan1.jpg

Если он не загружен, загрузите его командой modprobe:

# modprobe 8021q

Настройка VLAN в CentOS/RHEL/Fedora Linux

Допустим, нам нужно создать VLAN интерфейс с тегом 100 который будет работать на физическом интерфейсе eth0. Для этого создадим файл /etc/sysconfig/network-scripts/ifcfg-eth0.100. Узнать название сетевых интерфейсов в системе можно с помощью команды ifconfig.

# ifconfig

vlan2.jpg

Создаем новый файл например с помощью редактора vim

# vim /etc/sysconfig/network-scripts/ifcfg-eth0.100

Добавьте в него следующий код

# Конфигурация VLAN с ID – 100 для интерфейса eth0 #DEVICE=eth0.100  BOOTPROTO=none  ONBOOT=yes  IPADDR=192.168.1.5  NETMASK=255.255.255.0  USERCTL=no  NETWORK=192.168.1.0  VLAN=yes

Жирным шрифтом выделены строки которые относятся к настройкам VLAN. Остальные настройки аналогичны настройкам на физическом интерфейсе.

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

# systemctl restart network

Теперь можно проверить созданные интерфейсы командой ifconfig. Мы должны увидеть наш VLAN интерфейс

vlan3.jpg

Конфигурация VLAN в Debian и Ubuntu

Откройте файл /etc/network/interfaces любым текстовым редактором, например nano

$ sudo nano /etc/network/interfaces

Добавьте в файл следующие строки:

##vlan с ID-100 для интерфейса eth0 with ID - 100 в Debian/Ubuntu Linux##  auto eth0.100  iface eth0.100 inet static  address 192.168.1.200  netmask 255.255.255.0  vlan-raw-device eth0

auto eth0.100 — «поднимать» интерфейс при запуске сетевой службыiface eth0.100 — название интерфейсаvlan-raw-device— указывает на каком физическом интерфейсе создавать VLAN.

Сохраните и закройте файл. После чего перезапустите сеть.

systemctl restart network

Важно! Если у вас используется Ubuntu версии 17.10 и выше, то необходимо установить пакет ifupdown или настраивать VLAN интерфейсы через netplan

Использование команды vconfig

Также существует команда vconfig. Она позволяет вам создавать и удалять устройства VLAN в ядре с поддержкой VLAN. Устройства VLAN – это виртуальные Ethernet-устройства, которые представляют виртуальные локальные сети в физической. Это еще один метод настройки VLAN. Чтобы добавить VLAN с ID 5 для интерфейса eth0 выполните следующую команду:

# vconfig add eth0 5

Команда vconfig add создает на интерфейсе eth0 VLAN-устройство, в результате чего появляется интерфейс eth0.5. Теперь с помощью ifconfig настроим ip адрес

# ifconfig eth0.5 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 up

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

# cat /proc/net/vlan/eth0.5

vlan4.jpg

Учтите, что после перезагрузки системы этот интерфейс будет удален.

Для удаления интерфейса вручную выполните следующие действия:

# ifconfig eth0.5 down  # vconfig rem eth0.5

Создание устройства VLAN командой ip

Для интерфейса eth0 и VLAN ID 10 выполните следующие команды:

# ip link add link eth0 name eth0.10 type vlan id 10  # ip -d link show eth0.10

vlan5.jpg

Устройство нужно активировать и присвоить ему IP-адрес:

# ip addr add 192.168.1.200/24 brd 192.168.1.255 dev eth0.10  # ip link set dev eth0.10 up
# ip link set dev eth0.10 down  # ip link delete eth0.10

Этот интерфейс также будет удален после перезагрузки системы

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

ВЗЯТО С: http://mcp1971.livejournal.com/1851.htmlДиапазоны номеров VLANовВсе VLANы доступа можно разбить на два диапазона:Обычный диапазон VLANов— используется в малых и средних сетях- имеют номера от 1 до 1005- номера с 1002 до 1005 зарезервированы для Token Ring and FDDI VLANов- номера 1, 1002 и 1005 создаются автоматически и не могут быть удалены- все данные о VLANах хранятся в файле vlan.dat, который располагается на флеш памяти (flash:vlan.dat)- протокол VTP может изучать VLANы только обычного диапазрна и сохранять сведения о них в vlan.datРасширенный диапазон VLANов— используются провайдерами или на очень больших сетях для расширения инфраструктуры VLANов- имеют номера от 1006 до 4094- поддерживают меньше возможностей, чем VLANы обычного диапазона- все данные о VLANах хранятся в рабочей конфигурации- нет поддержки VTPКоммутатор Cisco Catalyst 2960 поддерживает до 255 VLANов обычного и расширенного диапазоновТипы VLANовВсе VLANы можно отнести к конкретному типу:1. Data VLAN (VLAN данных) — VLAN, в котором проходят данные, генерируемые пользователями. Но это не могут быть голосовые данные или управляющий трафик для коммутаторов.2. Default VLAN (VLAN по умолчанию) — VLAN, в котором находятся все порты коммутатора перед началом конфигурирования. VLAN по умолчанию для коммутаторов Cisco — VLAN1. По умолчанию управляющий трафик 2-го уровня, такой как CDP и STP, ассоциируется с VLAN1.3. Native VLAN (родной VLAN) — VLAN, через который на порту, сконфигурированном как транковый порт (802.1Q), и пропускающем с помощью 802.1Q тегированные фреймы, сможет подключиться рабочая станция и передавать нетегированные фреймы. Это реализовано для того, чтобы к транковому порту можно было подключить компьютер, который не может тегировать фреймы. Рекомендуется использовать родным VLANом VLAN, отличный от VLAN1.4. Management VLAN (управляющий VLAN) — VLAN, через который происводится конфигурирование. Для этого VLANу надо назначить IP адрес и маску подсети.5. Voice VLAN (голосовой VLAN) — VLAN, предназначенный для передачи голоса. Такой VLAN должен обеспечивать:— гарантированнуюполосу пропусканиядля обеспечениякачества передачи голоса— приоритет голосового трафика по сравнению сдругими типамитрафика— возможностьнаправлятьтрафик в обход загруженных районовв сети— иметь задержкуменее 150миллисекундв сетиБывает, что компьютер подключается к коммутатору через IP телефон. Получается, что надо разграничить на порту голосовой трафик и трафик данных. Для этого телефон представляет собой трехпортовый коммутатор. Один порт подключен к коммутатору. Второй — внутренний порт для передачи голосового трафика. Третий порт — порт, к которому подключен компьютер. Трафик с внутреннего порта телефона тегируется номером голосового VLAN. Трафик с компьютера не тегируется. Поэтому коммутатор может определить трафик, которому надо предоставить приоритет. Точно также происходит разделение входящего трафика — тегированный номером голосового VLAN — на телефон, не тегированный — на компьютер. Соответственно на порту коммутатора настраивается и голосовой VLAN, и VLAN доступа.Режимы работы портов коммутатора в VLANахКаждый порт коммутатора может быть настроен для работы конкретного типа VLANа различными методами:Статический VLAN — каждому порту вручную указывается VLAN, к которому он принадледит.Динамический VLAN — каждому порту указывается VLAN, к которому он принадледит, с помощью Сервера политики членства в VLAN (VMPS — VLAN Membership Policy Server). СVMPSможно назначитьVLAN портам коммутатора динамически,на основеМАС-адреса устройства, подключенного кпорту.Это полезно, когдавы перемещаетеустройство спорта одного коммутаторв сетик портудругого коммутаторав сети, коммутатординамически назначаетVLANдля этого устройства на новом порту.Голосовой VLAN — порт настраивается и для передачи тегированного голосового трафика, и для передачи нетегированного трафика данных. Для настройки голосовой VLAN используются команды:S1(config)#interface fastethernet 0/18S1(config-if)#mls qos trust cos — определяем голосовй трафик, как приоритетныйS1(config-if)#switchport voice vlan 150 — определяем голосовой VLANS1(config-if)#switchport mode access — определяем, что этот порт для данных (порт доступа — нетегированный трафик)S1(config-if)#switchport access vlan 20 — определяем VLAN для данныхТранки VLANовТранк — это соединение типа точка-точка между сетевыми устройствами, которые передают данные более чем одного VLANа. Если бы не было транков, для каждого VLANа при соединении коммутаторов необходимо было бы выделять отдельный порт. При транке все VLANы проходят через один порт.Для того, чтобы транковый порт знал, к какому VLANу принадлежит фрейм, передаваемый через порт, в заголовок фрейма вводится тег 802.1Q, в котором указывается номер VLANа, также приоритет передаваемого кадра.Если на порт поступает нетегированный фрейм, коммутатор автоматически отправляет его в родной VLAN. По умолчанию родным VLANом является VLAN1. Но его можно изменить командой:S1(config-if)#switchport mode trunkS1(config-if)#switchport trunk native vlan vlan-idДля проверки, на какой родной VLAN передается нетегированный фрейм, используется команда:S1#show interfaces interface-id switchportDTPDTP — это проприеритарный протокол коспании Cisco, который позволяет автоматически настраивать транкинговые режимы работы портов коммутатора. Бывает три режима работы:On (по умолчанию) — коммутатор периодически отправляет на удаленный порт DTP-фрейм, которым извещает, что он работает как транковый порт. Включается командой S1(config-if)#switchport mode trunk. Если удаленный порт работает как access-порт, локальный порт не рекомендуется использовать с этим режимом DTP.Dynamic auto — коммутатор периодически отправляет на удаленный порт DTP-фрейм, которым извещает, что он готов работать как транковый порт, но не требует работать в транковом режиме. Порт включает транковый режим, если удаленный порт уже работает, как транковый или у него настроен режими Dynamic desirable, порты согласовуют работу в транковом режиме. Если удаленный порт настроен тоже как  Dynamic auto, согласование не проводится — порты работают как порты доступа. Если удаленный порт — access, локальный тоже access. Включается командой S1(config-if)#switchport mode dynamic auto.Dynamic desirable — коммутатор периодически отправляет на удаленный порт DTP-фрейм, которым извещает, что он готов работать как транковый порт и просит работать в транковом режиме. Если удаленный порт работает в режиме Dynamic auto или Dynamic desirable, порты переходят работать в транковый режим. Если удаленный порт не поддерживает согласование, локальный порт работает в нетранковом режиме.Отключить согласование режимов работы можно командой S1(config-if)#switchport nonegotiate.Команды для настройка VLANов1. S1(config)#vlan vlan id — добавление VLAN.2. S1(config-vlan)#name vlan name — присвоение имени VLANу.3. S1#show vlan brief — проверка наличия VLANа в база данных, access-портов, принадлежащих VLANу4. S1(config-if)#switchport mode access — перевод порта в режим работы access-порта.    S1(config-if)#switchport access vlan vlan id — назначение номера VLANа порту.5. S1#show interfaces [interface-id  | vlan vlan-id] | switchport — проверка режима работы конкретного интерфейса6. S1(config-if)#no switchport access vlan — исключение порта из VLANа с настроенным номером и перевод его вVLAN по умолчанию7. S1(config)#no vlan vlan id — удаление VLANа из базы данных. Перед этим обязательно надо удалить все порты из этого VLANа, иначе они будут недоступны.8. S1#delete flash:vlan.dat — удаление всей базы VLANов. Останутся только VLANы по умолчанию.9. S1(config-if)#switchport mode trunk — принудительный перевод режима работы порта в транковый.10. S1(config-if)#switchport trunk native vlan vlan id — изменение родного VLANа для транкового порта.11. S1(config-if)#switchport trunk allowedvlan id — назначение VLANов, которые могут проходить через порт. Без применения этой команды все VLANы могут проходить через порт.12. S1(config-if)#no switchport trunk allowed vlan — сброс всех разрешенных VLANов на транковом порту.13. S1(config-if)#no switchport trunk native vlan — возвращение VLAN1 как родного VLANа на транковом порту.

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

В качестве примера создадим две виртуальных сети с доступом друг к другу и в интернет.

Создание интерфейсов

Графический интерфейс

Для создания нового интерфейса:

  1. Перейдите на вкладку Network → Interfaces.
  2. Задайте имя новому интерфейсу.
  3. Для параметра Type выберите значение VLAN.
  4. Задайте идентификатор сети в поле VLAN ID.
  5. Выберите для параметра Role значение LAN.
  6. В поле IP/Netmask задайте адрес и маску сети. fvlan.interface1.6uz0xy.png
  7. Добавьте адреса для созданных VLAN. Для этого перейдите в раздел Policy & Objects → Addresses. fvlan.interface2.Gehar9.png
  8. Создайте новый адрес и укажите его имя и IP-адрес. В последних версиях прошивки FortiOS данные адреса создаются автоматически при создании VLAN-интерфейсов. fvlan.interface2.UMxH47.png

Консольный интерфейс

Для создания нового интерфейса через CLI введите:

config system interface     edit “VLAN 101”         set vdom root         set ip 192.168.101.1 255.255.255.0         set allowaccess ping https ssh http         set role lan         set interface lan         set vlanid 101     next     edit “VLAN 102”         set vdom root         set ip 192.168.102.1 255.255.255.0         set allowaccess ping https ssh http         set role lan         set interface lan         set vlanid 102 end

Добавьте адреса для созданных VLAN:

config firewall address     edit VLAN 101 address         set type ipmask         set subnet  <mas next="" edit="" vlan="" address="" set="" type="" ipmask="" subnet=""> ede></mas>

Настройка политики безопасности

Графический интерфейс

Создайте две политики для доступа подсетей VLAN друг другу. Для добавления правил:

  1. Перейдите в раздел Policy & Objects → IPv4 Policy и создайте новую политику.
  2. В качестве Incoming Interface выберите интерфейс первого VLAN, а в качестве Outgoing Interface — интерфейс второго VLAN.
  3. В качестве Source выберите адрес первого VLAN, в качестве Destination — адрес второго VLAN.
  4. В данной политике NAT не нужен, поэтому убедитесь, что он выключен. fvlan.policy1.HVcMQZ.png
  5. Создайте вторую политику, но поменяйте местами VLAN. fvlan.policy2.pmWtrB.png
  6. Создайте две политики для каждой подсети VLAN для доступа в интернет по аналогии с предыдущими, но в качестве Outgoing Interface выберите внешний интерфейс.

В данных политиках убедитесь, что NAT включен.

Консольный интерфейс

Для создания новой политики через CLI введите:

config firewall policy     edit 3         set name "VLAN 101 to VLAN 102"         set srcintf "VLAN 101"         set dstintf "VLAN 102"         set srcaddr "VLAN 101 address"         set dstaddr "VLAN 102 address"         set action accept         set schedule "always"         set service "ALL"         set nat disable      next edit 4         set name "VLAN 102 to VLAN 101"         set srcintf "VLAN 102"         set dstintf "VLAN 101"         set srcaddr "VLAN 102 address"         set dstaddr "VLAN 101 address"         set action accept         set schedule "always"         set service "ALL"          set nat disable     next end

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

config firewall system          edit 5         set name "VLAN 101 to Internet"         set srcintf "VLAN 101"         set dstintf "wan1"         set srcaddr "VLAN 101 address"         set dstaddr "all"         set action accept         set schedule "always"         set service "ALL"     next     edit 6         set name "VLAN 102 to Internet"         set srcintf "VLAN 102"         set dstintf "wan1"         set srcaddr "VLAN 102 address"         set dstaddr "all"         set action accept         set schedule "always"         set service "ALL"     next end

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

  • https://itproffi.ru/nastrojka-vlan-interfejsov-v-linux/
  • http://laferont.blogspot.com/2013/12/vlan.html
  • https://kb.selectel.ru/docs/networks-services/firewalls/basic-setup/vlan/

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