handler Опубликовано 24 октября, 2008 Жалоба Опубликовано 24 октября, 2008 Здравствуйте! tc шейпит трафик на внутреннем интерфейсе т к внешних интерфейсов несколько в результате получается что мы ограничиваем полосу пропускания для всего трафика идущего к клиенту туда же попадает и трафик от самбы т е пользователи качают внутренние ресурсы на скорости внешнего трафика прочитал статьи про tc там написано что нужно фильтровать по порту 138 tc class add dev eth0 parent 1:1 ckassid 1:10 htb rate 50mbit ceil 100mbit tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10 tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 138 0xffff flowid 1:10 не работает хотя класс очередь и фильтр создан и мы просматриваем его: tc slass show dev eth0 tc qdisc show dev eth0 tc filter show dev eth0 как мне пропустить самбу на высокой скорости? Цитата
cppmm Опубликовано 24 октября, 2008 Жалоба Опубликовано 24 октября, 2008 Что говорит детальный вывод статистики(ключ -d)? А так же, если не ошибаюсь, самба работает по 138-ому порту UDP, что надо бы указать явно. Цитата
handler Опубликовано 27 октября, 2008 Автор Жалоба Опубликовано 27 октября, 2008 маркирую пакеты в iptables: iptables -t mangle -A postrouting -p tcp -m multiport --sports 137,138,139,445 -j mark --set-mark 10 пакеты маркируются нормально - смотрел ч/з: iptables -t mangle -A postrouting -p tcp -m multiport --sports 137,138,139,445 -j log --log-prefix "samba" а вот tc не стыкуется остается попробовать цепочку OUTPUT в iptables т к самба как локальное приложение (хотя что OUTPUT что POSTROUTING пакеты от локальных приложений одинаково проходят) и tc исправить на: tc filter add ip protocol parent 1:0 handle 10 fw flowid 1:24 Цитата
cppmm Опубликовано 27 октября, 2008 Жалоба Опубликовано 27 октября, 2008 Цитата: iptables -t mangle -A postrouting -p tcp -m multiport --sports 137,138,139,445 -j mark --set-mark 10 Цитата: самба работает по 138-ому порту UDP Цитата
handler Опубликовано 29 октября, 2008 Автор Жалоба Опубликовано 29 октября, 2008 tcpdump ничего про UDP не говорит - все TCP протокол да и iptables -p tcp ... LOG --log-prefix "samba" выдает TCP PORT 139 вот я и подумал ... хорошо попробую UDP Цитата
handler Опубликовано 30 октября, 2008 Автор Жалоба Опубликовано 30 октября, 2008 разобрался с проблемой - причина была в том что пакеты маркируются несколько раз у меня маркируются для мультироутинга что-то вроде: iptables -t mangle -A prerouting -s 1.1.1.1 -j mark --set-mark 20 iptables -t mangle -A output -p udp -m multiport --sport 137,138 -j mark --setmark 50 iptables -t mangle -A output -p tcp -m multiport --sport 139,445 -j mark --setmark 50 смотрим таблицу mangle: 9 360 MARK all -- * * 1.1.1.1 !1.1.1.2 MARK set 0x14 3 180 MARK udp -- * * 1.1.1.2 1.1.1.1 multiport sports 137,138 MARK set 0x32 45 784 MARK tcp -- * * 1.1.1.2 1.1.1.1 multiport sports 139,445 MARK set 0x32 пакеты маркируются но в фильтр не попадают tc filter add dev eth0 protocol ip parent 1:1 handle 50 fw flowid 1:24 tc -s -d qdisc ls qdisc sfq 24: dev eth0 parent 1:24 limit 127p quantum 1514b flows 127/1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 Segmentation fault а если создать пользователя с новім адресом и не маркировать для роутинга (--set-mark 20) тогда все работает странно что первый вариант не работает там ведь маркировка идет по другому условию Цитата
handler Опубликовано 2 ноября, 2008 Автор Жалоба Опубликовано 2 ноября, 2008 мне нужно сказать фильтру чтобы отбирал все пакеты в которых адрес источника не есть такой а как это правильно сделать? tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src !192.168.0.1 так ругается Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.