FreeBSD 8.1システムが使用されますが、速度を変更するためのこのオプションは、 ipfwとcronがある他のすべてのバージョンで利用できます。つまり、FreeBSDのほぼすべてのブランチとリリースで使用できます。
カーネルのコンパイル方法については詳しく説明しません。ファイアウォールとDUMMYNETシェーパーの使用を有効にする次の手順を含める必要があるとのみ言います。
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options DUMMYNET
options HZ=1000
時間の経過とともに速度を変更する方法はたくさんありますが、私が使用するのは2つだけです。 それらは理想的ではありませんが、10〜20人のローカルネットワークでは、白い外部IPアドレスがなく、総チャネル帯域幅が20 Mbpsで十分です。
だから最初の方法
ここでは、cronを使用して作業設定を置き換える方法が使用されます。
したがって、異なる期間の2つのファイルがあるとします。
firewall.conf-01-09-01 :00から09:00までのファイアウォール
firewall.conf-09-01-09 :00から01:00までのファイアウォール
01:00から09:00まではユーザーに高速を提供し、それ以外の時間は09:00から01:00まで料金を申告します。
これらの2つのファイルは、たとえば/ home / admin / firewallに配置します。
次に、念のためshスクリプトを作成します。これは、ipfwが機能し、/ etc / netstartを実行するすべてのインターフェースを下げたり上げたりします(これはできませんが、ファイアウォールスクリプトをすぐに実行できますが、個人的には単純な/ etc / netstartによって決定された、使用可能なバッファスペースがないなど、あらゆる種類の異常なエラーが発生しました。 スクリプトでは次のようになります。
#!/bin/sh
cp /home/admin/firewall/firewall.conf-01-09 /etc/firewall.conf
sh /etc/firewall.conf
ifconfig rl0 down
ifconfig rl1 down
ifconfig rl0 up
ifconfig rl1 up
/etc/netstart
このスクリプトをfiresh-01-09.shという名前で保存し、09:00から01:00までの昼間の同様のスクリプトを作成し、最後にcron(/ etc / crontab)を開きます。実行:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#minute hour mday month wday who command
# Firewalls
0 1 * * * root sh /home/admin/firewall/firesh-01-09.sh
0 9 * * * root sh /home/admin/firewall/firesh-09-01.sh
これで01:00と09:00にルールが/etc/firewall.confにコピーされ、新しいインターフェースが再読み込みされ、インターフェースが再生成されます。
第二の方法
この方法は確かにはるかに単純です
2番目の方法は、特定のパイプが速度に設定された単純なshスクリプトで構成され、時間内に再読み取りすると、次のようになります。
# Day firewall, 09:00 - 01:00
# Admins
ipfw pipe 230 config bw 0Mbit/s
ipfw pipe 130 config bw 0Mbit/s
# Users
ipfw pipe 107 config bw 5Mbit/s
ipfw add pipe 1107 ip from 192.168.0.107 to any out
ipfw pipe 1107 config bw 5Mbit/s
# VPN Users
ipfw pipe 246 config bw 1Mbit/s
ipfw pipe 128 config bw 5Mbit/s
ipfw add pipe 1128 ip from 192.168.0.128 to any out
ipfw pipe 1128 config bw 5Mbit/s
ipfw pipe 102 config bw 0Mbit/s
# Test users
ipfw pipe 35 config bw 0Mbit/s
ipfw pipe 36 config bw 0Mbit/s
ipfw pipe 37 config bw 0Mbit/s
ipfw pipe 38 config bw 0Mbit/s
ifconfig rl0 down
ifconfig rl1 down
ifconfig rl0 up
ifconfig rl1 up
実際には、cronからtime configを開始する手順は最初の方法のままで、ここでは/ etc / netstartコマンドのみが許可されていません。これは、すでにメモリにロードされているfirewall.conf configファイルを操作するためです。 /etc/firewall.confの設定。標準ルールを説明しています。
ダミーネット情報
カーネルをコンパイルするためのマニュアル
IPFW
詳細なDUMMYNETマニュアル