From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 19 Sep 2003 00:09:39 +1100 From: Dmitry Lebkov To: community@altlinux.ru Subject: Re: [Comm] linux vlan Message-Id: <20030919000939.345cfa4a.dima@sakhalin.ru> In-Reply-To: <3F69509F.8040005@rmts.donpac.ru> References: <3F69509F.8040005@rmts.donpac.ru> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i586-alt-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: community@altlinux.ru List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Sep 2003 13:09:44 -0000 Archived-At: List-Archive: List-Post: On Thu, 18 Sep 2003 10:28:47 +0400 Прокопьев Евгений 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