Настройка Centos 7 vlan

Обновлено: 21.11.2024

В некоторых сценариях мы хотим назначить несколько IP-адресов из разных VLAN на одну карту Ethernet (nic) на серверах Linux (CentOS / RHEL). Это можно сделать, включив тегированный интерфейс VLAN. Но чтобы это произошло, сначала мы должны убедиться, что несколько VLAN подключены к порту на коммутаторе, или, другими словами, мы можем сказать, что мы должны настроить магистральный порт, добавив несколько VLAN на коммутаторе.

Предположим, у нас есть сервер Linux, две карты Ethernet (enp0s3 и enp0s8), первая сетевая карта (enp0s3) будет использоваться для трафика данных, а вторая сетевая карта (enp0s8) будет использоваться для трафика управления/управления. Для трафика данных я буду использовать несколько VLAN (или назначу несколько IP-адресов из разных VLAN на сетевой карте трафика данных).

Я предполагаю, что порт от коммутатора, который подключен к моей сетевой карте данных сервера, настроен как магистральный порт путем сопоставления с ним нескольких VLAN.

Ниже приведены сети VLAN, которые сопоставляются с Ethernet-картой (NIC) трафика данных:

  • Идентификатор VLAN (200), VLAN N/W = 172.168.10.0/24
  • Идентификатор VLAN (300), VLAN N/W = 172.168.20.0/24

Чтобы использовать тегированный интерфейс VLAN в системах CentOS 7 / RHEL 7 / CentOS 8 / RHEL 8, необходимо загрузить модуль ядра 8021q.

Используйте следующую команду для загрузки модуля ядра «8021q»

Используйте приведенную ниже команду modinfo для отображения информации о модуле ядра «8021q»

Теперь пометьте (или сопоставьте) сети VLAN 200 и 300 с NIC enp0s3 с помощью команды ip

Поднимите интерфейс с помощью следующей команды ip:

Аналогично сопоставил VLAN 300 с NIC enp0s3

Теперь просмотрите статус тегированного интерфейса с помощью команды ip:

Теперь мы можем назначить IP-адрес тегированному интерфейсу из соответствующих VLAN, используя команду ниже ip,

Используйте приведенную ниже команду ip, чтобы узнать, назначен ли IP-адрес тегированному интерфейсу или нет.

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

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

Отредактируйте файл интерфейса (enp0s3) «/etc/sysconfig/network-scripts/ifcfg-enp0s3» и добавьте следующее содержимое,

Примечание. Замените имя интерфейса, подходящее для вашей среды,

Сохранить и закрыть файл

Создайте помеченный файл интерфейса для VLAN с идентификатором 200 как «/etc/sysconfig/network-scripts/ifcfg-enp0s3.200» и добавьте в него следующее содержимое.

Сохранить и закрыть файл

Аналогично создайте файл интерфейса для VLAN с идентификатором 300 как «/etc/sysconfig/network-scripts/ifcfg-enp0s3.300» и добавьте в него следующее содержимое

Сохраните и закройте файл, а затем перезапустите сетевые службы с помощью приведенной ниже команды,

Теперь проверьте, настроен ли тегированный интерфейс и работает ли он с помощью команды ip,

Это все из этой статьи, надеюсь, вы получили представление о том, как настроить и включить тегированный интерфейс VLAN на серверах CentOS 7/8 и RHEL 7/8. Делитесь своими отзывами и комментариями.

Виртуальные локальные сети позволяют разделить большие сети на более мелкие и управляемые. 802.1Q — это стандарт, который все поставщики внедряют в свое сетевое оборудование. Некоторые коммутаторы могут назначать несколько VLAN одному сетевому порту. С помощью этой функции вы можете назначить несколько VLAN одному серверу. Коммутатор может разделять пакеты, поскольку каждый кадр Ethernet помечен идентификатором VLAN.

Предпосылки

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

Шаг 1. Войдите с помощью SSH

Вы должны войти в систему через SSH как пользователь sudo или root. Если вы не знаете, как подключиться, ознакомьтесь с этой статьей.

Шаг 2. Отключите NetworkManager

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

Проверьте состояние NetworkManager.

Если NetworkManager не запущен и вы видите это сообщение Active: inactive (dead), вы можете перейти к шагу 3.

Если NetworkManager активен, мы должны отключить его.

После отключения NetworkManager удалите его.

Шаг 3. Загрузите модуль ядра

Проверьте, загружен ли модуль ядра 8021q.

Если он загружен, вы увидите примерно такой результат

Если вы не получаете никакого вывода, это означает, что модуль не загружен. Загрузите модуль ядра.

Чтобы убедиться, что модуль ядра 8021q загружается во время загрузки, мы должны добавить модуль в файл конфигурации модулей.

Шаг 4. Найдите активный сетевой интерфейс

Шаг 5. Настройте сетевой интерфейс

В нашем примере наш сетевой интерфейс — eth0. В нашей статье будет использоваться eth0, но вы должны использовать имя сетевого интерфейса из шага 4.

Изменить сетевую конфигурацию eth0.

Замените конфигурацию следующими 4 строками.

Создайте новый файл конфигурации для вашей VLAN. В нашем случае это VLAN 3047.

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

Создайте вторую сеть VLAN 453.

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

Шаг 6. Создайте сетевые правила

Создайте файл конфигурации сетевого правила для VLAN 3047.

Добавьте следующую строку.

Создайте файл конфигурации сетевого правила для VLAN 453.

Добавьте следующую строку.

Шаг 7. Создание сетевых маршрутов

Создайте файл конфигурации маршрута для VLAN 3047.

Добавьте следующую строку.

Создайте файл конфигурации маршрута для VLAN 453.

Добавьте следующую строку.

Шаг 8. Настройка sysctl

Включите пересылку пакетов на сервере, создав следующий файл.

Добавьте следующую строку.

Включить обратный путь и фильтрацию arp.

Примените изменения.

Шаг 9. Перезапустите сервер

Шаг 10. Проверка состояния интерфейса VLAN

Выполните следующую команду.

Если VLAN не активен, вы должны увидеть это.

Если он активен, вы должны увидеть это.

Шаг 11. Проверка IP-адресов

Отправьте эхо-запрос со своей рабочей станции, чтобы проверить, активны ли IP-адреса.

Шаг 12. Проверка IP-адреса на сервере

Проверьте, используют ли пакеты правильную VLAN для отправки с сервера.

Выполните эхо-запрос от eth0.3047, чтобы проверить, использует ли он правильную VLAN для связи с IP-адресом назначения.

Выполнить эхо-запрос с eth0.453.

Заключение

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

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

Каждая сеть VLAN идентифицируется с помощью VID (идентификатора сети VLAN) в диапазоне от 1 до 4094 включительно. Порты коммутатора назначаются идентификатору VLAN, и все порты, назначенные одной VLAN, находятся в одном широковещательном домене. VID хранится в дополнительном 4-байтовом заголовке, который добавляется к пакету, называемому тегом. Добавление тега к пакету называется тегированием.

Настройка тегов VLAN с помощью nmcli

<р>1. Вы можете использовать команду подключения nmcli для создания подключения VLAN. Включите аргументы «добавить тип vlan» и любую дополнительную информацию для создания соединения VLAN. Например:

В примере определяются следующие атрибуты соединения VLAN:

  • con-name vlan-ens37.100: указывает имя нового соединения VLAN
  • ifname ens37.100: указывает интерфейс для привязки соединения.
  • dev ens37: указывает физическое (родительское) устройство, на котором находится эта VLAN.
  • id 100: указывает идентификатор VLAN.
  • ip4 192.168.100.1/24: указывает адрес IPv4 для назначения интерфейсу.
<р>2. Команда nmcli con показывает новое соединение VLAN.

<р>3. Эта команда создает файл ifcfg-vlan-ens37.100. Ниже приведено содержимое этого файла:

<р>4. Вы можете использовать команду ip addr для просмотра информации об адресах протоколов для сетевых устройств. Ниже показан интерфейс VLAN, ens37.100:

<р>5. Команда устройства nmcli показывает устройство ens37.100.

<р>6. Команда подключения nmcli показывает подключение vlan-ens37.100.

Просмотр информации о VLAN

Каждый сетевой интерфейс содержит каталог в каталоге /sys/class/net. Например:

В этом примере существует интерфейс VLAN с именем ens37.100 и каталог с таким же именем, содержащий информацию о конфигурации для этого интерфейса. Например:

В каталоге /proc/net/vlan также есть файлы, описывающие интерфейс VLAN. Например:

Вы можете использовать утилиту tcpdump для просмотра тегированных и нетегированных пакетов, чтобы убедиться, что трафик отображается на ожидаемых интерфейсах.Параметр -e указывает заголовок Ethernet, который включает теги 802.1Q. Используйте параметр -i для указания интерфейса. Например:

В этой статье мы покажем, как настроить тегированный интерфейс VLAN с помощью собственных инструментов Linux в CentOS/Fedora/RedHat. Мы изучим конфигурацию, используя субинтерфейс, отдельный файл vlanX и такие инструменты, как NetworkManager и vconfig.

В CentOS/Fedora/RedHat есть два варианта конфигурации VLAN:

  • Использование субинтерфейса (например, eth12.7 )
  • Использование отдельного файла vlanXX( vlan7 )

VLAN (виртуальная локальная сеть) позволяет разделить вашу сеть на несколько изолированных широковещательных доменов на уровне канала передачи данных OSI. Используя VLAN, вы можете настроить несколько сетей на одном физическом интерфейсе вашего сервера. При использовании 802.1Q VLAN маршрутизаторы, коммутаторы и серверы должны назначать сетевым пакетам специальные теги (помеченный трафик) с номером VLAN (VLAN ID: от 0 до 4095).

Как создать VLAN с помощью субинтерфейса?

Чтобы настроить тегированный интерфейс, на вашем сервере должен быть включен модуль 8021q ядра Linux. Чтобы загрузить модуль, используйте команду:

Если модуль уже загружен, появляется следующая ошибка: modprobe: ОШИБКА: не удалось вставить ‘8021q’: модуль уже в ядре.

Убедимся, что модуль загрузился:

Все в порядке, модуль 8021q существует в системе.

Создайте VLAN с идентификатором 7 для интерфейса eth0. Добавьте файл конфигурации ifcfg-eth0.7 (7 после точки — номер VLAN). Файл содержит описание субинтерфейса VLAN.

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

Этот файл конфигурации связывает виртуальный интерфейс eth0.7 с физическим интерфейсом eth0. После создания файла конфигурации перезапустите сетевой сервис:

Как видите, субинтерфейс с VLAN 7 добавлен.

Чтобы получить статистику интерфейса (используя счетчики пакетов, вы можете убедиться, что интерфейс VLAN получает тегированный трафик):

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

Конфигурация VLAN с использованием отдельного файла vlanXX

Теперь попробуем создать VLAN с идентификатором 8, используя отдельный файл конфигурации:

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

Обратите внимание, что файл конфигурации немного отличается от предыдущего. В этом параметре вы указываете строку «PHYSDEV», которая перенаправляет файл конфигурации на физический сетевой интерфейс.

После завершения настройки перезапустите сетевую службу:

Если во время перезапуска сетевой службы вы видите сообщение об ошибке Не найдено подходящее устройство для этого подключения, убедитесь, что вы указали правильное значение для параметра VLAN_ID в ifcfg-vlan8.

Также доступен сетевой интерфейс VLAN8.

Использование NetworkManager для настройки интерфейса VLAN

Начиная с Centos 8 (RHEL 8) NetworkManager используется для управления сетевыми подключениями. Инструмент был доступен и раньше, но большинство администраторов использовали сеть, к которой они привыкли.

Давайте посмотрим, как настроить VLAN с помощью NM. Создайте виртуальный интерфейс ens3.7 для VLAN 7 на физическом интерфейсе ens3 и задайте IP-адрес:

Чтобы проверить сетевые интерфейсы на вашем сервере, выполните следующую команду:

Перезапустите NetworkManager после настройки:

Вы можете отобразить текущие настройки VLAN следующим образом:

Как настроить временную VLAN с помощью vconfig?

Для тестовых настроек сети/VLAN лучше использовать инструмент vconfig. Vconfig — очень полезный инструмент во время тестирования или обучения, поскольку, если вы потеряете доступ к своему серверу из-за неправильных настроек сети, вы можете вернуться к исходной конфигурации с помощью простой перезагрузки. Этот инструмент доступен в репозитории EPEL, давайте установим его с помощью yum (или dnf):

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

Затем назначьте IP-адрес созданному сетевому интерфейсу:

Временный интерфейс VLAN создан.

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

Читайте также: