[Comm] linux vlan

Dmitry Lebkov =?iso-8859-1?q?dima_=CE=C1_sakhalin=2Eru?=
Чт Сен 18 17:09:39 MSD 2003


On Thu, 18 Sep 2003 10:28:47 +0400
Прокопьев Евгений <john на rmts.donpac.ru> wrote:

> Здравствуйте!
> 
> Задача: разделить компьютеры в одном сегменте сети по критерию, можно ли 
> им ходить в другой сегмент или нет (протоколы IP и IPX).
> 
> За отсутствием железки решили использовать vlan-utils24. Начали с 
> экспериментов с двумя сетевыми интерфейсами и одним виланом. 
> Конфигурация такая:
> 
> # ifconfig
> eth0      Link encap:Ethernet  HWaddr 00:10:4B:47:B7:CA
>            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>            RX packets:71 errors:0 dropped:0 overruns:0 frame:0
>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>            collisions:0 txqueuelen:100
>            RX bytes:4260 (4.1 Kb)  TX bytes:0 (0.0 b)
>            Interrupt:9 Base address:0xd000
> 
> eth1      Link encap:Ethernet  HWaddr 00:60:97:AE:F4:CA
>            inet addr:192.168.101.15  Bcast:192.168.101.255 
> Mask:255.255.255.0
>            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>            RX packets:4534 errors:0 dropped:0 overruns:0 frame:0
>            TX packets:3869 errors:0 dropped:0 overruns:0 carrier:0
>            collisions:0 txqueuelen:100
>            RX bytes:2635153 (2.5 Mb)  TX bytes:244259 (238.5 Kb)
>            Interrupt:5 Base address:0xb800
> 
> eth2      Link encap:Ethernet  HWaddr 00:80:48:FD:5A:4B
>            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>            RX packets:16787 errors:0 dropped:0 overruns:0 frame:10
>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>            collisions:0 txqueuelen:100
>            RX bytes:2551277 (2.4 Mb)  TX bytes:0 (0.0 b)
>            Interrupt:10 Base address:0xb400
> 
> lo        Link encap:Local Loopback
>            inet addr:127.0.0.1  Mask:255.0.0.0
>            UP LOOPBACK RUNNING  MTU:16436  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)
> 
> Виланы настроены так:
> 
> # cat /proc/net/vlan/config
> VLAN Dev name    | VLAN ID
> Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
> eth0.0         | 0  | eth0
> eth2.0         | 0  | eth2
> 
> Но если в eth0 включить общую сеть, а в eth2 - компьютер через
> кроссовер или хаб, то он не пожет пропинговать остальных.
> 
> Что я делаю не так?

Что-то не так либо с постановкой задачи, либо с реализацией. Если
я ничего не путаю, то идея VLAN'ов в ядре следующая:

 - есть eth-интерфейс с ip-адресом. Все пакеты, идущие через
   него не маркируются (un-tagged packets) как принадлежащие
   к какому-то VLAN'у. Это так называемый managemen vlan, в
   терминологии Cisco. Интерфейс является транком (trunk) для
   остальных vlan'ов, привязанных к нему;

 - есть vlan-интерфейсы, привязанные к trunk'у и имеющие свои
   ip-адреса. Пакеты, идущие через эти интерфейсы, маркируются
   как принадлижаще vlan'у с номером, совпадающим с номером 
   интерфейса;

Если не используются свитчи, понимающее 802.1Q VLANs, то клиенты
в _одном физ.сегменте_ должны сами разбирать, какой из маркированых
пакетов предназначен для них, а какой нет (принадлежность к VLAN'у
настраивается в драйверах сетевой карты на клиенте).

Если используется какой-либо свитч - то разбором tagged-пакетов (и
оправкой их в соответствующий порт) занимется этот самый свитч,
при условии, что Linux и свитч соединены через trunk-интерфейс.

Вот, вроде бы так. Т.е. связка Linux(vlans)+Switch обеспечивает
тебя набором _физических_ сетевых интерфейсов, равных кол-ву
портов на свитче-1 (один занимается под trunk).

Поправьте меня, если я где-то что-то напутал ... %)

Ты же, привязав vlan0 к eth0 и eth2 пытаешся добиться от Linux'a
поведения, аналогичного switch'у -- назаначить двум портам один
влан и они будут как бы один сегмент. Если я не ошибаюсь - vlan'ы
в Linux'е так не работают.

--
WBR, Dmitry Lebkov



Подробная информация о списке рассылки community