Ключевые слова:linux, vlan, ethernet, (найти похожие документы)
From: Preventer
Newsgroups: Кавминводская Группа Пользователей Linux
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Пример настройки 802.1q VLAN в Linux
Оригинал: http://lug.kmv.ru/index.php?page=vlan
Чуточку о VLAN`ах в Linux
Хочу поделиться опытом настройки VLAN`ов в Linux.
Мне надоело прыгать из сети в сеть имея только одну сетевуху, и я
решил поближе познакомиться с VLAN`ами.
Мне необходимо "видеть" сети 192.168.0.0/24, 192.168.1.0/24,
10.х.х.х/24 и еще внешнюю сеть х.х.х.х/27.
Все эти сети заведены на коммутатор производства D-LINK, DES3226S,
который умеет стандарт 802.1q
На железке VLAN`ы разведены по портам.
Т.е. порты 1-4 сделаны untagged и отданы сети 192.168.0.0/24, VID2
(VLAN ID), порт 24 и 23 являются tagged.
Порты 5-6 сделаны untagged и отданы сети 192.168.1.0/24, VID3, порт 24
и 23 являются tagged.
Порты 7-10 сделаны untagged и отданы сети 10.х.х.х/24, VID4, порт 24 и
23 являются tagged.
Порты 11-15 сделаны untagged и отданы сети х.х.х.х/27, VID5, порт 24 и
23 являются tagged.
Объясню почему tagged два порта. Все очень просто. Порт 24
используется для "проброски" VLAN`ов по оптике на такую же железку, в
четырех километрах от места событий.
Ну, а порт 23, естественно, для моей машины, на которой я как раз и
собираюсь делать VLAN`ы.
Теперь непосредственно настройка.
Для того чтобы у нас все работало, нам необходимо ядро,
скомпилированное с поддержкой стандарта 802.1q Можно использовать и
модуль, но я так не захотел.
Если хотите использовать модуль:
# modprobe 8021q
Если все нормально - поздравляю. Если нет - натраиваем и компилим
ядро:
# make menuconfig
Далее ищем позицию: Network options, а в ней <*> 802.1Q VLAN Support
# make clean; make dep; make install
# make modules; make modules_install
Если все прошло без заморочек - приступаем к настройке сети, если нет
- читайте Kernel-HOWTO
Сначала "уроним" наш сетевой интерфейс:
# /sbin/ifconfig eth0 down
Теперь поднимем его, но уже без адреса:
# /sbin/ifconfig eth0 0.0.0.0 up
Затем говорим какие VID будем пропускать. После этой комманды,
создадуться виртуальные интерфейсы с номерами VID. Если у вас нет
vconfig - установите его.
# /sbin/vconfig add eth0 2
# /sbin/vconfig add eth0 3
# /sbin/vconfig add eth0 4
# /sbin/vconfig add eth0 5
Дальше, назначаем каждому интерфейсу свой ip
# /sbin/ifconfig eth0.2 10.х.х.х netmask 255.255.255.0 up
# /sbin/ifconfig eth0.3 192.168.0.х netmask 255.255.255.0 up
# /sbin/ifconfig eth0.4 192.168.1.х netmask 255.255.255.0 up
# /sbin/ifconfig eth0.5 х.х.х.х netmask 255.255.255.224 up
Естественно прописываем маршрут по умолчанию.
# /sbin/route add default gw 192.168.1.1
Сразу запретите форвардинг. Но если вам нужно пропускать сети друг к
другу, то будьте внимательны при написании правил маршрутизации и
форвардинга - у вас теперь много интерфейсов. :)
С остальным, я имею ввиду iptables и routing, я думаю, вы разберетесь
сами.
Ну вот и все. Не так уж и сложно. Правда?! :)
Спасибо! Статья класс! Но это end-point получается, а вот как отбросить тэг и отправить трафик из каждого влана на соответствующий сетевой интерфейс и из интерфейса в влан
vlan2 - eth1
vlan3 - eth2
vlan4 - eth3
vlan5 - eth4
Если кто знает, подскажите, где рыть!