VLAN_PLUS_VID/VLAN_PLUS_VID_NO_PAD указвания за 802.1q интерфейси в RHEL5 и дериватите му

Версия 1.0.0, 6 януари 2009

Веселин Колев, Софийски Университет "Св. Климент Охридски"

Адрес за кореспонденция: vesso AT vesselin.org

Първоизточник: http://www.vesselin.org

Лиценз на документа: CC Attribution-ShareAlike

 

Съдържание:

  1. Увод

  2. Базови настройки

  3. Изграждане на конфигурационен файл за 802.1q интерфейс

  4. Активиране и дезактивиране на 802.1q интерфейси

  5. Преглед на изградени 802.1q интерфейси със системните инструменти

 

1. Увод.

Съгласно официалната документация на Red Hat Enterprise Linux 5 и дериватите му (CentOS 5, ScintificLinux 5), 802.1q (VLAN) базиран интерфейс следва да се именова с т.нар. "DEV_PLUS_VID" конвенция на инструмента vconfig, която може да се илюстрира с примера:

eth0.100

в който eth0 е името на физическия интерфейс, членуващ в съответния VLAN, а 100 е номера на виртуалния LAN (VLAN ID идентификатор). Конкретно, тази конвенция за именоване е посочена като единствено възможна в документацията към пакета initscripts. Във файла

/usr/share/doc/initscripts-<version>/sysconfig.txt

е записано следното:

Ethernet 802.1q VLAN items:
     DEVICE=eth0.42
       Initscripts use DEV_PLUS_VID_NO_PAD naming mode for VLAN
       devices. 
               Example: eth0.42 for vlan 42 on device eth0.
       Valid VLAN ID range is 0-4095. Most ethernet switches reserve
       VLAN ID 1 to be used as management VLAN; starting from VLAN
       ID 2 is recommended.

Ако се разгледа обаче по-внимателно съдържанието на самите инициращи скриптове, става ясно, че няма никакви проблеми да се използва и конвенция за наименоване на 802.1q интерфейси, а именно VLAN_PLUS_VID или VLAN_PLUS_VID_NO_PAD. По-долу в статията е описано как да стане това без да се излиза от добрата практика на администриране на системи базирани на Red Hat Enterprise Linux 5 и дериватите му.

 

2. Базови настройки.

Конвенцията VLAN_PLUS_VID изисква 802.1q интерфейсите да се наименоват по шаблона:

vlan0005

т.е. с използване на четирицифрен идентификатор на виртуалния LAN, реализиран чрез интерфейса. От друга страна конвенцията VLAN_PLUS_VID_NO_PAD изисква 802.1q интерфейсите да се наименоват по шаблона:

vlan5

и не е нужно числовия идентификатор на VLAN да се задава задължително като четирицифрено число и да се използват водещи нули, когато е необходимо.

Не е допустимо използването на различни конвенции по именоване на 802.1q интерфейсите в една система. Трябва да бъде избрана задължително едната от конвенциите, да се зададе в конфигурациите и да се спазва в хода на изграждането на VLAN интерфейси. Указването й става във файла

/etc/sysconfig/network

като преди това задължително в него се указва VLAN=yes:

 

а стойността й се чете автоматично от набора скриптове за управление на мрежовите интерфейси при следните действия:

 

3. Изграждане на конфигурационен файл за 802.1q интерфейс.

Шаблонът, по който се изгражда конфигурационен файл за 802.1q интефейс, има следната примерна минимална структура:

DEVICE=vlan0100
PHYSDEV=eth0
IPADDR=10.0.0.2
NETMASK=255.255.255.0

В случая ще се изгради VLAN интерфейс с име vlan0100, който ще бъде реализиран на базата на физическия интерфейс eth0, а за участие във виртуалния LAN с ID 100 ще се използва IP адрес 10.0.0.2 с мрежова маска 255.255.255.0 (или /24). Наименоването на интерфейса следва да се съобрази с указаната във файла /etc/sysconfig/network конвенция. Ако е избрана конвенцията VLAN_PLUS_VID, всеки VLAN ID се представя като четирицифрено число, а когато е необходимо се прибавят водещи нули. Ако избраната конвенция е VLAN_PLUS_VID_NO_PAD, то VLAN ID не е задължително да бъде четирицифрено число (не е нужно да се използват водещи нули при необходимост). При конвенция VLAN_PLUS_VID_NO_PAD в горния пример би следвало DEVICE=vlan100, вместо DEVICE=vlan0100 и обратно.

След като конфигурационния файл на VLAN интерфейса бъде изграден, той трябва да се запише в директорията

/etc/sysconfig/network-scripts

с подходящо име. Каквото и име да бъде използвано, то трябва задължително да започва с ifcfg-, например ifcfg-vlan0100 или ifcfg-vlan0100. Добре е в името на файла да бъде отразена конвенцията и VLAN ID идентификатора.

 

4. Активиране и дезактивиране на 802.1q интерфейси.

Един 802.1q интерфейс може да бъде активиран ръчно и автоматично. При ръчната активация се използва скрипта ifup, а при автоматичната се стартира/рестартира услугата "network" (обикновено при зареждане на системата се извършва втория тип активация). Тук ще бъдат показани и двата начина:

Дезактивирането на VLAN интерфейс също може да стане по два начина:

Ако един VLAN интерфейс не бива да се активира автоматично при зареждане на системата, в конфигурационния му файл трябва да се зададе:

ONBOOT=no

 

5. Преглед на изградени 802.1q интерфейси със системните инструменти.

Съществуват няколко начина за преглед на изградените VLAN интерфейси в системата. Тук вниманието ще бъде фокусирано върху инструмента ip от пакета iproute2 и директния преглед на записите за интерфейсите в /proc. Внимание! Използването на ifconfig не се препоръчва и не е добра практика за диагностика и управление на интерфейси. Този инструмент е оставен в системата заради обратна съвместимост и следва да бъде заменен напълно като функционалност от ip.

След като един VLAN интерфейс бъде изграден и активиран, неговата IP конфигурация ще се вижда от инструмента ip по начин подобен на този:

# ip addr show dev vlan0100
3: vlan0100@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
    link/ether 00:50:04:35:64:fd brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.2/24 brd 10.0.0.255 scope global vlan0100

Ясно се вижда физическия интерфейс, чрез който системата участва в съответния VLAN. Ако се налага преглед на всички интерфейси (без значение от характера им), може да се използва:

# ip addr

За да се провери "link" състоянието на интерфейса, може да се използва команден ред от типа:

# ip link show dev vlan0100

а подробна статистика за преминалия през интерфейса трафик и др. показатели, може да се получи така:

# ip -s link show dev vlan0100

Прегледът на състоянието на даден VLAN интерфейс на база информацията в /proc, става чрез директен прочит на съответния интерфейсен файл, например:

# cat /proc/net/vlan/vlan0100
vlan0100  VID: 100       REORDER_HDR: 1  dev->priv_flags: 1
         total frames received            0
          total bytes received            0
      Broadcast/Multicast Rcvd            0

      total frames transmitted            0
       total bytes transmitted            0
            total headroom inc            0
           total encap on xmit            0
Device: eth0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
EGRESSS priority Mappings: 

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

 

Този документ е с OpenPGP подписано съдържание
[информация] [електронен подпис][TimeStamp]

Creative Commons - Признание 2.5 Valid CSS! Valid XHTML 1.1!