Странности непонимания, шейпинг..[РЕШЕНО] (Один вариант работает, другой (более логичный - нет)..)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
gard
Сообщения: 215

Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение gard »

Здравствуйте! :) От слов - к делу.
Моя схема: ADSL Inet (DynamicIP) Modem --- eth0(192.168.0.1) --- Ubuntu --- eth1(192.168.1.1) --- LAN (1921.68.1.0/24). При соединении по pppoe у меня появляется интерфейс ppp0. Недавноя доделал брандмауэр на iptables, так вот в нем именно ppp0 в качестве $INET_IFACE и использую, что по сути вполне логично. А вот с шейпингом непонятки.. обьясните знающие люди.

Делаю так:

Код: Выделить всё

#!/bin/bash
#ppp0 <=> eth0 - Интернет, eth1 - интерфейс, связанный с локальной сетью (IP 192.168.1.1)
tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit
tc class add dev eth1 parent 1:1 classid 1:11 htb rate 128kbit ceil 128kbit
tc class add dev eth1 parent 1:1 classid 1:12 htb rate 872kbit ceil 1000kbit
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip dst 192.168.1.0/24 flowid 1:11
echo 'Дисциплина tc - eth1 удачно добавлена.'

И все работает - ограничивает, проверяю ноутбуком в ланке. :unsure: А делаю так:

Код: Выделить всё

#tc qdisc add dev ppp0 root handle 1: htb default 12
tc class add dev ppp0 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit
tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 128kbit ceil 128kbit
tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 872kbit ceil 1000kbit
tc filter add dev ppp0 parent 1:0 protocol ip prio 1 u32 match ip src 192.168.1.0/24 flowid 1:11
echo 'Дисциплина tc - ppp0 удачно добавлена.'
И не работает, всей ланке мегабит шпарит!.. Как можно заметить, в первом случае я просто повесил шейпер на eth1, что наверное не есть хорошо, его нужно на eth0 наверное, иначе я даже им по ланке фильм без шейпинга не перекину. А вот почему не работает ppp0 не понимаю. По сути мне нужно: поставить ограничитель на трафик входящий из инета, потому что не всегда мегабит, например на 1000kbit, потом сделать шейпинг трафика идущего в ланку и шейпинг трафика, идущего от ланки в Инет. К каким интерфейсам цеплять? Я интуитивно понимаю, что чтобы ограничить трафик идущий из Инета мне нужно написать что-то вроде
tc qdisc add dev eth0 handle ffff: ingress и прицепить какой то фильтр-ограничитель для в простом например всего потока. Но разве не ppp0 тут нужно писать? В общем разъясните какие (root, ingress) дисциплины куда цеплять в данном лучае, чтобы выполнить вышепоставленные задачи.
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение rm_ »

gard
Что такое "ланка"? Если можно, ссылку на статью об этом слове в словаре русского языка.

Ограничивать скорость нужно исходящую, на интерфейсе, смотрящем в локальную сеть.
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение gard »

Простите :) ланкой я тут назвал локальную сеть. Спасибо, кажется немного начинает доходить.

То есть через ppp0 я могу ограничить:
- исходящую от меня в Интернет tc qdisc add dev ppp0 root handle 1:
- обрезать входящую ко мне из интернета (просто DROP policer) tc qdisc add dev ppp0 ingress handle ffff:

А через eth1 я могу ограничить:
- исходящую от меня в локальную сеть tc qdisc add dev eth1 root handle 1:

То есть вполне логично, что в вышеприведенных правидах у меня работает первое? Так ли это? Я немного путаюсь с понятиями исходящая/входящая. Интуитивно понятно, но возникают трудности.
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение rm_ »

То есть через ppp0 я могу ограничить:
- исходящую от меня в Интернет tc qdisc add dev ppp0 root handle 1:
- обрезать входящую ко мне из интернета (просто DROP policer) tc qdisc add dev ppp0 ingress handle ffff:

А через eth1 я могу ограничить:
- исходящую от меня в локальную сеть tc qdisc add dev eth1 root handle 1:

Перечёркнутого не надо делать, входящее из интернета (= уходящее в локалку) режется на выходе у eth1.
В остальном всё верно. :)
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение gard »

Спасибо! Значит и вправду дошло до меня =)
Кажется читал, что желательно обрезать, потому что скорость все равно не идет заявленной, а так можно например на 120КБ/с нестабильные, в 100КБ/с сделать (т.е. мегабит) и уже гарантированно разделять 100КБитный канал. Или не рекомендуется?
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение rm_ »

желательно обрезать, потому что скорость все равно не идет заявленной, а так можно например на 120КБ/с нестабильные, в 100КБ/с сделать (т.е. мегабит) и уже гарантированно разделять 100КБитный канал

Абсолютно верно, к сожалению так и приходится делать.
Поэтому шейпинг не во всех случаях является оправданным, иногда логичнее ничего не шейпить, зато получить полную ёмкость канала (ну или максимальное приближение к тому, что даёт провайдер).
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Странности непонимания, шейпинг..[РЕШЕНО]

Сообщение gard »

=) Все, теперь все встало на места. Спасибо, пишу РЕШЕНО.
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали: