URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 76292
[ Назад ]

Исходное сообщение
"Шейпинг входящего трафика на интерфейсе ppp"

Отправлено abask , 18-Сен-07 19:33 
согласно статье:
http://www.opennet.me/tips/info/1421.shtml
настраиваю перенаправление входящего трафика

после:
# modprobe ifb
# ip link set dev ifb0 up

имеем интерфейс ifb0

# ifconfig ifb0
ifb0      Link encap:Ethernet  HWaddr E2:A2:13:DD:08:CF
          inet6 addr: fe80::e0a2:13ff:fedd:8cf/64 Scope:Link
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:3 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:32
          RX bytes:210 (210.0 b)  TX bytes:0 (0.0 b)

как видим он поднялся в режиме "Link encap:Ethernet"
при попытке перенаправить входящий трафик с интерфейса ppp0 на псевдоинтерфейс ifb0 получается, что ifb0 пытается усмотреть во входном потоке ethernet кадры
вот вывод tcpdump:
# tcpdump -i ifb0
tcpdump: WARNING: ifb0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ifb0, link-type EN10MB (Ethernet), capture size 96 bytes
16:21:02.305734 01:43:90:26:00:00 (oui Unknown) > 00:03:00:21:45:00 (oui Unknown), ethertype Unknown (0x6c11), length 327:
        0x0000:  c1c4 4a74 b6b0 5639 a461 ea99 1ae1 012f  ..Jt..V9.a...../
        0x0010:  4560 6431 3a72 6432 3a69 6432 303a 27e0  E`d1:rd2:id20:'.
        0x0020:  68e7 94c2 8b67 995e edd6 cc87 6da8 9e7a  h....g.^....m..z
        0x0030:  9f34 353a 6e6f 6465 7332 3038 3a26 bce9  .45:nodes208:&..
        0x0040:  439d f045 228f f7b2 a601 782f 4845 cbaf  C..E".....x/HE..
        0x0050:  2e53                                     .S
16:21:02.339518 00:38:df:16:40:00 (oui Unknown) > 00:03:00:21:45:00 (oui Unknown), ethertype Unknown (0x7406), length 60:
        0x0000:  a7f5 5434 30e5 5639 a461 27ef b1bd a1c6  ..T40.V9.a'.....
        0x0010:  cd43 ed9c 5f1d 8018 ff59 dcf4 0000 0101  .C.._....Y......
        0x0020:  080a 0004 8eee 00e0 f56a 0000 0000       .........j....
16:21:02.439985 00:34:43:77:40:00 (oui Unknown) > 00:03:00:21:45:00 (oui Unknown), ethertype Unknown (0x6f06), length 56:
        0x0000:  8eee 55fa e8c9 5639 a461 7972 eaa8 dfdd  ..U...V9.ayr....
        0x0010:  0eeb 2008 0b87 8010 2134 2bdd 0000 0101  ........!4+.....
        0x0020:  080a 004e 91dd 00e1 decd                 ...N......

можно ли поднимать ifb интерфейсы в режиме point-to-point?


Содержание

Сообщения в этом обсуждении
"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено shulik , 19-Сен-07 10:00 
Я заворачиваю траф в ifb с вланов (ethX.Y) - в tcpdumpe та же фигня:
08:58:14.175298 44:bf:f9:46:00:11 (oui Unknown) > 00:02:44:bf:00:02 (oui Unknown), ethertype Unknown (0xd8e6), length 110:
        0x0000:  dfef 0800 4500 005c f720 0000 3f01 bcf9  ....E..\....?...
        0x0010:  c16c 268e d582 0a0a 0800 86c4 de04 3609  .l&...........6.
        0x0020:  5069 6e67 696e 6720 6672 6f6d 2044 656c  Pinging.from.Del
        0x0030:  7068 6920 636f 6465 2077 7269 7474 656e  phi.code.written
        0x0040:  2062 7920 462e 2050 6965 7474 6520 2020  .by.F..Piette...
        0x0050:  2020                                     ..
08:58:14.479744 44:bf:f9:46:00:11 (oui Unknown) > 00:02:44:bf:00:02 (oui Unknown), ethertype Unknown (0xd8e6), length 64:
        0x0000:  dfef 0800 4500 0028 926b 4000 7f06 7d2b  ....E..(.k@...}+
        0x0010:  c16c 268e 50ef b34f 041c 0e8c 922e d030  .l&.P..O.......0
        0x0020:  3bdf c225 5010 fb31 555d 0000 0000 0000  ;..%P..1U]......
        0x0030:  0000                                     ..
08:58:14.900103 44:bf:f9:46:00:11 (oui Unknown) > 00:02:44:bf:00:02 (oui Unknown), ethertype Unknown (0xd8e6), length 77:
        0x0000:  dfef 0800 4500 003b 926c 4000 7f06 7d17  ....E..;.l@...}.
        0x0010:  c16c 268e 50ef b34f 041c 0e8c 922e d030  .l&.P..O.......0
        0x0020:  3bdf c225 5018 fb31 470f 0000 5738 b3f6  ;..%P..1G...W8..
        0x0030:  bee7 f603 0000 0200 f363 59a7 0f0c f0    .........cY....
08:58:14.904438 44:bf:f9:46:00:11 (oui Unknown) > 00:02:44:bf:00:02 (oui Unknown), ethertype Unknown (0xd8e6), length 945:
        0x0000:  dfef 0800 4500 039f 2c63 4000 7f06 eda1  ....E...,c@.....
        0x0010:  c16c 268e c243 3416 060f 0050 9a86 9dfd  .l&..C4....P....
        0x0020:  b4c3 d295 5018 ff12 0a70 0000 4745 5420  ....P....p..GET.
        0x0030:  2f6d 792f 6d65 7373 6167 652e 7068 746d  /my/message.phtm
        0x0040:  6c3f 6369 643d 3130 3937 3032 2048 5454  l?cid=109702.HTT
        0x0050:  502f                                     P/

Однако траф шейпится нормально. ;)


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено abask , 19-Сен-07 18:58 
>Я заворачиваю траф в ifb с вланов (ethX.Y) - в tcpdumpe та
>же фигня:

***
>Однако траф шейпится нормально. ;)

угу,
только не обрабатываются метки проставленные iptables

вот пример моего скрипта:

#root disc
tc qdisc add dev ifb0 root handle 1: htb default 11

#root class
tc class add dev ifb0 parent 1: classid 1:1 htb rate 100kbit ceil 100kbit

#classes
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 50kbit ceil 100kbit prio 0
tc class add dev ifb0 parent 1:1 classid 1:11 htb rate 50kbit ceil 100kbit prio 1

#filters
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:10
tc filter add dev ifb0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:11

#icmp
iptables -t mangle -A INPUT -i ppp0 -p icmp -j MARK --set-mark 0x1
iptables -t mangle -A INPUT -i ppp0 -p icmp -j RETURN

#default
iptables -t mangle -A INPUT -i ppp0 -j MARK --set-mark 0x2


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено shulik , 19-Сен-07 22:26 
Есть такое подозрение (не претендующее на точность), что tcpdump пытается узреть айпи траф на интерфейсе, если сам интерфейс имеет адрес. В случае с ifb вероятно ему остается только видеть фреймы и узревать в них канальную информацию. Или я заблуждаюсь?

"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено abask , 20-Сен-07 10:09 
>Есть такое подозрение (не претендующее на точность), что tcpdump пытается узреть айпи
>траф на интерфейсе, если сам интерфейс имеет адрес. В случае с
>ifb вероятно ему остается только видеть фреймы и узревать в них
>канальную информацию. Или я заблуждаюсь?

если смотреть прямо в ppp:
# tcpdump -i ppp0
то получается нормальная картинка
# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol

я думаю дело все же не в адресе, а в том как интерфейс объявлен


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено abask , 21-Сен-07 11:14 
есть мысль переадресовывать поток не напрямую с инрерфейса, а через iptables
можно ли так сделать?



"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено shulik , 21-Сен-07 18:40 
>есть мысль переадресовывать поток не напрямую с инрерфейса, а через iptables
>можно ли так сделать?

Это уже IMQ будет. По-моему, ifb это для iproute2. Кстати, в той статье про ifb - 2 примера на тему с разбором меток из iptables и без разбора. ;)


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено abask , 21-Сен-07 23:21 
в том то и дело, что метки не разбираются т.к. интерфейс не может расшифровать чего в него приходит

зы
к тому же imq в ядро системы не встроен по умолчанию (fedora 7)


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено shulik , 21-Сен-07 22:06 
>есть мысль переадресовывать поток не напрямую с инрерфейса, а через iptables
>можно ли так сделать?

Кстати, интересно - нет ли реализаций шейпера через механизм QUEUE в iptables? Было бы очень красиво в плане схожести с dummynet во Фре, правда плохо, что траф бы вылазил в юзерспейс.


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено abask , 23-Сен-07 23:04 
>есть мысль переадресовывать поток не напрямую с инрерфейса, а через iptables
>можно ли так сделать?

хм, нету в iptables модуля работы с IFB... (а с IMQ есть)

...что делать...


"Шейпинг входящего трафика на интерфейсе ppp"
Отправлено shulik , 14-Окт-07 18:17 
Сделал схему заворота трафика с ppp на ifb в скрипте ip-up. Сам pptp реализовывал на accel-pptp. Шейпера на ifb0 навесил при помощи htb.init. Сам долго тестировал, гонял - все ок. Посадил клиентов - через 10 минут kernel panic. Не успел увидеть его сути. Решил, что трабла в accel-pptp. Поставил poptop 1.3.4. Опять 10 мин с клиентами и kernel panic. Успел зафоткать:
трабла оказалась в том, что не смогло обработаться softirq на ifb0 в функции dev_queue_xmit. Почесал репу и до выяснения обстоятельств закатал на место линуха FreeBSD.....