Собственно сабж:
1)Имеется маленький анлим канал в 1мбит.
2)В сети 3 компа, 1 мой и 2 соседских.
3)Нужно порезать канал вот таким образом - если никто не качает моему компу все 1024, если появляется в сети один из компов соседа, то мне оставить 512, а другие 512 соседу. Если появляется и второй комп соседа, то поделить между ними их 512.
Разобрался более менее в ipfw. Прошу помощи(поиск юзал, ман и хендбук читал,но видимо не все понял).
Вот мой простой конфиг:
Код: Выделить всё
cat /etc/ipfw_new.conf
#IPFW rules for server
#
#
# сбрасываем все правила
flush
# сбрасываем все pipe
pipe flush
#создаем нат
nat 1 config if sis0 same_ports log
#лимиты скорости
pipe 1 config bw 256k queue 10
pipe 2 config bw 256k queue 10
pipe 3 config bw 256k queue 10
pipe 4 config bw 256k queue 10
pipe 5 config bw 512k queue 10
pipe 6 config bw 512k queue 10
pipe 7 config bw 1024k queue 10
pipe 8 config bw 1024k queue 10
#pipe 9 config bw 2048k queue 10
#pipe 10 config bw 2048k queue 10
#разрешаем все от нас
add 1 allow all from 172.16.1.200 to any out
add 2 allow all from any 50983 to me 50983 via sis0
#разрешаем весь траффик по внутреннему интерфейсу
add 10 allow all from any to any via lo0
#рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0
add 11 deny all from any to 127.0.0.0/8
add 12 deny all from 127.0.0.0/8 to any
# для sshit
add 15 deny ip from table(0) to any
# рубим пакеты `типа от внутренней сети, но на внешнем интерфейсе`
#add 20 deny ip from 172.16.0.0/24 to any in via sis0
# рубим пакеты `типа от внешней сети, но на внутреннем интерфейсе`
#add 21 deny ip from 172.16.1.0/24 to any in via vr0
# рубим автоконфигуреную частную сеть
add 30 deny ip from any to 169.254.0.0/16 in via sis0
# рубаем мультикастовые рассылки
add 40 deny ip from 224.0.0.0/4 to any out via sis0
add 41 deny ip from any to 240.0.0.0/4 in via sis0
# рубим фрагментированные icmp
add 50 deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
add 51 deny log icmp from any to 255.255.255.255 in via sis0
add 52 deny log icmp from any to 255.255.255.255 out via sis0
# разрешаем траффик внутренней сети на внутреннем интерфейсе
add 60 allow all from any to 172.16.0.0/24 in via vr0
add 61 allow all from 172.16.0.0/24 to any out via vr0
#используем нат
#add 70 nat 1 all from any to any out via sis0
add 70 nat 1 all from 172.16.0.0/24 to any out via sis0
add 71 nat 1 all from any to 172.16.1.200 in via sis0
#торренты demon
add 80 fwd 172.16.0.10,50983 all from any 50983 to me 50983 via sis0
#add 80 fwd 172.16.0.10,50983 udp from any 50983 to me 50983 via sis0
#режем скорость
add 111 pipe 1 all from 172.16.0.11 to any
add 112 pipe 2 all from any to 172.16.0.11
add 113 pipe 3 all from 172.16.0.12 to any
add 114 pipe 4 all from any to 172.16.0.12
add 115 pipe 7 all from 172.16.0.10 to any
add 116 pipe 8 all from any to 172.16.0.10
# Блокируем все остальные попытки соединения с занесением в логи
add 150 deny log all from any to any