ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] linux vlan
@ 2003-09-18  6:28 Прокопьев Евгений
  2003-09-18 13:09 ` Dmitry Lebkov
  2003-09-18 13:54 ` Artem Pastukhov
  0 siblings, 2 replies; 5+ messages in thread
From: Прокопьев Евгений @ 2003-09-18  6:28 UTC (permalink / raw)
  To: community

Здравствуйте!

Задача: разделить компьютеры в одном сегменте сети по критерию, можно ли 
им ходить в другой сегмент или нет (протоколы 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 - компьютер через кроссовер 
или хаб, то он не пожет пропинговать остальных.

Что я делаю не так?
-- 
С уважением, Прокопьев Евгений



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] linux vlan
  2003-09-18  6:28 [Comm] linux vlan Прокопьев Евгений
@ 2003-09-18 13:09 ` Dmitry Lebkov
  2003-09-18 14:29   ` Oleg K.Artemjev
  2003-09-18 13:54 ` Artem Pastukhov
  1 sibling, 1 reply; 5+ messages in thread
From: Dmitry Lebkov @ 2003-09-18 13:09 UTC (permalink / raw)
  To: community

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] linux vlan
  2003-09-18  6:28 [Comm] linux vlan Прокопьев Евгений
  2003-09-18 13:09 ` Dmitry Lebkov
@ 2003-09-18 13:54 ` Artem Pastukhov
  1 sibling, 0 replies; 5+ messages in thread
From: Artem Pastukhov @ 2003-09-18 13:54 UTC (permalink / raw)
  To: community

Четверг 18 Сентябрь 2003 10:28, Прокопьев Евгений написал:
> Здравствуйте!
>
> Задача: разделить компьютеры в одном сегменте сети по
> критерию, можно ли им ходить в другой сегмент или нет
> (протоколы 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 - компьютер через
> кроссовер или хаб, то он не пожет пропинговать остальных.
>
> Что я делаю не так?
IMHO нужно использовать bridge-utils


-- 
 С уважением,
Артем Пастухов          past(at)yam.ru
 ЯМ Интернешнл         http://www.yam.ru


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] linux vlan
  2003-09-18 13:09 ` Dmitry Lebkov
@ 2003-09-18 14:29   ` Oleg K.Artemjev
  2003-09-18 17:38     ` Dmitry Lebkov
  0 siblings, 1 reply; 5+ messages in thread
From: Oleg K.Artemjev @ 2003-09-18 14:29 UTC (permalink / raw)
  To: community

On Fri, 19 Sep 2003 00:09:39 +1100
Dmitry Lebkov <dima@sakhalin.ru> wrote:

> > eth0.0         | 0  | eth0
> > eth2.0         | 0  | eth2
> > Но если в eth0 включить общую сеть, а в eth2 - компьютер через
> > кроссовер или хаб, то он не пожет пропинговать остальных.
> > Что я делаю не так?
На всякий случай почитайте FAQ по устройству vlan с сайта, например, cisco.
Vlan это некая обертка к фрейму (согласно 802.1q), т.е. такой фрейм без спец.
драйвера виндовым клиентом не воспрнимается (отбрасывается как нестандартной для 802.1 длины),
на unix системах роль спецдрайвера играет патч к ядру (которая затрагивает драйвера сетевух).
Соответственно завертывалку в vlan ты поставил, но один момент не учел - для того чтобы линух 
работал в качестве свитча ему нужно включить бриджинг(2х портовый свитч это бридж). То есть по
умолчанию линух работает на сетевом уровне, а форвардинг на канальном включается только после
включенного в ядре bridging'а.

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

>  - есть vlan-интерфейсы, привязанные к trunk'у и имеющие свои
их еще бывает зовут "дот один ку" от ".1q"

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

> Если не используются свитчи, понимающее 802.1Q VLANs, то клиенты
> в _одном физ.сегменте_ должны сами разбирать, какой из маркированых
> пакетов предназначен для них, а какой нет (принадлежность к VLAN'у
> настраивается в драйверах сетевой карты на клиенте).
Дурной вариант - любой поставивший себе "спец дрова" будет видеть все vlan.
 
> Если используется какой-либо свитч - то разбором tagged-пакетов (и
> оправкой их в соответствующий порт) занимется этот самый свитч,
> при условии, что Linux и свитч соединены через trunk-интерфейс.
верно.

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

> Ты же, привязав vlan0 к eth0 и eth2 пытаешся добиться от Linux'a
> поведения, аналогичного switch'у -- назаначить двум портам один
> влан и они будут как бы один сегмент. Если я не ошибаюсь - vlan'ы
> в Linux'е так не работают.
Нет, тут дело не в не работают, хотя и такое вероятно - совмещать бриджинг
с vlan я не пробовал и то, что это будет работать правильно нигде не 
упоминается (я не видел) - надо проверять экспериментальным путем. Он 
просто не знал что проброс на канальном уровне требует специальных усилий,
то есть чтобы они осуществлялись надо эмулировать соединение между сетевыми
картами а-ля кроссовер (на самом деле там еще деление коллизионных доменов
с отбросом битых пакетов), то есть это подразумевает, что такую эмуляцию надо
включить.

PS: Если у Вас получится (или не получится) срастить bridging с vlan, не поленитесь - мыльните мне
о результатах на <olli @ mtcm . ru> , а также в удачном варианте - о производительности. Судя по тому, что я
слышал от коллеги который игрался с бриджингом - производительность на старом железе 
(а-ля первый пень) не поднимается выше 30К/секунду, что объясняется многочисленными перекладываниями
фейма внутри PC (то есть это существенно медленне чем store and forward в cisco). Если Вам удасться получить
производительность хотя бы на уровне 300K/с, то это уже интересно.

-- 
Bye.Olli.			http://olli.digger.org.ru




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Comm] linux vlan
  2003-09-18 14:29   ` Oleg K.Artemjev
@ 2003-09-18 17:38     ` Dmitry Lebkov
  0 siblings, 0 replies; 5+ messages in thread
From: Dmitry Lebkov @ 2003-09-18 17:38 UTC (permalink / raw)
  To: community

On Thu, 18 Sep 2003 18:29:57 +0400
Oleg K.Artemjev <olli@rbauto.ru> wrote:

> On Fri, 19 Sep 2003 00:09:39 +1100
> Dmitry Lebkov <dima@sakhalin.ru> wrote:

[skip]

> Все правильно, разве что один момент - наглядность (физический
> смысл) появляется лишь когда объясняют работу на уровне длины
> фрейма.

%))) Я пытался объяснить "на пальцах" ... Не затрагивая "интимные
подробности". ;)

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

> Нет, тут дело не в не работают, хотя и такое вероятно - совмещать
> бриджинг с vlan я не пробовал и то, что это будет работать
> правильно нигде не упоминается (я не видел) - надо проверять
> экспериментальным путем. Он просто не знал что проброс на канальном
> уровне требует специальных усилий, то есть чтобы они осуществлялись
> надо эмулировать соединение между сетевыми картами а-ля кроссовер
> (на самом деле там еще деление коллизионных доменов с отбросом битых
> пакетов), то есть это подразумевает, что такую эмуляцию надо
> включить.

Таки я был не прав. Из листа vlan@wanfear.com:

"If for instance you wanted to bridge together the vlan interfaces,
so if I wanted to bridge together eth0.23, eth0.1 and eth7.5, I would
do the following:

ifconfig up eth0
ifconfig up eth7
vconfig add eth0 23
vconfig add eth0 1
vconfig add eth7 5

brctl addbr br0
brctl addif br0 eth0.23
brctl addif br0 eth0.1
brctl addif br0 eth7.5
"

т.е. построить бридж таки возможно, но это (ИМХО) не тот функционал,
который требовался автору обсуждения. %)

В моем случае (тупой inter-vlan routing внутри сети предприятия),
кошернее использовать связку Linux+Catalyst, что и делается ... %)

> PS: Если у Вас получится (или не получится) срастить bridging
> с vlan, не поленитесь - мыльните мне о результатах на <olli @
> mtcm . ru> , а также в удачном варианте - о производительности.
> Судя по тому, что я слышал от коллеги который игрался с бриджингом
> - производительность на старом железе (а-ля первый пень) не
> поднимается выше 30К/секунду, что объясняется многочисленными
> перекладываниями фейма внутри PC (то есть это существенно медленне
> чем store and forward в cisco). Если Вам удасться получить
> производительность хотя бы на уровне 300K/с, то это уже интересно.

У меня ;) не стояло цели "родить из linux'а свитч", и скорее всего
я этим заниматься не буду. ;) Наверное, если автор обсуждения добъется
каких-то результатов -- он ими поделится ... %)

Да, когда-то в листе inet-admins@ кто-то приводил грубую схему расчета
необходимой "процессорной быстроходности" для роутеров на базе PC.
Наверняка, результаты можно приложить и к бриджам на базе PC (хотя и
очень грубо ;).

--
WBR, Dmitry Lebkov


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-09-18 17:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-18  6:28 [Comm] linux vlan Прокопьев Евгений
2003-09-18 13:09 ` Dmitry Lebkov
2003-09-18 14:29   ` Oleg K.Artemjev
2003-09-18 17:38     ` Dmitry Lebkov
2003-09-18 13:54 ` Artem Pastukhov

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git