Ниже представлены примеры настройки VLAN через стандартные средства дистрибутивов Linux.RHEL, CentOS, Fedora
Для начала необходимо описать базовый сетевой интерфейс, на котором мы будем поднимать VLAN.
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 # здесь нужно указать реальное имя интерфейса
BOOTPROTO=static
HWADDR=00:07:E9:A7:13:48 # здесь нужно указать реальный MAC
ONBOOT=no
TYPE=Ethernet
IPADDR=0.0.0.0
NETMASK=255.255.255.0
Дла наших целей важны только два параметра: DEVICE и HWADDR.
Остальное роли не играет. Можно даже заполнить "от балды".Далее, создаем подинтерфейсы для VLAN. Именование подинтерфейсов может быть двух видов: "vlanX" и "eth0.X".
В первом случае, мы имеем описательное имя, которое не привязано к имени родительского интерфейса.
Соответственно, перемещение VLAN на другой физический интерфейс не требует значительных изменений
в конфигурацию системы (не нужно править правила пакетного фильтра и тд и тп).С другой стороны, при использовании имен вида «eth0.X» мы имеем более удобное (по моему мнению) имя интерфейса,
по которому видно на каком родительском интерфейсе поднят VLAN, чем немного упрощается администрирование системы.
Плюс, поскольку имя подинтерфейса базируется на имени физического, то мы имеем различные пространства имен для VLAN-ов.
Я имею ввиду ситуацию, когда на разных интерфейсах приходят VLAN-ы с одинаковыми номерами.
Использование "vlanX" в данном случае будет несколько затруднительно.
Минусом будет то, что некоторые утилиты некорректно работают с именами интерфейсов с точкой в имени (например sysctl).Конфигурирование интерфейсов типа "vlanX"
/etc/sysconfig/network-scripts/ifcfg-vlan10
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan10
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.10.2
NETMASK=255.255.255.252
Здесь:PHYSDEV — физический интерфейс, на котором работает VLAN.
VLAN_NAME_TYPE — указываем тип наименование устройства. В данном случае номер VLAN будет
браться с имени устройства. Возможные варианты:VLAN_PLUS_VID —vlan0010
VLAN_PLUS_VID_NO_PAD — vlan10
DEV_PLUS_VID — eth0.0010
DEV_PLUS_VID_NO_PAD — eth0.10Конфигурирование интерфейсов типа "eth0.X"
/etc/sysconfig/network-scripts/ifcfg-eth0.10
VLAN=yes
DEVICE=eth0.10
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.10.2
NETMASK=255.255.255.252Все то же самое, но без PHYSDEV и VLAN_NAME_TYPE.
Хочеться добавить, что смешать в одной системе "vlanX" и "eth0.X" штатными средствами вряд ли получится,
т.к. тип именования (VLAN_NAME_TYPE) при инициализации интерфейсов задается по первому поднимаемому интерфейсу.
Примеры для Debian, Ubuntu.Устанавливаем поддержку vlan:
sudo apt-get install vlan
В /etc/network/interfaces добавляем:
# Какие интерфейсы поднимать автоматически
auto vlan4
auto vlan5
auto vlan101# VLAN 4
iface vlan4 inet static
address 192.168.0.8
netmask 255.255.255.192
network 192.168.0.0
broadcast 192.168.0.63
mtu 1500
vlan_raw_device eth0
# VLAN 5
iface vlan5 inet static
address 10.0.111.8
netmask 255.255.255.0
network 10.0.111.0
broadcast 10.0.111.255
mtu 1500
vlan_raw_device eth0
# VLAN 101
iface vlan101 inet static
address 172.12.101.8
netmask 255.255.255.0
network 172.12.101.0
broadcast 172.12.101.255
gateway 172.12.101.1
mtu 1500
vlan_raw_device eth0
URL: http://blog.ronix.net.ua/2009/02/vlan-rhelcentosfedora-core.... http://www.mysidenotes.com/?p=6
Обсуждается: http://www.opennet.me/tips/info/1954.shtml
iface eth0.1 inet static
address 172.12.1.8
netmask 255.255.255.0
network 172.12.1.0
iface eth0.2 inet static
address 172.12.2.8
netmask 255.255.255.0
network 172.12.2.0
и все. Дебиан имхо удобнее в конфигурировании сети.
самая удобная конфигурация сети в gentoo: не надо помнить синтаксис ни под pppoe, ни под vlan, ни под pptp, ни под бриджинг. Всё в примерах самого файла. И работает, что характерно.
Неужели и модель поддержки 802.1q уже подгружать в ядро не надо ?modprobe 8021q
А как определить поддерживает ли моя сетевуха влан или нет?
Требуется наличие модуля vlan в ядре и все.
Точнее, 8021q
наверное имелось ввиду Транк VLAN — это физический канал, по которому передается несколько VLAN каналов, которые различаются тегами (метками, добавляемыми в пакеты). Транки обычно создаются между «тегированными портами» VLAN-устройств: свитч-свитч или свитч-маршрутизатор. (В документах Cisco термином «транк» также называют объединение нескольких физических каналов в один логический: Link Aggregation, Port Trunking)
http://ru.wikipedia.org/wiki/VLAN
если так, то да, нужна карточка поддержкой транков. (но помоему сейчас это делают все)
типа так:
http://ylsoftware.com/?action=news&na=viewfull&news=438
Не, я имел ввиду, допустим есть два влана, надо чтоб сервак был доступен в обоих вланах с одной сетевухой, это любая сетевуха поддерживает?
> Не, я имел ввиду, допустим есть два влана, надо чтоб сервак был доступен в обоих вланах с одной сетевухой, это любая сетевуха поддерживает?не любая. тэггированый пакет больше на 4 байта чем стандартное mtu (1500). если сетевуха не умеет mtu больше 1500 то вланы работать не будут. бывает что сетевуха уммет но не умеет драйвер. например 3с59x или e100. это исправляется патчами. вот гигабитные карты все умеют вланы.
>вот гигабитные карты все умеют вланы.Даже размазанные на материнке?
Чипы то одинаковые,да и на материнке покруче NIC будет (PXE...)
>не любая. тэггированый пакет больше на 4 байта чем стандартное mtu (1500).
>если сетевуха не умеет mtu больше 1500 то вланы работать не
>будут. бывает что сетевуха уммет но не умеет драйвер. например 3с59x
>или e100. это исправляется патчами. вот гигабитные карты все умеют вланы.я могу ошибаться, но у меня на работает vlan на целой куче разного дешевого железа. Включая 10-ти мегабитные карточки. Возможно имеется ввиду VLAN_HWTAGGING?
>я могу ошибаться, но у меня на работает vlan на целой куче разного дешевого железа. >Включая 10-ти мегабитные карточки. Возможно имеется ввиду VLAN_HWTAGGING?на старом железе оно и не обязано работать. VLAN_HWTAGGING это другое.
Давно мучает такой вопрос. После создания влан интерфейса методом создания файла его конфига в /etc/sysconfig/network-scripts можно ли как-то поднять интерфейс БЕЗ перезагрузки сетевой подсистемы ??
А то если вланов уже за сотню процесс network restart занимает несколько минут уже....
>Давно мучает такой вопрос. После создания влан интерфейса методом создания файла его конфига в /etc/sysconfig/network-scripts можно ли как-то поднять интерфейс БЕЗ перезагрузки сетевой подсистемы ??А то если вланов уже за сотню процесс network restart занимает несколько минут уже....
ifup vlan...
Собственноручно подымал сотю вланов в домашней сетке на обычном селероне с писиайной гигабитной сетевушкой на которой собственно они и работали остальные несколько вланов повесил на стомегабитную тоже орбычную всё работало накубунте.
для того чтобы работали VLAN нужна поддержка VLAN_MTU (как писалось выше тегированные пакет на 4 байта больше).
VLAN_HWTAGGING - это дополнительная фича разгражающая CPU.В FreeBSD это видно так:
em0: options=19b<....,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan10
PHYSDEV=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.10.10.2
NETMASK=255.255.255.252Вместо TYPE=Ethernet нужно указать TYPE=Vlan (для Сentos7 minimal install в моем случае)