В статье расcмотрен вопрос, как включить и настроить в Linux (Debian, Ubuntu, xUbuntu, Linux Mint, Knoppix и т.п.) поддержку VLAN 802.1Q на сетевом интерфейсе.
Недавно у меня возникла задача работать сразу в нескольких виртуальных локальных сетях (VLAN). В ОС Linux сделать это оказалось довольно просто. Раcсмотрим все по порядку.
Включение поддержки vlan в Linux Mint, Debian, Ubuntu
Первым делом установим пакет "vlan" для настройки VLAN-ов в Linux. Данный пакет будет содержать в себе утилиту "vconfig" для настройки VLAN.
sudo apt-get install vlan
Допустим, нам нужно подключить сеть VLAN200. Для этого создадим логический интерфейс "eth0.200", привязанный к физическому интерфейсу "eth0", который будет обрабатывать пакеты с тегом 200.
vconfig add eth0 200
Если выскочит ошибка "...Maybe you need to load the 8021q module...", надо будет подгрузить модуль 8021q в ядро Linux следующей командой:
sudo modprobe 8021q
Добавление vlan в Linux с помощью утилиты vconfig
Пробуем еще раз добавить vlan с тегом 200, затем выводим командой "ifconfig -a" список всех интерфейсов:
sudo vconfig add eth0 200
ifconfig -a
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:79966 errors:0 dropped:256 overruns:0 frame:0
          TX packets:48599 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25422338 (25.4 MB)  TX bytes:7961027 (7.9 MB)
eth0.200  Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:189 errors:0 dropped:0 overruns:0 frame:0
          TX packets:189 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:39060 (39.0 KB)  TX bytes:39060 (39.0 KB)
Из вывода видно, что появился еще один логический интерфейс "eth0.200", который будет обрабатывать все пакеты, помеченные тегом 200 (принадлежащие сети VLAN200).
Повесим ip-адрес на новый интерфейс "eth0.200".
sudo ifconfig eth0.200 192.168.8.10 netmask 255.255.255.0 up
sudo ifconfig -a
...
eth0.500  Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:192.168.8.10  Bcast:192.168.8.255  Mask:255.255.255.0
...
На этом настройка завершена. Следует отметить, что после перезагрузки интерфейс "eth0.200" слетит.
Добавление vlan в Linux Mint, Debian, Ubuntu через файл interfaces
Для того, чтобы интерфейс поднимался каждый раз после перезагрузки системы, его надо добавить в файл "/etc/network/interfaces".
Пример содержимого файла interfases.
#interface loopback
auto lo
iface lo inet loopback
#Interface eth0 - untagged 
auto eth0
iface eth0 inet static
      address 192.168.10.10
      netmask 255.255.255.0
      gateway 192.168.10.1
      dns-nameservers 8.8.8.8
#Interface eth0.200 - tagged vlan 200
auto eth0.200
iface eth0.200 inet static
      address 192.168.8.10
      netmask 255.255.255.0
#Interface eth1 - untagged 
#auto eth1
#iface eth1 inet dhcp
Я думаю, тут все понятно.
Знак "#" - это комментарий.
Физический интерфейс "eth0" работает в обычном режиме т.е. все нетегированные (untagged) пакеты обрабатываются на этом интерфейсе.
Логический интерфейс "eth0.200" работает в режиме обработки только тегированных (tagged) пакетов с тегом 200, т.е. принадлежит VLAN200.
По аналогии можно создавать и другие VLAN интерфейсы.
На этом все. Рассмотрение процесса настройки VLAN в ОС Linux (Debian, xUbuntu, Linux Mint, Knoppix) завершено. Надеюсь, что эта статья была полезной. Комментируем, подписываемся, ну и всем пока:)
										
										
Компонент комментариев CComment