Недавно перед автором этих строк встала очередная задача: в офисе компании появилась ещё одна логическая локальная сеть и надо было настроить роутинг между ней и остальными сетями офиса используя имеющийся межсетевой экран на 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 (#)