Logo

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

В больших компьютерных сетях обычно используется несколько изолированных подсетей. Для маршрутизации между сетями можно использовать дорогие маршрутизаторы третьего уровня (L3) или обойтись компьютером с несколькими сетевыми картами. Но гораздо удобней и выгоднее взять управляемый свитч второго уровня (L2) с поддержкой VLAN, настроить на нём транковый порт (trunk port) и воткнуть в одну сетевую карту на компьютере. Это позволяет маршрутизировать трафик между несколькими VLAN (сетями) или обеспечить присутствие сервера в нескольких VLAN (сетях) одновременно.

И так нам необходим настроенный свитч с транковым портом и поддержка 802.1Q на уровне ядра Linux. Рассмотрим  как это делается в разных дистрибутивах.

Настройка VLAN Debian, Ubuntu

Для начала нужно установить пакет с утилитами для поддержки vlan

apt-get install vlan

Настройки новых VLAN интерфейсов необходимо добавить в файл /etc/network/interfaces
Например:

auto vlan100
iface vlan100 inet static
address 192.168.0.10
netmask 255.255.255.0
vlan_raw_device eth0

Или можно использовать другое именование интерфейсов вида eth0.100, а не vlan100:

auto eth0.100
iface eth0.100 inet static
address 192.168.0.1
netmask 255.255.255.0
vlan_raw_device eth0

Параметр vlan_raw_device указывает, на каком сетевом интерфейсе должны создаваться новый интерфейс vlan100.

Настройка VLAN в CentOS, Red Hat

Для каждого VLAN нужно создавать отдельный файл. В зависимости от системы наименования интерфейсов, есть два варианта.

Первый вариант файл /etc/sysconfig/network-scripts/ifcfg-eth0.100

VLAN=yes
DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.0.20
NETMASK=255.255.255.0

И второй вариант файл /etc/sysconfig/network-scripts/ifcfg-vlan100

VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan100
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.0.20
NETMASK=255.255.255.0

При этом переменные VLAN_NAME_TYPE и PHYSDEV задаются только во втором варианте для интерфейсов вида vlan100, а при использовании имени вида eth0.100 их значения вычисляются автоматически из имени интерфейса.

Настройка VLAN в Gentoo

Ниже кусок файла /etc/conf.d/net, отвечающий за настройку VLAN. В данном случае настраивается 2 vlan-интерфейса на интерфейсе eth0, создание и удаление данных интерфейсах происходит в скрипте /etc/init.d/net.eth0

config_eth0="null"
vlans_eth0="1 2"

vlan1_name="vlan100"
config_vlan1="192.168.0.20/24"

vlan2_name="vlan200"
config_vlan2="192.168.20.20/24"

Проверка настроек

После того как прописали новые настройки нужно перезапустить сетевые настройки локально это делается так:

/etc/init.d/networking restart

Но если вы сидите удаленно то лучше просто поднять новые интерфейсы командой:

ifup vlan100
ifup vlan200

Проверить поднялся ли VLAN можно командой:

ifconfig vlan100

Вывод должен выглядеть так:

vlan0100  Link encap:Ethernet  HWaddr d4:85:64:78:24:a3
          inet addr:192.168.0.20  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::d685:62ff:fe0a:2796/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9787273 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:422938594 (422.9 MB)  TX bytes:4648122 (4.6 MB)

Дальше можно работать с новым интерфейсом как с обычным сетевым интерфейсом. Кроме того к VLAN интерфейсам также можно делать алиасы ip адресов которые были в статье, имена у таких интерфейсов удобно использовать в таком виде vlan100:0, vlan100:1.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *