Содержание
VLAN – это аббревиатура, означающая Virtual Local Area Network (виртаульная локальная сеть). На одном физическом порту может совместно существовать несколько VLAN-сетей, которые настраиваются программными средствами Linux, а не конфигурацией физических интерфейсов (но настройка самих интерфейсов тоже требуется). С помощью VLAN можно разделить сетевые ресурсы для использования различных сервисов.
Преимущества VLAN следующие:
- Производительность
- Простота управления
- Безопасность
- Магистральные cоединения (trunk)
- Возможность разделения внутри локальной сети из соображений безопасности
- Отсутствие необходимости настройки аппаратных средств при физическом переносе сервера в другое место.
Содержание
Требования к сетевому оборудованию
Чтобы использовать VLAN, вам потребуется:
- Коммутатор с поддержкой стандарта IEEE 802.1q в сети Ethernet.
- Сетевая карта, которая работает с Linux и поддерживает стандарт 802.1q .
Возможные проблемы
Наиболее распространенные при настройке VLAN в Linux проблемы следующие:
- Не все сетевые драйверы поддерживают VLAN. Может потребоваться обновление драйвера.
- Возможны проблемы с MTU. Работа VLAN основана на присвоении каждому кадру тега длиной 4 байта, то есть заголовок фактически расширяется с 14 до 18 байт. Тег VLAN содержит идентификатор (VLAN ID) и приоритет.
- Лучше не использовать VLAN ID, равный 1, так как он может быть зарезервирован для административных целей.
Сначала убедитесь, что драйвер (модуль) ядра Linux под названием 8021 загружен:
# lsmod | grep 8021q
Если он не загружен, загрузите его командой modprobe:
# modprobe 8021q
Настройка VLAN в CentOS/RHEL/Fedora Linux
Допустим, нам нужно создать VLAN интерфейс с тегом 100 который будет работать на физическом интерфейсе eth0. Для этого создадим файл /etc/sysconfig/network-scripts/ifcfg-eth0.100
. Узнать название сетевых интерфейсов в системе можно с помощью команды ifconfig.
# ifconfig
Создаем новый файл например с помощью редактора 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 интерфейс
Конфигурация 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
Учтите, что после перезагрузки системы этот интерфейс будет удален.
Для удаления интерфейса вручную выполните следующие действия:
# 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
Устройство нужно активировать и присвоить ему 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.
У каждой виртуальной сети есть свой идентификатор Vlan ID или VID, который используется в стандарте 802.1Q. Стандартный для сетевых устройств диапазон значений Vlan ID — от 0 до 4095. При этом, как правило, VID’ы 0 и 4095 использовать нельзя, так как они зарезервированы для иных задач и доступными остаются номера он 1 до 4094. Кстати, какое бы ни было ограничение на количество поддерживаемых вланов (10, 100 или 1000), их идентификаторы, тем не менее, можно брать из всего диапазона. На оборудовании Циско различают две группы Vlan — normal-range и extended-range. По русски — обычный и расширенный диапазоны соответственно. В стандартный диапазон входят Vlan — от 1 до 1005, а в расширенный — от 1006 до 4094. При этом надо учитывать, что VID 1002 — 1005 зарезервированы для Token Ring и FDDI Vlan и их занять не получится.
Теперь давайте посмотрим на коммутатор Cisco Catalyst. В своем примере я рассмотрю 2960 c версией IOS 12.2(35)SE5). Заходим на свитч в режим Enable. Набираем команду:
switch#show vlan
Результатом будет список всех созданных на устройстве влан:
switch#configure terminal
После этого набираем команду:
В моём примере я создаю 11й влан:
Заметьте, что виртуальной сети можно дать имя с помощью команды name.
Удалить влан можно с помощью команды:
Примечание: На древних версиях IOS все манипуляции с вланами приходилось осуществлять в отдельно базе — vlan database. К счастью, сейчас от этого анахронизма ушли. Для того, чтобы добавить порт в созданный влан, нужно так же, в режиме конфигурации выбрать нужный порт:
switch#interface gigabitEthernet <номер_порта>
И набрать команду:
Вот как это выглядит на «живом» коммутаторе:
Для управления коммутаторами cisco используется специальный управляющий Vlan. Для его настройки надо создать его в списке вланов, как описано выше, затем в режиме конфигурации набрать команду:
Этим Вы создадите управляющую виртуальную сеть на коммутаторе. Теперь устройству надо присвоить IP-адрес:
switch(config-if)#ip address <маска сети>
После этого не забудьте поднять интерфейс, так как он по умолчанию выключен:
switch(config-if)#no shutdown
Пример настройки управления на коммутаторе Cisco 2960:
Не забудьте — для того, чтобы управление коммутатором было доступно, необходимо добавить в этот Vlan хотя бы один порт, либо, создать на других коммутаторах, с которых Вы хотите управлять этим устройством.
ВЗЯТО С: 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а на транковом порту.Используемые источники:
- https://itproffi.ru/nastrojka-vlan-interfejsov-v-linux/
- https://nastroisam.ru/nastroyka-vlan-na-cisco/
- http://laferont.blogspot.com/2013/12/vlan.html