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

Исходное сообщение
"Насущий шейпинг"

Отправлено Viktor F , 30-Апр-09 10:54 
Доброго всем времени суток.
Есть задачи:
1) Ограничить канал гейтовой машины с ip-адресом 195.189.x.x до 2Mbit/s.
2) Нарезать каналы по 54kbit/s для юзеров внутренней сети только на входящий интернет-трафик.

В ядре имеется:

options         IPFIREWALL
options         DUMMYNET

Далее идём нарезать каналы:

/etc/ipfw

       ${fwcmdq} pipe 1 config bw 2Mbit/s #Труба для гейторой машины
       ${fwcmdq} pipe 2 config mask src-ip 0xffffffff bw 54kbit/s #пайп на исходящий траф
       ${fwcmdq} pipe 3 config mask dst-ip 0xffffffff bw 54kbit/s #пайп на входящий траф
       ${fwcmdq} add 0170 pipe 1 tcp from any to 195.189.x.x via ${ifout}
       ${fwcmdq} add 0171 pipe 1 tcp from 195.189.x.x to any via ${ifout}
       ${fwcmdq} add 0172 pipe 2 ip from 192.168.2.1/24{1-254} to any out via ${ifout}
       ${fwcmdq} add 0173 pipe 3 ip from any to 192.168.2.1/24{1-254} in via ${ifout}

${ifout} - интерфейс, который смотрит в мир.

Правилами 0170-0171 я надеялся нарезать трубку в 2Mbit/s для трафика, который гуляет в обе стороны.
Далее правилами 0172-0173 скорость для каждой машиы из подсети 192.168.2.1/24 должна была быть 54kbit/s как на исходящий трафик так и на входящий.

Но проверяя со своей машины с ип-адресом 192.168.2.14 я убедился что правила 0172-0173 не работают ( Скорость скачки по прежнему осталась анлимитной.
И как проверить канал в 2Mbit\s даже если он работает?
В чём может быть ошибка?



Содержание

Сообщения в этом обсуждении
"Насущий шейпинг"
Отправлено Pahanivo , 30-Апр-09 11:44 
>[оверквотинг удален]
>
>Правилами 0170-0171 я надеялся нарезать трубку в 2Mbit/s для трафика, который гуляет
>в обе стороны.
>Далее правилами 0172-0173 скорость для каждой машиы из подсети 192.168.2.1/24 должна была
>быть 54kbit/s как на исходящий трафик так и на входящий.
>
>Но проверяя со своей машины с ип-адресом 192.168.2.14 я убедился что правила
>0172-0173 не работают ( Скорость скачки по прежнему осталась анлимитной.
>И как проверить канал в 2Mbit\s даже если он работает?
>В чём может быть ошибка?

1)ну для начала расслабится и включить мозг
2)научится пользоваться командой ipfw -a list и приводить сдесь ее ПОЛНЫЙ вывод а не кусок скрипта вашего глюкавого фаревола
3)правила 170 172 ограничивают СУММАРНО вход исход трафик внешнего интерфейса
4)трафик локалки лучше шейтить на интерфейсе локалки (как минимум исходящий)
5)предполагаю что у вас перед правилами 172 173 стоит правило дайверт - вывод сделайте сами


"Насущий шейпинг"
Отправлено Viktor F , 30-Апр-09 12:04 
>1)ну для начала расслабится и включить мозг
>2)научится пользоваться командой ipfw -a list и приводить сдесь ее ПОЛНЫЙ вывод
>а не кусок скрипта вашего глюкавого фаревола
>3)правила 170 172 ограничивают СУММАРНО вход исход трафик внешнего интерфейса
>4)трафик локалки лучше шейтить на интерфейсе локалки (как минимум исходящий)
>5)предполагаю что у вас перед правилами 172 173 стоит правило дайверт -
>вывод сделайте сами

1) Попытаемся
2)
internet# ipfw -a list                                                                            
00010    878   161554 allow ip from any to any via lo0                                            
00015      0        0 deny ip from any to 127.0.0.0/8                                            
00020      0        0 deny ip from 127.0.0.0/8 to any                                            
00025      0        0 check-state                                                                
00100      0        0 allow tcp from any to any dst-port 53 out via rl1 setup keep-state          
00110      5      543 allow udp from any to any dst-port 53 out via rl1 keep-state                
00120      0        0 allow tcp from any to any dst-port 53 in via rl1 setup keep-state          
00130      2      357 allow udp from any to any dst-port 53 in via rl1 keep-state
00160      0        0 deny ip from 192.168.2.0/24{66-99} to any in via rl0
00161      0        0 deny ip from 192.168.2.0/24{142-199} to any in via rl0
00162      0        0 deny ip from 192.168.2.0/24{204-251} to any in via rl0
00163    620    47715 allow ip from 192.168.2.0/24 to any in via rl0
00164    522   143710 allow ip from any to 192.168.2.0/24 out via rl0
00170     38     2133 pipe 1 tcp from any to 195.189.x.x via rl1
00171     20     3818 pipe 1 tcp from 195.189.x.x to any via rl1
00172     78     8644 pipe 2 ip from 192.168.2.0/24{15-254} to any out via rl1
00173     16     6610 pipe 3 ip from any to 192.168.2.0/24{15-254} in via rl1
00200      0        0 allow tcp from any to any dst-port 20,21 out via rl1 setup keep-state
00201      0        0 allow udp from any to any dst-port 20,21 out via rl1 setup keep-state
00202      0        0 allow udp from any to any dst-port 8021 out via rl1 setup keep-state
00203    168    65010 allow tcp from any to any dst-port 80 out via rl1 setup keep-state
00204      0        0 allow tcp from any to any dst-port 25 out via rl1 setup keep-state
00205      0        0 allow tcp from any to any dst-port 465 out via rl1 setup keep-state
00206      0        0 allow tcp from any to any dst-port 110 out via rl1 setup keep-state
00207      0        0 allow tcp from any to any dst-port 993 out via rl1 setup keep-state
00208      0        0 allow tcp from any to any dst-port 995 out via rl1 setup keep-state
00209      0        0 allow tcp from any to any dst-port 443 out via rl1 setup keep-state
00210      0        0 allow icmp from any to any
00240      0        0 allow tcp from any to any dst-port 5190 out via rl1 setup keep-state
00244      0        0 allow tcp from any to any dst-port 5222 out via rl1 setup keep-state
00245      0        0 allow tcp from any to any dst-port 2041 out via rl1 setup keep-state
00245      0        0 allow tcp from any to any dst-port 2042 out via rl1 setup keep-state
00250      0        0 allow tcp from me to any out via rl1 setup uid root keep-state
00260      0        0 allow icmp from any to any out via rl1 keep-state
00270      0        0 allow tcp from 192.168.2.26 to any dst-port 60129 out via rl1 keep-state
00280      0        0 allow tcp from any to any dst-port 37 out via rl1 setup keep-state
00290      0        0 allow tcp from any to any dst-port 22 out via rl1 setup keep-state
00299      6      392 deny log ip from any to any out via rl1
00401    241   115361 allow tcp from any to me dst-port 80 in via rl1 setup keep-state
00403      0        0 allow tcp from any to any dst-port 3389 in via rl1 setup keep-state
00404      0        0 allow tcp from any to 192.168.2.14 dst-port 3387 in via rl1 setup keep-state
00405      0        0 allow tcp from any to 192.168.2.1 dst-port 8530 setup keep-state
00500      0        0 allow ip from 192.168.2.1 to me dst-port 22 in via rl0 setup keep-state
65535 467125 48083888 deny ip from any to any

Пожалуйста. Вот ipfw show =)
Как-будто бы всё работает и пакеты бегают по правилам.

3) Что мне и нужно. Мне нужно сделать трубку в 2Mbit/s в обе стороны.
4) Говорите правильно, нужно будет переписать правило. Но и с данным правилом должно работать.
5) Диверта нет в фаере.


"Насущий шейпинг"
Отправлено Pahanivo , 30-Апр-09 16:18 
>5) Диверта нет в фаере.

ааааа какже тогда оно натится? вижу на одном интерфейсе паблик на втором приват


"Насущий шейпинг"
Отправлено Viktor F , 30-Апр-09 19:57 
>>5) Диверта нет в фаере.
>
>ааааа какже тогда оно натится? вижу на одном интерфейсе паблик на втором
>приват

Не суть как натятся. Проблема заключается не в том как всё это натится, а в том как правильно пайпы нашить.
Вобщем с проблемой ограничения скорости подсети 192.168.2.1/24 я разобрался.
А вот как создать канал в 2Mbit/s для шлюза в интернет так и не разобрался..


"Насущий шейпинг"
Отправлено Pahanivo , 30-Апр-09 21:08 
>Не суть как натятся. Проблема заключается не в том как всё это
>натится, а в том как правильно пайпы нашить.
>Вобщем с проблемой ограничения скорости подсети 192.168.2.1/24 я разобрался.
>А вот как создать канал в 2Mbit/s для шлюза в интернет так
>и не разобрался..

ну почему не суть как ... если уж решаете проблему дак покажите че и как делаете или задумываете - а вы кинули кусок - нати ребятки, догадайтесь что я намудрил ...
как я понимаю 2мб будет сумарная труба для всех уже преджварительно нарезанных юзеров
к томуже труба сама по себе будет ограничивать сумму вход исход трафика
1) для начала убедитесь что у вас
net.inet.ip.fw.one_pass = 0 ! это очень необходимо для вложенных труб, да и в случае фильтрации отгейпованногго трафика
2) маски соурс и дст надо для сумарной трубы обе выставить в ноль
2) в фаерволе сначала идут правила нарезки по узким трубам и только следом правило нарезки в суммарную трубу