ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [Sysadmins] iptables -j MARK
@ 2008-05-24 23:00 Andrew Kornilov
  2008-05-25  8:09 ` Serge
  0 siblings, 1 reply; 11+ messages in thread
From: Andrew Kornilov @ 2008-05-24 23:00 UTC (permalink / raw)
  To: sysadmins

Приветствую.

Перекладываю сейчас ADSL Bandwidth Management HOWTO на настройки etcnet, для
этого уже и патчик небольшой в config-qos добавил. Есть вопрос по модулю MARK в
iptables: важен ли порядок следования команд iptables для конечного результата?
Судя по тестированию, iptables не использует схему first match, то есть,
возврата из списка правил нет при найденном совпадении. Поясню:

mark as 23 if tcp and sport is 0:1024
mark as 23 if tcp and dport is 0:1024
mark as 23 if tcp and dport is 5190
mark as 23 if tcp and sport is 5190
mark as 23 if tcp and dport is 5222
mark as 23 if tcp and sport is 5222
mark as 23 if tcp and dport is 5223
mark as 23 if tcp and sport is 5223
mark as 22 if tcp and dport is ssh
mark as 22 if tcp and sport is ssh
mark as 22 if tcp and dport is telnet
mark as 22 if tcp and sport is telnet
mark as 21 if tcp and length is :64
mark as 21 if udp
mark as 20 if icmp
mark as 26 if tcp and sport is 20
mark as 26 if tcp and dport is 20
mark as 26 if tcp and sport is 25
mark as 26 if tcp and dport is 25
mark as 26 if marked as 0
mark as 26

Например, правило маркировки mark as 26 if tcp and dport is 20 попадает в более
общее правило mark as 23 if tcp and dport is 0:1024. iptables увеличивает
счетчик в обоих правилах, то есть, он для каждого пакета пытается применить
каждое правило, независимо от успешности предыдущего.
Меня интересует, какое конечное значение mark будет у пакета (которое и будет
анализировать /sbin/tc) и как его вообще увидеть? Хочется отладить это
дело. 
Сейчас пока я убедился в одном: заявленной задержки того же ping-а в
районе 100 ms при загрузке канала получить на ядре 2.6.24 почему-то не удается,
она стабильно в районе 500 ms получается, хотя все счётчики крутятся и с виду
всё правильно ;-)

-- 



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-24 23:00 [Sysadmins] iptables -j MARK Andrew Kornilov
@ 2008-05-25  8:09 ` Serge
  2008-05-25 21:25   ` Andrew Kornilov
  0 siblings, 1 reply; 11+ messages in thread
From: Serge @ 2008-05-25  8:09 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от Sunday 25 May 2008 02:00:24 Andrew Kornilov написал(а):
> Приветствую.
>
> Перекладываю сейчас ADSL Bandwidth Management HOWTO на настройки etcnet,
> для этого уже и патчик небольшой в config-qos добавил. Есть вопрос по
> модулю MARK в iptables: важен ли порядок следования команд iptables для
> конечного результата? Судя по тестированию, iptables не использует схему
> first match, то есть, возврата из списка правил нет при найденном
> совпадении. Поясню:
>
> mark as 23 if tcp and sport is 0:1024
> mark as 23 if tcp and dport is 0:1024
> mark as 23 if tcp and dport is 5190
> mark as 23 if tcp and sport is 5190
> mark as 23 if tcp and dport is 5222
> mark as 23 if tcp and sport is 5222
> mark as 23 if tcp and dport is 5223
> mark as 23 if tcp and sport is 5223
> mark as 22 if tcp and dport is ssh
> mark as 22 if tcp and sport is ssh
> mark as 22 if tcp and dport is telnet
> mark as 22 if tcp and sport is telnet
> mark as 21 if tcp and length is :64
> mark as 21 if udp
> mark as 20 if icmp
> mark as 26 if tcp and sport is 20
> mark as 26 if tcp and dport is 20
> mark as 26 if tcp and sport is 25
> mark as 26 if tcp and dport is 25
> mark as 26 if marked as 0
> mark as 26
>
> Например, правило маркировки mark as 26 if tcp and dport is 20 попадает в
> более общее правило mark as 23 if tcp and dport is 0:1024. iptables
> увеличивает счетчик в обоих правилах, то есть, он для каждого пакета
> пытается применить каждое правило, независимо от успешности предыдущего.
> Меня интересует, какое конечное значение mark будет у пакета (которое и
> будет анализировать /sbin/tc) и как его вообще увидеть? Хочется отладить
экспериментально пришел тоже к такому выводу. На выходе примениться последнее 
правило, которое удовлетворяет условию. Я вышел из такой ситуации добавлением 
после каждого правила return
mark as 23 if tcp and sport is 0:1024
if tcp and sport is 0:1024 return 
mark as 23 if tcp and dport is 5190
if tcp and dport is 5190 return 



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-25  8:09 ` Serge
@ 2008-05-25 21:25   ` Andrew Kornilov
  2008-05-26 10:36     ` Vyatcheslav Perevalov
  0 siblings, 1 reply; 11+ messages in thread
From: Andrew Kornilov @ 2008-05-25 21:25 UTC (permalink / raw)
  To: sysadmins

Serge <skompan@kspu.kr.ua> writes:
>> Меня интересует, какое конечное значение mark будет у пакета (которое и
>> будет анализировать /sbin/tc) и как его вообще увидеть? Хочется отладить
> экспериментально пришел тоже к такому выводу. На выходе примениться последнее 
> правило, которое удовлетворяет условию. Я вышел из такой ситуации добавлением 
> после каждого правила return
> mark as 23 if tcp and sport is 0:1024
> if tcp and sport is 0:1024 return 
> mark as 23 if tcp and dport is 5190
> if tcp and dport is 5190 return 
Да, вариант, конечно, спасибо за идею. Но мне кажется, что это все-таки
какой-то глюк, не должно такого быть. Нет ли у кого-нибудь под рукой машинки с
ядром 2.4 или хотя бы первых 2.6 и старого iptables?

-- 



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-25 21:25   ` Andrew Kornilov
@ 2008-05-26 10:36     ` Vyatcheslav Perevalov
  2008-05-27 23:41       ` Andrew Kornilov
  0 siblings, 1 reply; 11+ messages in thread
From: Vyatcheslav Perevalov @ 2008-05-26 10:36 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от 26 мая 2008 Andrew Kornilov написал(a):
> Нет ли у кого-нибудь под рукой машинки с
> ядром 2.4 или хотя бы первых 2.6 и старого iptables?

Есть ALM2.4
[vip@vipnet vip]$ uname -a
Linux vipnet.seversk.ru 2.4.26-std-up-alt6 #1 Tue Aug 3 21:45:23 MSD 2004 
i586

-- 
Всего хорошего
		/vip

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

* Re: [Sysadmins] iptables -j MARK
  2008-05-26 10:36     ` Vyatcheslav Perevalov
@ 2008-05-27 23:41       ` Andrew Kornilov
  2008-05-28  5:02         ` Alexander Volkov
  2008-05-28 16:51         ` Vyatcheslav Perevalov
  0 siblings, 2 replies; 11+ messages in thread
From: Andrew Kornilov @ 2008-05-27 23:41 UTC (permalink / raw)
  To: sysadmins

Vyatcheslav Perevalov <vip0@seversk.ru> writes:

> В сообщении от 26 мая 2008 Andrew Kornilov написал(a):
>> Нет ли у кого-нибудь под рукой машинки с
>> ядром 2.4 или хотя бы первых 2.6 и старого iptables?
>
> Есть ALM2.4
> [vip@vipnet vip]$ uname -a
> Linux vipnet.seversk.ru 2.4.26-std-up-alt6 #1 Tue Aug 3 21:45:23 MSD 2004 
> i586
Во, отлично. Можешь попробовать добавить два правила. Что-то вроде:
iptables -A OUTPUT -t mangle -p tcp --dport 123:567 -j MARK --set-mark 123
iptables -A OUTPUT -t mangle -p tcp --dport 256:890 -j MARK --set-mark 123
И потом сделать telnet любойхост 345

Смысл в том, чтобы сделать telnet на порт, который попадает в условия обоих
правил. После этого посмотри iptables -L -n -v -t mangle, увеличились оба
счетчика или только первый?
-- 



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-27 23:41       ` Andrew Kornilov
@ 2008-05-28  5:02         ` Alexander Volkov
  2008-05-30 19:17           ` Andrew Kornilov
  2008-05-28 16:51         ` Vyatcheslav Perevalov
  1 sibling, 1 reply; 11+ messages in thread
From: Alexander Volkov @ 2008-05-28  5:02 UTC (permalink / raw)
  To: sysadmins

On 2008-05-28 02:41:52 +0300, Andrew Kornilov wrote:
AK> Vyatcheslav Perevalov <vip0@seversk.ru> writes:

AK> > В сообщении от 26 мая 2008 Andrew Kornilov написал(a):
AK> >> Нет ли у кого-нибудь под рукой машинки с
AK> >> ядром 2.4 или хотя бы первых 2.6 и старого iptables?
AK> >
AK> > Есть ALM2.4
AK> > [vip@vipnet vip]$ uname -a
AK> > Linux vipnet.seversk.ru 2.4.26-std-up-alt6 #1 Tue Aug 3 21:45:23 MSD 2004 
AK> > i586
AK> Во, отлично. Можешь попробовать добавить два правила. Что-то вроде:
AK> iptables -A OUTPUT -t mangle -p tcp --dport 123:567 -j MARK --set-mark 123
AK> iptables -A OUTPUT -t mangle -p tcp --dport 256:890 -j MARK --set-mark 123
AK> И потом сделать telnet любойхост 345

AK> Смысл в том, чтобы сделать telnet на порт, который попадает в условия обоих
AK> правил. После этого посмотри iptables -L -n -v -t mangle, увеличились оба
AK> счетчика или только первый?
[root@gate-luna root]# telnet 192.168.2.32 345
Trying 192.168.2.32...
telnet: connect to address 192.168.2.32: Connection refused
[root@gate-luna root]# telnet 192.168.2.99 345
Trying 192.168.2.99...
telnet: connect to address 192.168.2.99: Connection refused
[root@gate-luna root]# iptables -L -n -v -t mangle
Chain PREROUTING (policy ACCEPT 1950K packets, 1223M bytes)
 pkts bytes target     prot opt in     out     source
 destination

 Chain INPUT (policy ACCEPT 99189 packets, 24M bytes)
  pkts bytes target     prot opt in     out     source
  destination

  Chain FORWARD (policy ACCEPT 1851K packets, 1199M bytes)
   pkts bytes target     prot opt in     out     source
   destination

   Chain OUTPUT (policy ACCEPT 42696 packets, 6988K bytes)
    pkts bytes target     prot opt in     out     source
	destination
    0     0 TOS        all  --  *      *       0.0.0.0/0		85.249.89.103       TOS set 0x10
    2   104 MARK       tcp  --  *      *       0.0.0.0/0		0.0.0.0/0           tcp dpts:123:567 MARK set 0x7b
    2   104 MARK       tcp  --  *      *       0.0.0.0/0		0.0.0.0/0           tcp dpts:256:890 MARK set 0x7b

Как вижу, оба.
2.4.26-std-smp-alt11.1, ALM24

--
 Regards, Alexander



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-27 23:41       ` Andrew Kornilov
  2008-05-28  5:02         ` Alexander Volkov
@ 2008-05-28 16:51         ` Vyatcheslav Perevalov
  2008-05-30 19:18           ` Andrew Kornilov
  1 sibling, 1 reply; 11+ messages in thread
From: Vyatcheslav Perevalov @ 2008-05-28 16:51 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от 28 мая 2008 Andrew Kornilov написал(a):
> Во, отлично. Можешь попробовать добавить два правила. Что-то вроде:
> iptables -A OUTPUT -t mangle -p tcp --dport 123:567 -j MARK --set-mark
> 123 iptables -A OUTPUT -t mangle -p tcp --dport 256:890 -j MARK
> --set-mark 123 И потом сделать telnet любойхост 345
>
> Смысл в том, чтобы сделать telnet на порт, который попадает в условия
> обоих правил. После этого посмотри iptables -L -n -v -t mangle,
> увеличились оба счетчика или только первый?

[root@vipnet sysconfig]# cat /etc/sysconfig/iptables|grep mangle
*mangle
[root@vipnet sysconfig]# cat /etc/sysconfig/iptables|grep MARK
-A OUTPUT  -p tcp --dport 123:567 -j MARK --set-mark 123
-A OUTPUT  -p tcp --dport 256:890 -j MARK --set-mark 123


[vip@vipnet vip]$ telnet seversk.ru 345
Trying 88.204.48.130...
telnet: connect to address 88.204.48.130: Connection refused

[root@vipnet sysconfig]# iptables -L -n -v -t mangle
Chain PREROUTING (policy ACCEPT 1457 packets, 245K bytes)
 pkts bytes target     prot opt in     out     source               
destination

Chain INPUT (policy ACCEPT 3063K packets, 1056M bytes)
 pkts bytes target     prot opt in     out     source               
destination

Chain FORWARD (policy ACCEPT 42M packets, 36G bytes)
 pkts bytes target     prot opt in     out     source               
destination

Chain OUTPUT (policy ACCEPT 373 packets, 40440 bytes)
 pkts bytes target     prot opt in     out     source               
destination
    1    52 MARK       tcp  --  *      *       0.0.0.0/0            
0.0.0.0/0           tcp dpts:123:567 MARK set 0x7b
    1    52 MARK       tcp  --  *      *       0.0.0.0/0            
0.0.0.0/0           tcp dpts:256:890 MARK set 0x7b

Chain POSTROUTING (policy ACCEPT 42M packets, 36G bytes)
 pkts bytes target     prot opt in     out     source               
destination



-- 
Всего хорошего
		/vip


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

* Re: [Sysadmins] iptables -j MARK
  2008-05-28  5:02         ` Alexander Volkov
@ 2008-05-30 19:17           ` Andrew Kornilov
  0 siblings, 0 replies; 11+ messages in thread
From: Andrew Kornilov @ 2008-05-30 19:17 UTC (permalink / raw)
  To: sysadmins

Alexander Volkov <alt@vladregion.ru> writes:
> Как вижу, оба.
> 2.4.26-std-smp-alt11.1, ALM24
Понятно, спасибо. Странно и непонятно, но будем считать, что это так
задумано. Хотя очень все-таки похоже на баг :) 
-- 



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-28 16:51         ` Vyatcheslav Perevalov
@ 2008-05-30 19:18           ` Andrew Kornilov
  2008-05-31  7:39             ` Serge
  0 siblings, 1 reply; 11+ messages in thread
From: Andrew Kornilov @ 2008-05-30 19:18 UTC (permalink / raw)
  To: sysadmins

Vyatcheslav Perevalov <vip0@seversk.ru> writes:
> Chain OUTPUT (policy ACCEPT 373 packets, 40440 bytes)
>  pkts bytes target     prot opt in     out     source               
> destination
>     1    52 MARK       tcp  --  *      *       0.0.0.0/0            
> 0.0.0.0/0           tcp dpts:123:567 MARK set 0x7b
>     1    52 MARK       tcp  --  *      *       0.0.0.0/0            
> 0.0.0.0/0           tcp dpts:256:890 MARK set 0x7b
Да, спасибо и вам. Но какой же все-таки будет mark у пакета на выходе из
цепочки? Поискать, что ли, внутри модуля...
-- 



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

* Re: [Sysadmins] iptables -j MARK
  2008-05-30 19:18           ` Andrew Kornilov
@ 2008-05-31  7:39             ` Serge
  2008-05-31 15:10               ` Andrew Kornilov
  0 siblings, 1 reply; 11+ messages in thread
From: Serge @ 2008-05-31  7:39 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от Friday 30 May 2008 22:18:08 Andrew Kornilov написал(а):
> Vyatcheslav Perevalov <vip0@seversk.ru> writes:
> > Chain OUTPUT (policy ACCEPT 373 packets, 40440 bytes)
> >  pkts bytes target     prot opt in     out     source
> > destination
> >     1    52 MARK       tcp  --  *      *       0.0.0.0/0
> > 0.0.0.0/0           tcp dpts:123:567 MARK set 0x7b
> >     1    52 MARK       tcp  --  *      *       0.0.0.0/0
> > 0.0.0.0/0           tcp dpts:256:890 MARK set 0x7b
>
> Да, спасибо и вам. Но какой же все-таки будет mark у пакета на выходе из
> цепочки? Поискать, что ли, внутри модуля...
который выставляется в самом последнем совпадении правил?


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

* Re: [Sysadmins] iptables -j MARK
  2008-05-31  7:39             ` Serge
@ 2008-05-31 15:10               ` Andrew Kornilov
  0 siblings, 0 replies; 11+ messages in thread
From: Andrew Kornilov @ 2008-05-31 15:10 UTC (permalink / raw)
  To: sysadmins

Serge <skompan@kspu.kr.ua> writes:
>> Да, спасибо и вам. Но какой же все-таки будет mark у пакета на выходе из
>> цепочки? Поискать, что ли, внутри модуля...
> который выставляется в самом последнем совпадении правил?
Не понятно до конца пока. Буду разбираться. Вчера опять половину вечера
потратил на попытки настроить это дело, QoS как-то работать не хочет. Счетчики
крутит, а субъективно лучше не становится ни на грамм :(

-- 



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

end of thread, other threads:[~2008-05-31 15:10 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-24 23:00 [Sysadmins] iptables -j MARK Andrew Kornilov
2008-05-25  8:09 ` Serge
2008-05-25 21:25   ` Andrew Kornilov
2008-05-26 10:36     ` Vyatcheslav Perevalov
2008-05-27 23:41       ` Andrew Kornilov
2008-05-28  5:02         ` Alexander Volkov
2008-05-30 19:17           ` Andrew Kornilov
2008-05-28 16:51         ` Vyatcheslav Perevalov
2008-05-30 19:18           ` Andrew Kornilov
2008-05-31  7:39             ` Serge
2008-05-31 15:10               ` Andrew Kornilov

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/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 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

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


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