Комментарии 26
Я конечно понимаю что всем хочется инвайт… Добавьте, пожалуйста, ссылку на домашнюю страницу DUMMYNET. Там есть много хорошей инфы, которая описывает устройство DUMMYNET.
0
И к стати, стоит упомянуть что DUMMYNET портирован на другие ОС. Под windows не юзал, а под linux работает точно.
0
Для интересующихся. Хорошее описание DUMMYNET + исходники:
info.iet.unipi.it/~luigi/dummynet/
info.iet.unipi.it/~luigi/dummynet/
0
Не его ли использует wipfw под Windows?.. Пользовался ей когда-то, удобный и надежный фаервол :-)…
0
Под windows использовать dummynet считаю полным извращением. Добавил русский отличный мануал последней ссылкой, который мне действительно помог
0
Теперь скрипт… стоп… даже не скрипт, а последовательность комманд в планировщике, тянет на отдельную статью? o_O
0
> cp /home/admin/firewall/firewall.conf-01-09 /etc/firewall.conf
Почему бы не использвать символические ссылки?
Почему бы не использвать символические ссылки?
0
можно и симлинки, но от этого суть и работа метода не меняется
0
ifconfig rl0 down
ifconfig rl1 down
ifconfig rl0 up
ifconfig rl1 up
вот это зачем?
ifconfig rl1 down
ifconfig rl0 up
ifconfig rl1 up
вот это зачем?
0
первый способ откровенно ужасен и похож на костыли для фаервола
я делал так, как у вас описано во втором способе, только непонятно зачем up/down интерфейсов? пайпы позволяют менять скорость налету без каких-либо манипуляций с сетевыми интерфейсами (на 8.1 не проверял, но на 8.2 это работает, и работает хорошо)
я делал так, как у вас описано во втором способе, только непонятно зачем up/down интерфейсов? пайпы позволяют менять скорость налету без каких-либо манипуляций с сетевыми интерфейсами (на 8.1 не проверял, но на 8.2 это работает, и работает хорошо)
+1
Ну да — многое странновато. Но у меня уже около полугода успешно работает схема, похожая на первый вариант. Только ничего никуда не копируется, а сразу исполняются дневной и ночной скрипты.
Скрипты выглядят так:
7lan# crontab -l
59 23 * * * sh /etc/rc.firewall.night
59 6 * * * sh /etc/rc.firewall.day
Скрипты выглядят так:
ipfw='/sbin/ipfw -q'
init () {
#shape number one
${ipfw} pipe 100 config bw 1200kbit/s queue 512Kbytes
${ipfw} pipe 101 config bw 15000kbit/s queue 512Kbytes
...
${ipfw} table 1 flush
${ipfw} table 2 flush
#user number one
${ipfw} table 1 add 192.168.1.2 100
${ipfw} table 2 add 192.168.1.2 101
...
}
#ещё всякие нужные правила типа:
icmp () {
${ipfw} add deny icmp from any to any frag
${ipfw} add pass icmp from any to any
}
#а в конце
${ipfw} flush;
ssh;
icmp;
init;
localhost;
snmp;
vpn;
vr0;
tun0;
rl0;
0
${ipfw} flush;
ssh;
icmp;
init;
localhost;
snmp;
vpn;
vr0;
tun0;
rl0;
вот это по сути частично выполняется в /etc/netstart или откуда оно и что произойдет?
ssh;
icmp;
init;
localhost;
snmp;
vpn;
vr0;
tun0;
rl0;
вот это по сути частично выполняется в /etc/netstart или откуда оно и что произойдет?
0
у вас есть команда
${ipfw} flush;
которая очищает правила фаервола, что означает что потенциально возможна ситуация, когда часть TCP трафика повиснет на время таймаута TCP, а UDP так совсем не дойдет — их попросту фаервол отбросит, потому что динамическое правило для обратного трафика исчезнет после flush0
пора взрослеть, кмк.
надо делать так:
в конфиге ipfw:
pipe 100 config mask dst-ip 0xffffffff bw 3Mbits queue 100 gred 0.002/10/50/0.1
pipe 101 config mask src-ip 0xffffffff bw 3Mbits queue 100 gred 0.002/10/50/0.1
pipe 102 config mask dst-ip 0xffffffff bw 5Mbits queue 100 gred 0.002/10/50/0.1
pipe 103 config mask src-ip 0xffffffff bw 5Mbits queue 100 gred 0.002/10/50/0.1
01200 pipe tablearg ip from any to any dst-ip «table(10)»
01300 pipe tablearg ip from any to any src-ip «table(11)»
а в крон пейхать скрипт который будет в указанных таблицах правиль таблеарг для ойпишника (ipfw table 10 add $ip 102 && ipfw table 11 add $ip 103) и ок. :) и да, эти все няшки можно легко прикрутить к скриптам от радиуса, например, которым будет тыкать быдлинг Ж) а можно к какие собственный штуки написать.
а все эти up|down интерфейса, дерганье пайпов и прочего — суета и прыщавое задротство. есть жеж спицально созданные для этого вещи Ж)
надо делать так:
в конфиге ipfw:
pipe 100 config mask dst-ip 0xffffffff bw 3Mbits queue 100 gred 0.002/10/50/0.1
pipe 101 config mask src-ip 0xffffffff bw 3Mbits queue 100 gred 0.002/10/50/0.1
pipe 102 config mask dst-ip 0xffffffff bw 5Mbits queue 100 gred 0.002/10/50/0.1
pipe 103 config mask src-ip 0xffffffff bw 5Mbits queue 100 gred 0.002/10/50/0.1
01200 pipe tablearg ip from any to any dst-ip «table(10)»
01300 pipe tablearg ip from any to any src-ip «table(11)»
а в крон пейхать скрипт который будет в указанных таблицах правиль таблеарг для ойпишника (ipfw table 10 add $ip 102 && ipfw table 11 add $ip 103) и ок. :) и да, эти все няшки можно легко прикрутить к скриптам от радиуса, например, которым будет тыкать быдлинг Ж) а можно к какие собственный штуки написать.
а все эти up|down интерфейса, дерганье пайпов и прочего — суета и прыщавое задротство. есть жеж спицально созданные для этого вещи Ж)
+2
> О том, как скомпилировать ядро рассказывать детально я не буду
и да, вы из какого века? давно не надо собирать ядро. достаточно подгрузить нужные модули и все ок :)
% uname -rsmi
FreeBSD 8.2-RELEASE amd64 GENERIC
% kldstat | awk '{print $5}'
Name
kernel
ng_bridge.ko
netgraph.ko
ng_ether.ko
ng_ksocket.ko
ng_netflow.ko
ng_tee.ko
ng_ipfw.ko
ipfw.ko
libalias.ko
if_lagg.ko
dummynet.ko
ng_socket.ko
ng_nat.ko
и да, вы из какого века? давно не надо собирать ядро. достаточно подгрузить нужные модули и все ок :)
% uname -rsmi
FreeBSD 8.2-RELEASE amd64 GENERIC
% kldstat | awk '{print $5}'
Name
kernel
ng_bridge.ko
netgraph.ko
ng_ether.ko
ng_ksocket.ko
ng_netflow.ko
ng_tee.ko
ng_ipfw.ko
ipfw.ko
libalias.ko
if_lagg.ko
dummynet.ko
ng_socket.ko
ng_nat.ko
+1
Надеюсь, вы помните, что подгрузка ipfw.ko сформирует дефолтное правило 65535 deny all from any to any?
0
надеюсь вы достаточно разумны пользоваться системными скриптами. ну или хотя бы sysctl net.inet.ip.fw.default_to_accept=1 после того как подгрузили модуль. думаю не стоит рассказывать как это сделать удаленно без потери связи?
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ограничение полосы пропускания по времени суток с помощью ipfw