ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Sergey Vlasov <vsu@altlinux.ru>
To: ALT Linux Community <community@lists.altlinux.org>
Subject: Re: [Comm] [sisyphus] Well... i've found a bug?.. 8021q?
Date: Tue, 13 Jan 2009 23:20:43 +0300
Message-ID: <20090113202043.GA7395@atlas.home> (raw)
In-Reply-To: <8409fdee0901130659s27c4a623q3794f40f015c9c2e@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2029 bytes --]

On Tue, Jan 13, 2009 at 04:59:05PM +0200, Dmytro O. Redchuk wrote:
> Вопрос такой.
> 
> Делаю из двухпортового линукса коммутатор (brctl addbr и далее).
> 
> Сквозь него пингаю нечто.
> 
> На обеих портах этого коммутатора навешиваю HTB.
> 
> Всё работает.
> 
> Всё работает, *если сквозь коммутатор ходят untagged packets*.
> 
> Если я, ничего не меняя на коммутаторе, начинаю пингать мечеными пакетами,
> то всё точно так же работает (пингается, то есть -- коммутатор на физических
> интерфейсах замечательно пропускает vlan'ы), кроме HTB -- у HTB все пакеты
> аккуратно падают в default class. То есть, фильтры типа
>   tc filter add dev <dev> protocol ip parent 1:0 prio 100  u32 match
> ip dst <dst> flowid <flowid>
> просто не срабатывают.
> 
> Если пишу offset, то ничего не меняется, да и не должно, вроде (смещения должны
> отсчитываться от начала пакета IP).

Однако в данной ситуации, скорее всего, получается, что смещения
считаются от заголовка 802.1Q VLAN, поскольку передача пакетов в
модуль bridge выполняется раньше, чем обработка модулем 8021q (по
крайней мере, для случая, когда сетевой контроллер не умеет аппаратно
обрабатывать теги VLAN).  Видимо, для обработки подобных пакетов
придётся писать

  tc filter add dev <dev> protocol 802.1Q ...

и составлять u32 match руками с учётом лишних 4 байт 802.1Q перед
заголовком IP (в которых надо ещё проверять как минимум протокол).

В случае, если контроллер умеет обрабатывать VLAN аппаратно (драйвер
ставит флаг NETIF_F_HW_VLAN_RX), во-первых, обычно такая обработка
включается только при создании хотя бы одного vlan-интерфейса через
vconfig, во-вторых, пакеты с соответствующими тегами в этом случае
уйдут в vlan-интерфейс вместо bridge (хотя можно организовать ещё один
мост и между vlan-интерфейсами, только это плохо согласуется со
стандартным способом работы STP), а пакеты с неизвестными тегами,
похоже, не будут обрабатываться вообще (за исключением передачи в
программы, прослушивающие все сетевые пакеты).

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2009-01-13 20:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-13 14:59 [Comm] " Dmytro O. Redchuk
2009-01-13 20:20 ` Sergey Vlasov [this message]
2009-01-14  8:46   ` [Comm] [sisyphus] " Dmytro O. Redchuk
2009-01-14  8:55     ` Alexander Volkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090113202043.GA7395@atlas.home \
    --to=vsu@altlinux.ru \
    --cc=community@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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