options IPFIREWALL options IPFIREWALL_DEFAULT_TO_ACCEPT options DUMMYNET
Таблицы сетей. Данные о сетях
| table 1 | Всегда глобальная таблица. Значение по умолчанию 0.0.0.0/0 |
|---|---|
| table 2 | Таблица с пиринговыми сетями |
В таблицу пиринговых сетей данные заносятся следующим образом
ipfw table add ip_адрес_пиринговой_сети клас_к_которому_относиться_пиринговая_сеть
Таблицы клиентов. В них сохраняются данные по клиентам.
| table 10 | Таблица клиентов для входящего трафика |
|---|---|
| table 11 | Таблица клиентов для исходящего трафика |
| table 12 | Таблица клиентов для входящего пирингового трафика |
| table 13 | Таблица клиентов для исходящего пирингового трафика |
В таблицы заносятся следующие данные
ipfw table 10 add ip_адрес_клиента тарифный_план_клиента ipfw table 11 add ip_адрес_клиента тарифный_план_клиента
При подключении абонента система автоматически заноси IP адресами в таблицы пользователей и сетей
Правила шейпера проверяются и формируются командой
# /usr/abills/libexec/billd checkspeed NAS_ID=...
Для поднятий правил шейпирования при старте системы используется программа
# cp /usr/abills/misc/ipfw/shaper_start.sh shaper_start.sh
/etc/rc.conf
abills_shaper_enable="YES" abills_nas_id="1" abills_shaper_if="" # По умолчанию ng
08000 0 0 pipe tablearg ip from table(14) to table(2,2) out xmit ng* 08010 0 0 pipe tablearg ip from table(2,2) to table(15) in recv ng* 09000 0 0 pipe tablearg ip from table(12) to table(2,1) out xmit ng* 09010 0 0 pipe tablearg ip from table(2,1) to table(13) in recv ng* 10000 0 0 pipe tablearg ip from table(10) to any out xmit ng* 10010 0 0 pipe tablearg ip from any to table(11) in recv ng* 10020 0 0 allow ip from table(9) to any out xmit ng* 10025 0 0 allow ip from any to table(9) in recv ng*
При установке скорости в аккаунте пользователя если она еще не указывалась другим пользователям нужно переинициализировать шейпер
Дополнительные параметры:
| NAS_IDS | Номера серверов доступа |
|---|---|
| FW_DIRECTION_OUT | Параметры направления. по умолчанию out xmit _out_interface_ |
| FW_DIRECTION_IN | Параметр направления трафика. по умолчанию in recv _out_interface_ |
По умолчанию _out_interface_ считается интерфейс шлюза по умолчанию.
для mpd пример направлений
/usr/abills/libexec/billd checkspeed NAS_IDS=1 RECONFIGURE=1 FW_DIRECTION_OUT=out FW_DIRECTION_IN=in; ipfw /etc/fw.conf
# /usr/local/etc/rc.d/shaper_start.sh restart
/etc/sysctl.conf
net.inet.ip.fastforwarding=1 net.inet.ip.portrange.randomized=0 net.inet.tcp.nolocaltimewait=1 kern.ipc.nmbclusters=65536 kern.ipc.maxsockets=204800 net.inet.ip.dummynet.expire=0 net.inet.ip.dummynet.hash_size=2048 net.inet.ip.fw.dyn_buckets=2048 net.inet.tcp.maxtcptw=40960 kern.ipc.maxsockbuf=8388608 net.graph.recvspace=256000 # TCP bufer size kern.ipc.maxsockbuf=8388608 net.inet.tcp.recvspace=65535 # incoming TCP queue size kern.ipc.somaxconn=4096 # incoming packets queue size net.inet.ip.intr_queue_maxlen=2000 net.inet.flowtable.enable=0