IPFW config

Протоколы, пинги, роутинг - ответы на вопросы как заставить сеть работать правильно
Аватара пользователя
вадим_

 

IPFW config

Сообщение вадим_ 30 авг 2005, 22:44

не будет ли кто нить любезен(из юзающих БСД) скинуть свой конфиг IPFW
интересует организация шейпинга, включение правил по времени и тп


заранее спасибо

Аватара пользователя
dopey

 
Сообщения: 19
Зарегистрирован:
31 май 2005, 14:58

Сообщение dopey 31 авг 2005, 13:58

/etc/firewall_day:
Код: Выделить всё
#!/bin/sh

sysctl net.inet.ip.fw.one_pass=0
PROXY1=xxxx.dyndns.org
PROXY2=yyyy.dyndns.org
PROXY_PORT=3128

#----------------------------------------------------
#  delete all loaded rules                          #
#----------------------------------------------------

ipfw -f flush
ipfw -f pipe flush

#----------------------------------------------------
#  enable NAT on fxp0                               #
#----------------------------------------------------

ipfw add 110 divert natd all from any to any via fxp0

#----------------------------------------------------
#  let the packets pass from and to gateway's NICS  #
#----------------------------------------------------

ipfw add 200 allow ip from any to 192.168.0.100
ipfw add 201 allow ip from 192.168.0.100 to any
ipfw add 202 allow ip from any to 192.168.1.100
ipfw add 203 allow ip from 192.168.1.100 to any

#----------------------------------------------------
#  allow communication through lo0                  #
#----------------------------------------------------

ipfw add 204 pass ip from any to any via lo0

#----------------------------------------------------
#  configure bandwidth and weights (dynamic shaping)#
#----------------------------------------------------

#upload
ipfw pipe 1 config bw 860Kbit/s queue 86 gred 0.002/10/30/0.1
ipfw queue 1 config mask src-ip 0xffffffff pipe 1 queue 5 gred 0.002/10/30/0.1
ipfw queue 2 config mask dst-ip 0xffffffff pipe 1 queue 5 gred 0.002/10/30/0.1

#---------------------------------------------------------------
#  assign each client its bandwidth priority (dynamic shaping) #
#---------------------------------------------------------------

#upload
ipfw add 100 queue 1 ip from 192.168.0.0/24 to any out via fxp0

#download
ipfw add 120 queue 2 ip from any to 192.168.0.0/24 in via fxp0

#----------------------------------------------------------------
#  configure bandwidth for each user (hard limits on each user) #
#----------------------------------------------------------------

#upload
ipfw pipe 2 config bw 560Kbit/s queue 5 gred 0.002/10/30/0.1

#download
ipfw pipe 4 config bw 560Kbit/s queue 5 gred 0.002/10/30/0.1

#----------------------------------------------------------------
#  assign each user its bandwidth (hard limits)                 #
#----------------------------------------------------------------

#upload
ipfw add 101 pipe 2 ip from 192.168.0.0/24 to any out via fxp0

#download
ipfw add 121 pipe 4 ip from any to 192.168.0.0/24 in via fxp0

#----------------------------------------------------
#  allow SHURIK                                     #
#----------------------------------------------------

ipfw add 300 allow all from 192.168.0.101 to 212.0.200.0/24
ipfw add 301 allow all from 212.0.200.0/24 to 192.168.0.101
ipfw add 302 deny all from 192.168.0.101 to 192.168.169.66
ipfw add 303 deny all from 192.168.169.66 to 192.168.0.101
ipfw add 304 allow all from $PROXY1 to 192.168.0.101
ipfw add 305 allow tcp from 192.168.0.101 to $PROXY1 $PROXY_PORT
ipfw add 306 allow udp from 192.168.0.101 to $PROXY1 $PROXY_PORT
ipfw add 307 allow all from $PROXY2 to 192.168.0.101
ipfw add 308 allow tcp from 192.168.0.101 to $PROXY2 $PROXY_PORT
ipfw add 309 allow udp from 192.168.0.101 to $PROXY2 $PROXY_PORT

#----------------------------------------------------
#  allow DOPEY                                      #
#----------------------------------------------------

ipfw add 400 allow all from any to 192.168.0.21
ipfw add 401 allow all from 192.168.0.21 to any
#ipfw add 400 deny all from 192.168.0.21 to 192.168.169.66
#ipfw add 401 deny all from 192.168.169.66 to 192.168.0.21
#ipfw add 402 allow all from $PROXY to 192.168.0.21
#ipfw add 403 allow tcp from 192.168.0.21 to $PROXY $PROXY_PORT
#ipfw add 404 allow udp from 192.168.0.21 to $PROXY $PROXY_PORT


#----------------------------------------------------
#  allow SEREGA                                     #
#----------------------------------------------------

ipfw add 500 deny all from 192.168.0.114 to 192.168.169.66
ipfw add 501 deny all from 192.168.169.66 to 192.168.0.114
ipfw add 502 allow all from any to 192.168.0.114
ipfw add 503 allow all from 192.168.0.114 to any

#----------------------------------------------------
#  allow KIND                                       #
#----------------------------------------------------

ipfw add 600 deny all from 192.168.0.113 to 192.168.169.66
ipfw add 601 deny all from 192.168.169.66 to 192.168.0.113
ipfw add 602 allow all from 192.168.0.113 to 212.0.200.0/24
ipfw add 603 allow all from 212.0.200.0/24 to 192.168.0.113
ipfw add 604 allow all from $PROXY1 to 192.168.0.113
ipfw add 605 allow tcp from 192.168.0.113 to $PROXY1 $PROXY_PORT
ipfw add 606 allow udp from 192.168.0.113 to $PROXY1 $PROXY_PORT
ipfw add 607 allow all from $PROXY2 to 192.168.0.113
ipfw add 608 allow tcp from 192.168.0.113 to $PROXY2 $PROXY_PORT
ipfw add 609 allow udp from 192.168.0.113 to $PROXY2 $PROXY_PORT

#----------------------------------------------------
#  count users traffic                              #
#----------------------------------------------------

#download
ipfw add 47 count all from any to 192.168.0.21 out recv fxp0
ipfw add 49 count all from any to 192.168.0.101 out recv fxp0
ipfw add 53 count all from any to 192.168.0.114 out recv fxp0
ipfw add 55 count all from any to 192.168.0.113 out recv fxp0 
#upload
ipfw add 48 count all from 192.168.0.21 to any out xmit fxp0
ipfw add 50 count all from 192.168.0.101 to any out xmit fxp0
ipfw add 54 count all from 192.168.0.114 to any out xmit fxp0
ipfw add 56 count all from 192.168.0.113 to any out xmit fxp0 

А чтоб включать/исключать правила по времени, тебе придется написать скрипт который будет в заданное время вводить изменения в правила файервола. Можешь написать кучу простых скриптов на /bin/sh и запускать каждый в свое время через crontab или можешь забацать например на Perl демона который будет сам проверять системное время и стирать/добавлять правила IPFW соответственно.
/etc/crontab
Код: Выделить всё
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log 

*/1	*	*	*	*	root	/usr/libexec/atrun 

5	0	*	*	*	root	/etc/firewall_night
5	8	*	*	*	root	/etc/firewall_day
55	23	*	*	*	root	/etc/firewall_deny_access
54	23	*	*	*	root	/usr/billing/get_stat
55	7	*	*	*	root	/etc/firewall_deny_access
54	7	*	*	*	root	/usr/billing/get_stat
*/1	*	*	*	*	root	/usr/billing/get_current.pl
 
The severity of the itch is inversely proportional to the ability to scratch it. :)

Аватара пользователя
вадим_

 

Сообщение вадим_ 31 авг 2005, 16:00

ммм, а вот как забацать ДИНАМИЧЕСКИЙ шейпинг между всеми юзверями ходящими в инет ? и можно ли как то ограничить определенный вид траффика например п2п или *.mp3 файлы -выделить им некую скорость в 2 КБ или ето возможно только через сквид ?
у вас тут упомянаються некоторые скрипты
/etc/firewall_night
/etc/firewall_day
/etc/firewall_deny_access
/usr/billing/get_stat
/etc/firewall_deny_access
/usr/billing/get_stat
/usr/billing/get_current.pl

можно их тоже ? :oops:

Аватара пользователя
Andrew Noga

 
Сообщения: 27
Зарегистрирован:
25 июл 2004, 18:26

Сообщение Andrew Noga 01 сен 2005, 17:39

вадим_ писал(а):ммм, а вот как забацать ДИНАМИЧЕСКИЙ шейпинг между всеми юзверями ходящими в инет ? и можно ли как то ограничить определенный вид траффика например п2п или *.mp3 файлы -выделить им некую скорость в 2 КБ или ето возможно только через сквид ?


http://www.opennet.ru/openforum/vsluhforumID10/598.html
может как-то так ?
на .мрз - если по протоколу http - то через сквид
p2p - проще смотреть по интенсивности трафика.
чем больше скушал, тем меньше скорость.

Аватара пользователя
вадим_

 

Сообщение вадим_ 03 сен 2005, 00:35

ладно, оставим все вопросы про разного рода ограничения. Как можно динамически распределить скорость поровну между всеми клиентами использующими канал инета в данный момент времен ? ? ?

Аватара пользователя
Igoras
Moderator
Moderator
 
Сообщения: 3248
Зарегистрирован:
22 окт 2003, 20:27
Откуда: Кишинев, Starushka.net

Сообщение Igoras 03 сен 2005, 09:33

Написано ведь....

Код: Выделить всё
#---------------------------------------------------- 
#  configure bandwidth and weights (dynamic shaping)# 
#---------------------------------------------------- 

#upload 
ipfw pipe 1 config bw 860Kbit/s queue 86 gred 0.002/10/30/0.1 
ipfw queue 1 config mask src-ip 0xffffffff pipe 1 queue 5 gred 0.002/10/30/0.1 
ipfw queue 2 config mask dst-ip 0xffffffff pipe 1 queue 5 gred 0.002/10/30/0.1 

#--------------------------------------------------------------- 
#  assign each client its bandwidth priority (dynamic shaping) # 
#--------------------------------------------------------------- 

#upload 
ipfw add 100 queue 1 ip from 192.168.0.0/24 to any out via fxp0 

#download 
ipfw add 120 queue 2 ip from any to 192.168.0.0/24 in via fxp0 


Но только для этого канал должен быть гарантированный вроде, иначе ничего не выйдет... и в данном случае симметричный.... а вообще я бы сделал немного не так....

Код: Выделить всё
#---------------------------------------------------- 
#  configure bandwidth and weights (dynamic shaping)# 
#---------------------------------------------------- 

#upload 
ipfw pipe 1 config bw 860Kbit/s queue 86 gred 0.002/10/30/0.1 
ipfw queue 1 config mask src-ip 0xffffffff pipe 1 queue 5 gred 0.002/10/30/0.1 

#download
ipfw pipe 2 config bw 860Kbit/s queue 86 gred 0.002/10/30/0.1 
ipfw queue 2 config mask dst-ip 0xffffffff pipe 2 queue 5 gred 0.002/10/30/0.1 

#--------------------------------------------------------------- 
#  assign each client its bandwidth priority (dynamic shaping) # 
#--------------------------------------------------------------- 

#upload 
ipfw add 100 queue 1 ip from 192.168.0.0/24 to any out via fxp0 

#download 
ipfw add 120 queue 2 ip from any to 192.168.0.0/24 in via fxp0 


и еще нужно свою маскимальную скорость аплоада/даунлоада там вписать вместо 860 в примере... ну и внутреннюю подсеть поменять...

Аватара пользователя
Калян

 
Сообщения: 70
Зарегистрирован:
10 май 2004, 13:22

Сообщение Калян 04 окт 2005, 08:33

А может кто-нибудь такой же наглядный пример привести но только под линух. Буду очень признателен. :roll:

Аватара пользователя
SeazoN

 
Сообщения: 63
Зарегистрирован:
15 фев 2004, 17:51
Откуда: Dnestrovsk, Moldova

Сообщение SeazoN 04 окт 2005, 19:14

Калян писал(а):А может кто-нибудь такой же наглядный пример привести но только под линух. Буду очень признателен. :roll:


а это что под ZX Spectrum что ли было? по моему там всё просто идентично
Настанет Судный День...
SkyNet

Аватара пользователя
Калян

 
Сообщения: 70
Зарегистрирован:
10 май 2004, 13:22

Сообщение Калян 04 окт 2005, 22:11

во-первых на линухе Iptables насколько мне память не изменяет - было бы все так просто - я бы не спрашивал! :evil:

Аватара пользователя
Артем

 
Сообщения: 574
Зарегистрирован:
14 авг 2005, 22:34

Сообщение Артем 15 июл 2006, 12:54

А как быть с молдавскими сетями. Скорость будет делиться на пользователей из расчета 860Кбит/с, а по молдове у многих за 6Мбит/сек

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 15 июл 2006, 14:58

Igoras писал(а):Написано ведь....
и еще нужно свою маскимальную скорость аплоада/даунлоада там вписать вместо 860 в примере... ну и внутреннюю подсеть поменять...
Возвратно-поступательные движения неэффективны.

Аватара пользователя
Артем

 
Сообщения: 574
Зарегистрирован:
14 авг 2005, 22:34

Сообщение Артем 16 июл 2006, 11:13

Profi the same писал(а):
Igoras писал(а):Написано ведь....
и еще нужно свою маскимальную скорость аплоада/даунлоада там вписать вместо 860 в примере... ну и внутреннюю подсеть поменять...


Если я укажу вместо 860 свою скорость по молдавским ресурсам, то зарубежка, когда кто-то будет качать - будет в дауне. Т.к. сервер будет думать, что у меня еще есть скорость.

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 16 июл 2006, 14:21

о! это проблема. следует добавить правило контроля аплоада.

Добавлено спустя 1 минуту 28 секунд:

и даунлоада. забавное правило.
Возвратно-поступательные движения неэффективны.

Аватара пользователя
Артем

 
Сообщения: 574
Зарегистрирован:
14 авг 2005, 22:34

Сообщение Артем 16 июл 2006, 22:47

Profi the same,помоему, ты не понял о чем идет речь

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 17 июл 2006, 11:57

как я понял. проблема в физической пропускной способности канала.
Самое "горлышко" - аплоад (под 1-2 мбита). И дальше по тексту. Или нет?)
Возвратно-поступательные движения неэффективны.

Аватара пользователя
Артем

 
Сообщения: 574
Зарегистрирован:
14 авг 2005, 22:34

Сообщение Артем 17 июл 2006, 16:50

Проблема в следующем.
Будем считать, что канал на зарубежку у меня 860/860
Я буду использвать приведенный скрипт для раздачи пользователям интернета. Все, надеюсь, будет работать нормально, т.е. один пользователь качает со скоростью 840Кбит/сек, входит второй, теперь они оба будут качать по 430Кбит/сек и т.д. Это все хорошо, но помимо зарубежного канала у меня есть скорость по молдавским ресурсам 6Мбит/с / 1Мбит/с. Если я буду использовать данный скрипт, то пользователь, качающий с молдавских ресурсов, даже если он один в сети, получит не больше 860Кбит/с, причем если зайдут два пользователя и другой пользователь будет качать по миру, а тот же пользователь по молдове, то оба они получат скорость не больше 480Кбит/с, несмотря на то, что скорость по молдове у меня 6Мбит/с. Таким образом, оба канала будут простаивать. А учитывая, что с молдовы качают гораздо больше, то отсюда вывод...

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 17 июл 2006, 19:06

не правильно понял. в этом не разбираясь, удаляюсь)
Возвратно-поступательные движения неэффективны.


Вернуться в Настройка сети

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5