Настройка vlan linux centos

Одминский блог

Взял тут себе потестить дедик, ну и прикупил на него пул IP. Все вроде настроил – не пингуется. Перепроверил 100 раз, пишу в саппорт, так мол и так, вроде алиасы поднялись, а ничего не пингуется. Так что давайте срочно корректные шлюзы и маски.

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

Собственно, т.к сетки у меня две, скажем 10.10.1.0 и 10.10.2.0, то узнаем для них номера VLAN’ов, скажем 10.10.1.0 будет VLAN101, в 10.10.2.0 – VLAN102.

За поддрежку VLAN в Linux отвечает модуль ядра 8021q. Теоретически его надо устанавливать дополнительно, но так как у меня стоит CentOS, то он уже есть, т.ч можем проверить его наличие, грузанув его руками:

# modprobe 8021q
доставим в систему конфигурилку для VLAN и посмотрим, будет ли работать:
# yum -y install vconfig
# vconfig add eth0 101
# vconfig add eth0 102
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.101 | 101 | eth0
eth0.102 | 102 | eth0

Вроде пашет, т.ч переходим к настройке устойчивой к перезагрузкам. Как и все остальные сетевые настройки через initscripts в CentOS, настройки VLAN живут в папке /etc/sysconfig/network-scripts/ , где для настройки можно пойти двумя разными путями, для чего создать один из файлов:

1. ifcfg-vlanNNN, где NNN – номер VLAN (идентификатор VID);
2. ifcfg-INTERFACE-NAME.NNN, где INTERFACE-NAME – имя интерфейса, а NNN – номер VLAN (идентификатор VID).

Попробовал настроить оба варианта, но у меня они не заработали, т.к дополнительные IP не пинговались. Как потом оказалось – проблема была в настройках ядра, т.к по итогу я остановился на втором варианте со стандартными настройками.

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

1. Настройка через файлы виланов

# cat ifcfg-vlan101
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan101
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.1.101
# cat ifcfg-vlan102
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan102
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.2.101

2.Настройка через интерфейсы

# cat ifcfg-eth0.101
VLAN=yes
DEVICE=eth0.101
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.1.101
NETMASK=255.255.255.0
# cat ifcfg-eth0.102
VLAN=yes
DEVICE=eth0.102
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.2.101
NETMASK=255.255.255.0

Читайте также:  Как поставить линукс минт

После перезагрузки сетевой службы или системы, виланы поднимаются, о чем свидетельствуют показания системы:
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.101 | 101 | eth0
eth0.102 | 102 | eth0
# ip l ls
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:15:174:77:05 brd ff:ff:ff:ff:ff:ff
6: eth0.101@eth0: mtu 1500 qdisc noqueue state UP link/ether 00:15:174:77:05 brd ff:ff:ff:ff:ff:ff
7: eth0.102@eth0: mtu 1500 qdisc noqueue state UP link/ether 00:15:174:77:05 brd ff:ff:ff:ff:ff:ff

Но пинг не ходил, т.ч пришлось ломать голову о причинах. После долгих перетрубаций и изменений файлов настроек VLAN, пришел к выводу, что проблема в модуле, откуда добрался до ядра и фильтра обратного тракта, который и рубит по дефолту асимметричную маршрутизацию:
# sysctl net.ipv4.conf | grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0/101.rp_filter = 1
net.ipv4.conf.eth0/101.arp_filter = 0
net.ipv4.conf.eth0/102.rp_filter = 1
net.ipv4.conf.eth0/102.arp_filter = 0

так что в файле /etc/sysctl.conf отключил фильтрацию rp_filter, добавлением строк для VLAN и измененив значение дефолтного:
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0/101.rp_filter = 0
net.ipv4.conf.eth0/102.rp_filter = 0
после чего все славненько заработало.

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

Поскольку в одном VLAN у меня сидело несколько IP, то по стандартной процедуре создал файлы ifcfg-eth0.101:0, ifcfg-eth0.101:1 и т.д, со стандартным содержанием:
# cat ifcfg-eth0.101:0
VLAN=yes
DEVICE=eth0.101:0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.1.102
NETMASK=255.255.255.0

Источник

Настройка VLAN интерфейсов в Linux

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, так как он может быть зарезервирован для административных целей.
Читайте также:  Fsck восстановить файловую систему linux debian

Подготовка для настройки VLAN интерфейсов

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

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

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

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

# ifconfig eth0.5 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 up

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

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

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

# 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

Весь трафик пойдет через интерфейс eth0 с тегом VLAN 10. Его смогут принять только устройства, которым сообщено о VLAN, остальные будут отклонять трафик.
Следующие команды позволяют удалить VLAN ID:

# ip link set dev eth0.10 down # ip link delete eth0.10

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

Заключение

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

Читайте также:  Изменить имя папки linux

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

Похожие записи:

Источник

Настройка VLAN на Linux CentOS 7

Обновлено

Обновлено: 20.05.2020 Опубликовано: 27.06.2017

Тематические термины: VLAN, CentOS. В операционной системе CentOS предусмотрено два варианта именования VLAN — как subinterface (например, ens32.5) или vlanXX (vlan5). В зависимости от данного варианта, предусмотрен свой метод настройки. Каким способом пользоваться — дело каждого. В данной инструкции рассматриваются оба варианта. Для примера, настраиваем VLAN с тегом 5 для ethernet-адаптера ens32.

Способ 1. VLAN как сабинтерфейс

ONBOOT=yes
TYPE=Ethernet
VLAN=yes
DEVICE=ens32.5
BOOTPROTO=static
IPADDR=192.168.0.15
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.2
DNS2=192.168.0.3

* в данном примере будет создан виртуальный интерфейс ens32.5 (5 vlan), который будет ассоциирован с физическим адаптером ens32. IP-адрес будет назначен 192.168.0.15, шлюз по умолчанию — 192.168.0.1, DNS адреса — 192.168.0.2 и 192.168.0.3. Чтобы настройки вступили в силу, перезапускаем сетевую службу:

Способ 2. VlanXX

ONBOOT=yes
TYPE=Ethernet
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan5
PHYSDEV=ens32
VLAN_ID=5
BOOTPROTO=static
IPADDR=192.168.0.15
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.2
DNS2=192.168.0.3

* обратите внимание, что в данном варианте мы явно указываем, с каким физическим адаптером (ens32) будет связан виртуальный (vlan5). Также перезапускаем сетевую службу:

vlan_name_type

  • VLAN_PLUS_VID — vlan00005
  • VLAN_PLUS_VID_NO_PAD — vlan5
  • DEV_PLUS_VID — ens32.00005
  • DEV_PLUS_VID_NO_PAD — ens32.5

Использование vconfig

Утилита vconfig не сохраняет настройки для сетевых интерфейсов и после перезагрузки, все возвращается в предыдущее состояние. Она прекрасно подойдет для проведения тестов.

Сначала устанавливаем epel-репозиторий и утилиты следующей командой:

yum install vconfig ifconfig

Загружаем модуль ядра 8021q:

Для настройки vlan из нашего примера, выполняем следующую команду:

Теперь задаем виртуальному адаптеру IP-адрес и включаем его:

ifconfig ens32.5 192.168.0.15 netmask 255.255.255.0 up

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

No suitable device found for this connection

  1. Отсутствие в конфигурационном файле опции VLAN_ID (при настройке vlan-интерфейса — способ номер 2). Проверьте, что опция ест и ей соответствует правильный VLAN.
  2. Необходимо добавить опцию NM_CONTROLLED=no в настройки vlan-интерфейса. Данная настройка отключает использование Network Manager для соответствующего интерфейса.

VLAN не заработал

Пробуем опцию TYPE=Ethernet заменить на TYPE=VLAN или убрать ее полностью.

Источник

Оцените статью
Adblock
detector