Недавно перед автором этих строк встала очередная задача: в офисе компании появилась ещё одна логическая локальная сеть и надо было настроить роутинг между ней и остальными сетями офиса используя имеющийся межсетевой экран на Debian. Изначально предполагалось добавить в сервер ещё одну сетевую карту, поднять на ней IP из новой сети и настраивать роутинг так же, как и для других сетей. Однако после снятия с сервера крышки выяснилось что в нём есть только два PCI-слота и оба уже заняты.
Решение пришло в виде гигабитной сетевой карты с поддержкой транков:) Было решено перевести одну из сетевых карточек из акцессного режима в транковый, поскольку изначально на коммутаторе каждая логическая сеть находилась в отдельном влане. Так же в будущем это решение позволит гораздо проще добавлять новые логические сети а значит решение становится более масштабируемым.
Самым сложным во всём этом оказалось переключение карточки в транковый режим и настройка нужных VLAN'ов. Однако вдумчивое чтение документации показало что это всё не так уж и сложно, что и будет показано ниже. Будем предполагать что у нас сервер под Debian или одном из его клонов. Транк нужно настроить на интерфейсе eth3 и нас интересуют два VLAN'а: 31 (в нём находится сеть 192.168.31.0/24) и 50 (сеть 192.168.50.0/24).
Для начала установим пакет vlan, который кроме всего прочего содержит утилиту vconfig:
apt-get install vlan
Затем загасим интерфейс eth3 (если вы подключаетесь к серверу через него - придётся вам дойти до сервера и поработать локально:)):
ifdown eth3
После этого закоментируем все настройки для eth3 в /etc/network/interfaces и добавим настройки наших VLAN'ов:
#auto eth3
#iface eth3 inet static
#       address 192.168.50.253
#       netmask 255.255.255.0
#       network 192.168.50.0
#       broadcast 192.168.50.255
auto vlan50
iface vlan50 inet static
        address 192.168.50.253
        netmask 255.255.255.0
        network 192.168.50.0
        broadcast 192.168.50.255
        mtu 1500
        vlan_raw_device eth3
auto vlan31
iface vlan31 inet static
        address 192.168.31.100
        netmask 255.255.255.0
        network 192.168.31.0
        broadcast 192.168.31.255
        mtu 1500
        vlan_raw_device eth3
Теперь нужно поднять новые интерфейсы:
ifup vlan31 ifup vlan50
Проверить поднялся ли VLAN можно командой:
ifconfig vlan31
Вывод должен выглядеть примерно вот так:
vlan31    Link encap:Ethernet  HWaddr 00:07:E9:0B:28:79
          inet addr:192.168.31.100  Bcast:192.168.31.255  Mask:255.255.255.0
          inet6 addr: fe80::207:e9ff:fe0b:2879/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9431 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34429 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:512370 (500.3 KB)  TX bytes:1556858 (1.4 MB)
На самом деле в /etc/network/interafces VLAN'ы настраиваются как обычные сетевые интерфейсы, только имеющие имя vlan<номер_VLAN> и обязательный параметр vlan_raw_device, указывающий на физический интерфейс. Во всём остальном работа с VLAN'ами ничем не отличается от работы с обычными сетевыми интерфейсами. Потому настройку роутинга между ними я оставлю читателю.

tierpunk 2008-05-30 21:07:23 (#)