Страница 1 из 1
IPFW + DUMMYNET + пользователи
Добавлено: 2009-11-30 9:50:41
Raven_kg
Есть локалка ~10 компов и шлюз на FreeBSD 8
В общем на мои плечи легла задача поднять на ней шлюз, с возможностью разграничения пользователей - трем можно ходить всюду, но нужно ограничить им скорость до 28кб, остальным же присваиваются ограничения по подсетям (например 85.115.192.0/19 для одних, 194.152.37.0/24 для других). Как такое реализовать? Желательно на примерах.
Re: IPFW + DUMMYNET + пользователи
Добавлено: 2009-11-30 9:53:20
hizel
примеры в поиске по форуму
Re: IPFW + DUMMYNET + пользователи
Добавлено: 2009-11-30 10:35:38
Raven_kg
Re: IPFW + DUMMYNET + пользователи
Добавлено: 2009-11-30 13:09:44
hizel
Re: IPFW + DUMMYNET + пользователи
Добавлено: 2009-11-30 20:10:11
reLax
Что-то типа.
Код: Выделить всё
#!/bin/sh
fwcmd="/sbin/ipfw"
iif="msk0"
priv_dummynet="250 234 23 33"
norm_dummynet="43 233 30 96"
i=0
${fwcmd} -f pipe flush
${fwcmd} -f queue flush
#---BEGIN DUMMYNET---#
${fwcmd} table 3 flush
while [ $i -le 255 ];
do
${fwcmd} table 3 add 172.17.2.${i}
i=`expr $i + 1`
done
${fwcmd} table 1 flush
for line in ${priv_dummynet}
do
${fwcmd} table 1 add 172.17.2.${line}
${fwcmd} table 3 delete 172.17.2.${line}
done
${fwcmd} table 2 flush
for line in ${norm_dummynet}
do
${fwcmd} table 2 add 172.17.2.${line}
${fwcmd} table 3 delete 172.17.2.${line}
done
#---PRIVELEGED---#
${fwcmd} pipe 1 config mask src-ip 0xffffffff bw 1024Kbit/s
${fwcmd} queue 11 config pipe 1 weight 80 queue 20 mask dst-ip 0xffffffff
${fwcmd} queue 12 config pipe 1 weight 80 queue 20 mask src-ip 0xffffffff
${fwcmd} add queue 11 ip from table\(1\) to any in via ${iif}
${fwcmd} add queue 12 ip from any to table\(1\) out via ${iif}
#---NORMAL---#
${fwcmd} pipe 2 config mask src-ip 0xffffffff bw 368Kbit/s
${fwcmd} pipe 3 config mask src-ip 0xffffffff bw 128Kbit/s
${fwcmd} queue 21 config pipe 3 weight 50 queue 20 mask dst-ip 0xffffffff
${fwcmd} queue 22 config pipe 2 weight 50 queue 20 mask src-ip 0xffffffff
${fwcmd} add queue 21 ip from table\(2\) to any in via ${iif}
${fwcmd} add queue 22 ip from any to table\(2\) out via ${iif}
#---OTHERS---#
${fwcmd} pipe 4 config mask src-ip 0xffffffff bw 256Kbit/s
${fwcmd} pipe 5 config mask src-ip 0xffffffff bw 64Kbit/s
${fwcmd} queue 31 config pipe 4 weight 30 queue 20 mask dst-ip 0xffffffff
${fwcmd} queue 32 config pipe 4 weight 20 queue 20 mask src-ip 0xffffffff
${fwcmd} queue 41 config pipe 5 weight 25 queue 20 mask dst-ip 0xffffffff
${fwcmd} queue 42 config pipe 5 weight 25 queue 20 mask src-ip 0xffffffff
${fwcmd} add queue 31 ip from table\(3\) to any not dst-port 143,5190 in via ${iif}
${fwcmd} add queue 32 ip from any not 143,5190 to table\(3\) out via ${iif}
${fwcmd} add queue 41 ip from table\(3\) to any dst-port 143,5190 in via ${iif}
${fwcmd} add queue 42 ip from any 143,5190 to table\(3\) out via ${iif}