Jump to content
Калькуляторы

tc filter .. match ether или шейпер по маку

Доброго дня!

 

Коллеги, кто-то может проверить такую конструкцию:

tc filter add                         \
dev eth0                              \
parent 1:                             \
protocol 802_3                        \
pref 10                               \
u32                                   \
match ether src 12:34:56:78:9a:bc     \
match u16 0x0806 0xffff at -2         \
action mirred egress mirror dev ifb0  

 

У меня не заработало ни в каком виде (варианты со смещением тоже пробовал)

 

Взял здесь: http://habrahabr.ru/post/138463/

 

Пробовал на ядре 2.6.32 и на убунте 3.13.0-34-generic

 

При этом конструкция

/sbin/tc filter add dev eth0 
parent 1:          
prio 1  
protocol ip 
u32 match u16 0x0800 0xFFFF at -2 
match u16 0x${M4}${M5} 0x0000  at -4 
match u32 0x${M0}${M1}${M2}${M3}  0x00000000 at -8
action mirred egress redirect dev ifb0

заворачивает весь траффик. M{${I}} - мак адрес разбитый на байты.

0х00 ... для теста, а вот замена на 0xFF... приводит к тому что перестают матчится пакеты.

 

Пример с хабра

tc filter add                         \
dev eth0                              \
parent 1:                             \
protocol 802_3                        \
pref 10                               \
u32                                   \
match u32 0x12345678 0xffffffff at -8 \
match u32 0x9abc0000 0xffff0000 at -4 \
match u16 0x0806 0xffff at -2         \
action mirred egress mirror dev ifb0  

тоже не удалось заставить работать.

Share this post


Link to post
Share on other sites

sirmax Эмм.. 802_3 по-моему вообще не работает.

3.11.0-19-generic

tcpdump

	0x0000:  000b 2b81 bf64 0024 1d75 d3d9 0800 4500  ..+..d.$.u....E.
0x0010:  0033 d64c 4000 4011 506b 0a00 0002 0a00  .3.L@.@.Pk......
0x0020:  0001 4929 0035 001f bf35 0a28 0100 0001  ..I).5...5.(....
0x0030:  0000 0000 0000 0279 6102 7275 0000 0100  .......ya.ru....
0x0040:  01 

src-eth 00:24:1d:75:d3:d9

 

tc qdisc add dev eth0 root handle 1:0 htb default 2
root@main:~# tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Mbit ceil 10Mbit
root@main:~# tc class add dev eth0 parent 1:0 classid 1:2 htb rate 10Mbit ceil 10Mbit
root@main:~# tc filter add dev eth0 pref 1 protocol ip handle 800:0:1 u32 ht 800:0 match u32 0xd3d90800 0xffffffff at -4 classid 1:1 action ok

Смещение считается от начала L3 пакета. Сразу после Ethernet. protocol указывает для каких l3 пакетов применять фильтр - ip - только IPv4, ipv6 - только для IPv6, all - для всех.

root@main:~# tc -s -d class show dev eth0
class htb 1:1 root prio 0 quantum 125000 rate 10000Kbit ceil 10000Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1600b/1 mpu 0b overhead 0b level 0 
Sent 910231 bytes 7182 pkt (dropped 0, overlimits 0 requeues 0) 
rate 0bit 0pps backlog 0b 0p requeues 0 
lended: 7182 borrowed: 0 giants: 0
tokens: 18812 ctokens: 18812

class htb 1:2 root prio 0 quantum 125000 rate 10000Kbit ceil 10000Kbit burst 1600b/1 mpu 0b overhead 0b cburst 1600b/1 mpu 0b overhead 0b level 0 
Sent 1786730 bytes 16148 pkt (dropped 0, overlimits 0 requeues 0) 
rate 0bit 0pps backlog 0b 0p requeues 0 
lended: 16148 borrowed: 0 giants: 0
tokens: 19475 ctokens: 19475

root@main:~# tc -s -d filter show dev eth0
filter parent 1: protocol ip pref 1 u32 
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 1 u32 fh 800::1 order 1 key ht 800 bkt 0 flowid 1:1 
 match d3d90800/ffffffff at -4
action order 1: gact action pass
 random type none pass val 0
 index 1 ref 1 bind 1 installed 514 sec used 1 sec
	Action statistics:
Sent 910231 bytes 7182 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 


16148 - проскочило до вставки фильтра

Edited by SABRE

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.