The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ifb + tc + iptables MARK - не работает "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Квоты, ограничения, QoS / Linux)
Изначальное сообщение [ Отслеживать ]

"ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 08-Дек-10, 16:45 
Здравствуйте, тема жевалась много-много раз, и много-много где, но у меня не работает :( Я понимаю что это где-то очень простое, но как заставить работать за вот уже  6 часов так и не придумал.
Имеем стенд:
Система: Debian
eth0 - в мир
eth1 - локалка
192.168.56.1 - клиент из локалки

Задача шейпить входящую и исходящую скорость на клиента. Так как это стенд, не хватает кучи VLAN, дополнительных интерфейсов и каких-то ограничений. По этому сразу оговорюсь что eth0 (которое смотрит в мир) на боевом сервере представляет собой 2 интерфейса и 3 VLANа, а на локалке есть еще 2 VLANа, которые должны идти со скоростью локакли а не инета. По этому было решено использовать ifb для ingress шейпера где-то между физическими интерфейсами.

Что делаем:
ipr=tc
# Редирект на ingress интерфейсы
$ipr qdisc add dev eth0 handle ffff: ingress
$ipr filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
$ipr qdisc add dev eth1 handle ffff: ingress
$ipr filter add dev eth1 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb1

# Создаем базовую дисциплину
$ipr qdisc add dev ifb0 root handle 2:0 htb default 10
$ipr qdisc add dev ifb1 root handle 2:0 htb default 10

# Создаем базовый класс для каждого устройства
$ipr class add dev ifb0 parent 2:0 classid 2:20 htb rate 128Kbit ceil 512Kbit
$ipr class add dev ifb1 parent 2:0 classid 2:20 htb rate 128Kbit ceil 512Kbit

# Создаем класс для пользователя
tc class add dev ifb0 parent 2:20 classid 2:717 htb rate 64Kbit ceil 128Kbit prio 1
tc class add dev ifb1 parent 2:20 classid 2:717 htb rate 64Kbit ceil 128Kbit prio 1

# Все что имеет метку 717 отправляем в этот класс
tc filter add dev ifb0 protocol ip parent 2:20 prio 1 handle 717 fw flowid 2:717
tc filter add dev ifb1 protocol ip parent 2:20 prio 1 handle 717 fw flowid 2:717

Далее делаем маркировку с помощью iptables:
iptables -t mangle -A POSTROUTING -d 192.168.56.1/32 -j MARK --set-xmark 0x2cd/0xffffffff
iptables -t mangle -A POSTROUTING -s 192.168.56.1/32 -j MARK --set-xmark 0x2cd/0xffffffff

При этом iptables -t mangle -nvL говорит следующее:
Chain POSTROUTING (policy ACCEPT 495K packets, 248M bytes)
pkts bytes target     prot opt in     out     source               destination        
16740   21M MARK       all  --  *      *       0.0.0.0/0            192.168.56.1        MARK xset 0x2cd/0xffffffff
5238 1812K MARK       all  --  *      *       192.168.56.1         0.0.0.0/0           MARK xset 0x2cd/0xffffffff

Т.е. что-то оно маркирует. Но ничего не шейпится.
Что я сделал не правильно?

P.S. Пробовал разные метки для входящего и исходящего траффика не помогло. С исходящим траффиком такое работает (т.е. если чистые ethХ на исход шейпить), с ifb - не работает.
Если с ifb не работает - как быть? Куда копать?
Спасибо!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от pavel_simple (ok) on 08-Дек-10, 17:59 
>[оверквотинг удален]
>     192.168.56.1      
>   0.0.0.0/0        
>   MARK xset 0x2cd/0xffffffff
> Т.е. что-то оно маркирует. Но ничего не шейпится.
> Что я сделал не правильно?
> P.S. Пробовал разные метки для входящего и исходящего траффика не помогло. С
> исходящим траффиком такое работает (т.е. если чистые ethХ на исход шейпить),
> с ifb - не работает.
> Если с ifb не работает - как быть? Куда копать?
> Спасибо!

а зачем маска? echo $((0x2cd && 0xFFFF)) ???
а ключик --set-xmark вообще-то из молуля CONNMARK а НЕ MARK

внимательней нужно -- внимательней

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 08-Дек-10, 18:39 
>[оверквотинг удален]
>> Т.е. что-то оно маркирует. Но ничего не шейпится.
>> Что я сделал не правильно?
>> P.S. Пробовал разные метки для входящего и исходящего траффика не помогло. С
>> исходящим траффиком такое работает (т.е. если чистые ethХ на исход шейпить),
>> с ifb - не работает.
>> Если с ifb не работает - как быть? Куда копать?
>> Спасибо!
> а зачем маска? echo $((0x2cd && 0xFFFF)) ???
> а ключик --set-xmark вообще-то из молуля CONNMARK а НЕ MARK
> внимательней нужно -- внимательней

Спасибо за ответ, но по всей видимости ошибка на которую вы указали не при чем, так как делаю я вот что:
$ipt -t mangle  -A PREROUTING -s 192.168.56.1 -j MARK --set-mark 721

проверяем что получилось, с помощью iptables -t mangle -S :
-A POSTROUTING -s 192.168.56.1/32 -j MARK --set-xmark 0x2d1/0xffffffff

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 08-Дек-10, 22:01 
>[оверквотинг удален]
>>> Если с ifb не работает - как быть? Куда копать?
>>> Спасибо!
>> а зачем маска? echo $((0x2cd && 0xFFFF)) ???
>> а ключик --set-xmark вообще-то из молуля CONNMARK а НЕ MARK
>> внимательней нужно -- внимательней
> Спасибо за ответ, но по всей видимости ошибка на которую вы указали
> не при чем, так как делаю я вот что:
> $ipt -t mangle  -A PREROUTING -s 192.168.56.1 -j MARK --set-mark 721
> проверяем что получилось, с помощью iptables -t mangle -S :
> -A POSTROUTING -s 192.168.56.1/32 -j MARK --set-xmark 0x2d1/0xffffffff

я попробовал разными способами маркировать и все равно в фильтр пакеты не попадают :(

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от Etch on 09-Дек-10, 07:13 
Если я не ошибаюсь, то iptables работает после ingress, поэтому он никак не может повлиять на эти фильтры.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от pavel_simple (ok) on 09-Дек-10, 07:55 
> Если я не ошибаюсь, то iptables работает после ingress, поэтому он никак
> не может повлиять на эти фильтры.

да всё там работает -- толькj нужно немного покумекать

1. "объеденяем" все интерфейсы в мир в ifb0
2. "объеденяем" все интерфейсы в хомяков в ifb1

теперь, раз ingress делать никак -- то логика нам говорит, что входящий с хомяков = исходящий во внешку -- т.е. egress -- соответственно и марки и tc filter...flowid тоже робит.

соответственно со входящим из мира. единственное что не получиться в данном случае полисиnь -- это траф на сам хост (а оно и не нужно).

--------------------------------------------
пример
--------------------------------------------
##зачистка
#два внешних
tc qdisc del dev vlan0 ingress
tc qdisc del dev vlan0 root
tc qdisc del dev vlan1 ingress
tc qdisc del dev vlan1 root

#два "внутренних"
tc qdisc del dev vlan10 ingress
tc qdisc del dev vlan10 root
tc qdisc del dev vlan11 ingress
tc qdisc del dev vlan11 root

#ifb
tc qdisc del dev ifb0 ingress
tc qdisc del dev ifb0 root
tc qdisc del dev ifb1 ingress
tc qdisc del dev ifb1 root

ip l set ifb0 down
ip l set ifb1 down
rmmod ifb
##конец зачистки
#начало
modprobe ifb numifbs=2
ip l set ifb0 up
ip l set ifb1 up

tc qdisc del dev vlan0 ingress
tc qdisc del dev vlan0 root
tc qdisc del dev vlan1 ingress
tc qdisc del dev vlan1 root

tc qdisc del dev vlan10 ingress
tc qdisc del dev vlan10 root
tc qdisc del dev vlan11 ingress
tc qdisc del dev vlan11 root
#0=в_мир, 1=на пользователей
tc qdisc del dev ifb0 ingress
tc qdisc del dev ifb0 root
tc qdisc del dev ifb1 ingress
tc qdisc del dev ifb1 root

#простой tbf для наглядности с 8kbit/s в пике.
tc qdisc add dev ifb0 root handle 1: prio
tc qdisc add dev ifb0 parent 1:1 handle 10: tbf rate 6kbit latency 10ms burst 154 peakrate 8kbit mtu 1500
tc qdisc add dev ifb0 parent 1:2 handle 20: tbf rate 8mbit latency 100ms burst 1540

tc filter add dev ifb0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:1
tc filter add dev ifb0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:2

#на пользователей htb с разделением полосы в 10mbit на сеть 192.168.0.0/24 равномерно, а для помеченых 10 в полосу 20mbit
tc qdisc add dev ifb1 root handle 1: htb default 20

tc class add dev ifb1 parent 1:1 classid 1:10 htb rate 20mbit ceil 20mbit prio 1
tc qdisc add dev ifb1 parent 1:10 handle 10: sfq perturb 10
tc class add dev ifb1 parent 1:1 classid 1:20 htb rate 10mbit ceil 10mbit prio 2
tc qdisc add dev ifb1 parent 1:20 handle 20: sfq perturb 10

tc filter add dev ifb1 parent 20: protocol ip handle 20 flow hash keys dst divisor 512

tc filter add dev ifb1 parent 1: protocol ip prio 2 u32 match ip dst 192.168.0.0/24 flowid 1:20
tc filter add dev ifb1 parent 1: protocol ip prio 1 handle 10 fw flowid 1:10


#заворачиваем в ifb0(в_мир)
tc qdisc add dev vlan0 root handle 1: prio
tc filter add dev vlan0 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev vlan1 root handle 1: prio
tc filter add dev vlan1 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0

#заворачиваем в ifb1(на_пользователей)
tc qdisc add dev vlan10 root handle 1: prio
tc filter add dev vlan10 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb1
tc qdisc add dev vlan11 root handle 1: prio
tc filter add dev vlan11 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb1

на и соответственно проверка
#в mangle
#весь icmp на google dns в полосу с 8kbit
-A POSTROUTING -o ifb0 -d 8.8.8.8/32 -p icmp -j MARK --set-xmark 0xa/0xffffffff
#хост 192.168.56.1 в полосу в 20mbit
-A POSTROUTING -o ifb1 -d 192.168.56.1/32 -p icmp -j MARK --set-xmark 0xa/0xffffffff


вроде без ошибок, но vlan интнрфейсов вот прям сдесь и сейчас у меня нет -- проверяйте.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 09-Дек-10, 14:31 
>[оверквотинг удален]
> нужно).
> ..
> на и соответственно проверка
> #в mangle
> #весь icmp на google dns в полосу с 8kbit
> -A POSTROUTING -o ifb0 -d 8.8.8.8/32 -p icmp -j MARK --set-xmark 0xa/0xffffffff
> #хост 192.168.56.1 в полосу в 20mbit
> -A POSTROUTING -o ifb1 -d 192.168.56.1/32 -p icmp -j MARK --set-xmark 0xa/0xffffffff
> вроде без ошибок, но vlan интнрфейсов вот прям сдесь и сейчас у
> меня нет -- проверяйте.

Не маркирует пакеты, выдает пройдено по цепочке 0 бакетов и 0 байт.  Попробовал сделать с помощью u32 и вот что получилось:

# переводим вход и выход c ethX на соответствующие ifb
$ipr qdisc add dev eth0 handle ffff: ingress
$ipr filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
$ipr qdisc add dev eth1 handle ffff: ingress
$ipr filter add dev eth1 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb1

# Базовые класы с 10й по умолчанию
$ipr qdisc add dev ifb0 root handle 2:0 htb default 10
$ipr qdisc add dev ifb1 root handle 2:0 htb default 10

# создаем классы и не забываем включать 10-ку
$ipr class add dev ifb0 parent 2:0 classid 2:20 htb rate 128Kbit ceil 512Kbit
$ipr class add dev ifb1 parent 2:0 classid 2:20 htb rate 128Kbit ceil 512Kbit
$ipr class add dev ifb0 parent 2:0 classid 2:10 htb rate 128Kbit ceil 256Kbit
$ipr class add dev ifb1 parent 2:0 classid 2:10 htb rate 128Kbit ceil 256Kbit

# Делаем пользовательский класс на входящем и исходящем интерфейсе соответственно
tc class add dev ifb0 parent 2:20 classid 2:717 htb rate 64Kbit ceil 128Kbit prio 1
tc class add dev ifb1 parent 2:20 classid 2:717 htb rate 64Kbit ceil 128Kbit prio 1

# отправляем пользователя в отведенный ему клас
tc filter add dev ifb0 parent 2: protocol ip prio 1 u32 match ip dst 192.168.56.1/32 flowid 2:717
tc filter add dev ifb1 parent 2: protocol ip prio 1 u32 match ip src 192.168.56.1/32 flowid 2:717


В результате видим:
root@debian:~# tc -s -d class show  dev ifb0
class htb 2:717 parent 2:20 prio 1 quantum 1000 rate 64000bit ceil 128000bit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 195312 ctokens: 97656
    

root@debian:~# tc -s -d class show  dev ifb1
class htb 2:717 parent 2:20 prio 1 quantum 1000 rate 64000bit ceil 128000bit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0
Sent 1764652 bytes 12565 pkt (dropped 0, overlimits 0 requeues 0)
rate 4432bit 5pps backlog 0b 0p requeues 0
lended: 11827 borrowed: 738 giants: 0  
tokens: 175539 ctokens: 89602
    

Вопрос - почему идентичная конфигурация работает на ifb1 и не работает на ifb0?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "ifb + tc + iptables MARK - не работает "  +1 +/
Сообщение от Etch on 09-Дек-10, 16:01 
> # отправляем пользователя в отведенный ему клас
> tc filter add dev ifb0 parent 2: protocol ip prio 1 u32
> match ip dst 192.168.56.1/32 flowid 2:717
> tc filter add dev ifb1 parent 2: protocol ip prio 1 u32
> match ip src 192.168.56.1/32 flowid 2:717
> Вопрос - почему идентичная конфигурация работает на ifb1 и не работает на
> ifb0?

Рискну предположить, что у вас там работает NAT и тогда эти пакеты совсем не предназначены для ip dst 192.168.56.1/32 на данном этапе прохождения пакетов через ядро.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 09-Дек-10, 17:06 
>> # отправляем пользователя в отведенный ему клас
>> tc filter add dev ifb0 parent 2: protocol ip prio 1 u32
>> match ip dst 192.168.56.1/32 flowid 2:717
>> tc filter add dev ifb1 parent 2: protocol ip prio 1 u32
>> match ip src 192.168.56.1/32 flowid 2:717
>> Вопрос - почему идентичная конфигурация работает на ifb1 и не работает на
>> ifb0?
> Рискну предположить, что у вас там работает NAT и тогда эти пакеты
> совсем не предназначены для ip dst 192.168.56.1/32 на данном этапе прохождения
> пакетов через ядро.

да, на стенде поднят НАТ, прошу прощения за то что не упоминул этот важный момент. Подскажите как можно это ограничение обойти?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от pavel_simple (ok) on 09-Дек-10, 17:44 
>[оверквотинг удален]
>>> match ip dst 192.168.56.1/32 flowid 2:717
>>> tc filter add dev ifb1 parent 2: protocol ip prio 1 u32
>>> match ip src 192.168.56.1/32 flowid 2:717
>>> Вопрос - почему идентичная конфигурация работает на ifb1 и не работает на
>>> ifb0?
>> Рискну предположить, что у вас там работает NAT и тогда эти пакеты
>> совсем не предназначены для ip dst 192.168.56.1/32 на данном этапе прохождения
>> пакетов через ядро.
> да, на стенде поднят НАТ, прошу прощения за то что не упоминул
> этот важный момент. Подскажите как можно это ограничение обойти?

   conntrack

      This module, when combined with connection tracking, allows access to the connection tracking state for this packet/connection.

................

      [!] --ctorigdst address[/mask]

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 09-Дек-10, 20:55 
>[оверквотинг удален]
>>> Рискну предположить, что у вас там работает NAT и тогда эти пакеты
>>> совсем не предназначены для ip dst 192.168.56.1/32 на данном этапе прохождения
>>> пакетов через ядро.
>> да, на стенде поднят НАТ, прошу прощения за то что не упоминул
>> этот важный момент. Подскажите как можно это ограничение обойти?
>    conntrack
>       This module, when combined with connection
> tracking, allows access to the connection tracking state for this packet/connection.
> ................
>       [!] --ctorigdst address[/mask]

Не хочу показаться глупым, но маркировка пакетов с помощью iptables не происходит никак:

Chain POSTROUTING (policy ACCEPT 1117K packets, 605M bytes)
pkts bytes target     prot opt in     out     source               destination        
    0     0 MARK       all  --  *      ifb1    192.168.56.1         0.0.0.0/0           MARK xset 0x2cd/0xffffffff
    0     0 MARK       all  --  *      ifb0    192.168.56.1         0.0.0.0/0           MARK xset 0x2cd/0xffffffff
    0     0 MARK       all  --  *      ifb0    0.0.0.0/0            192.168.56.1        MARK xset 0x2cd/0xffffffff
    0     0 MARK       all  --  *      ifb1    0.0.0.0/0            192.168.56.1        MARK xset 0x2cd/0xffffffff
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0           ctorigdst 192.168.56.1 MARK xset 0x2cd/0xffffffff
root@debian:~# w
02:55:49 up 11:06,  2 users,  load average: 0.01, 0.01, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                15:50    2:35m 11.36s 10.80s -bash
onorua   pts/1    192.168.56.1     00:20    0.00s 12.18s  0.30s sshd: onorua [priv]

Не обращайте внимание на 2 "лишних" правила, это я проверял оно хоть как-то проходит или нет. Вот какие правила у меня есть сейчас:

root@debian:~# iptables -t mangle -S POSTROUTING
-P POSTROUTING ACCEPT
-A POSTROUTING -s 192.168.56.1/32 -o ifb1 -j MARK --set-xmark 0x2cd/0xffffffff
-A POSTROUTING -s 192.168.56.1/32 -o ifb0 -j MARK --set-xmark 0x2cd/0xffffffff
-A POSTROUTING -d 192.168.56.1/32 -o ifb0 -j MARK --set-xmark 0x2cd/0xffffffff
-A POSTROUTING -d 192.168.56.1/32 -o ifb1 -j MARK --set-xmark 0x2cd/0xffffffff
-A POSTROUTING -m conntrack --ctorigdst 192.168.56.1 -j MARK --set-xmark 0x2cd/0xffffffff

Буду признателен любой идее, гуглю уже второй день причину не вижу :(

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 09-Дек-10, 21:17 
>[оверквотинг удален]
> Не обращайте внимание на 2 "лишних" правила, это я проверял оно хоть
> как-то проходит или нет. Вот какие правила у меня есть сейчас:
> root@debian:~# iptables -t mangle -S POSTROUTING
> -P POSTROUTING ACCEPT
> -A POSTROUTING -s 192.168.56.1/32 -o ifb1 -j MARK --set-xmark 0x2cd/0xffffffff
> -A POSTROUTING -s 192.168.56.1/32 -o ifb0 -j MARK --set-xmark 0x2cd/0xffffffff
> -A POSTROUTING -d 192.168.56.1/32 -o ifb0 -j MARK --set-xmark 0x2cd/0xffffffff
> -A POSTROUTING -d 192.168.56.1/32 -o ifb1 -j MARK --set-xmark 0x2cd/0xffffffff
> -A POSTROUTING -m conntrack --ctorigdst 192.168.56.1 -j MARK --set-xmark 0x2cd/0xffffffff
> Буду признателен любой идее, гуглю уже второй день причину не вижу :(

Кажется ответ найден, с ifb iptables просто не работает, так как ifb идет до netfilter.
IMQ:
+ гибкая интеграция с iptables (на imq девайс можно завернуть не веть трафик, а только часть), нет проблем с метками MARK
+ корректно работает при наличии NAT
- не включено в текущее ядро, и, видимо, не будет включено
- нужно патчить ядро и iptables
IFB
+ часть ядра начиная с 2.6.16, ничего пачтить не надо, работает из коробки
+ заявляется, что кода меньше, он чище, и т.п. чем в IMQ, и типа идеологически более правильно
- при ingress shaping стоит ДО netfilter, отсюда ряд проблем:
- не понимает iptables MARK (трафик заворачивается до того как пометится)
- проблемы с NAT (веь трафик идет на NAT ip)

Вопрос, существует ли реализация того что я хочу сделать в ядре, чтоб не патчить ядро для IMQ?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от Etch on 10-Дек-10, 07:03 
> Вопрос, существует ли реализация того что я хочу сделать в ядре, чтоб
> не патчить ядро для IMQ?

вряд ли.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от mr_gfd on 10-Дек-10, 11:56 
>[оверквотинг удален]
> IFB
> + часть ядра начиная с 2.6.16, ничего пачтить не надо, работает из
> коробки
> + заявляется, что кода меньше, он чище, и т.п. чем в IMQ,
> и типа идеологически более правильно
> - при ingress shaping стоит ДО netfilter, отсюда ряд проблем:
> - не понимает iptables MARK (трафик заворачивается до того как пометится)
> - проблемы с NAT (веь трафик идет на NAT ip)
> Вопрос, существует ли реализация того что я хочу сделать в ядре, чтоб
> не патчить ядро для IMQ?

Шейпить на бордере - дурной тон.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "ifb + tc + iptables MARK - не работает "  +/
Сообщение от onorua email(??) on 10-Дек-10, 12:12 
>[оверквотинг удален]
>> + часть ядра начиная с 2.6.16, ничего пачтить не надо, работает из
>> коробки
>> + заявляется, что кода меньше, он чище, и т.п. чем в IMQ,
>> и типа идеологически более правильно
>> - при ingress shaping стоит ДО netfilter, отсюда ряд проблем:
>> - не понимает iptables MARK (трафик заворачивается до того как пометится)
>> - проблемы с NAT (веь трафик идет на NAT ip)
>> Вопрос, существует ли реализация того что я хочу сделать в ядре, чтоб
>> не патчить ядро для IMQ?
> Шейпить на бордере - дурной тон.

Я знаю что правильнее разносить локалку на L3 свитч, шейпер и НАТ на разные машины, но это жизнь, иногда приходиться изворачиваться из того что есть сейчас :)

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру