Распределение загрузки канала связи – обязательное решения грамотного системного администрирования.
Для управления ограничением канала связи нам необходимо подключить две опции в ядре FreeBSD: DUMMYNET и FIREWALL. Делаем:
cd /usr/src/sys/i386/conf
cp GENERIC HEART (создаем свою сборку ядра, если её не было)
cp GENERIC HEART (создаем свою сборку ядра, если её не было)
вставляем опции в наше ядро (делаем это обычной правкой с помощью ткстового редактора)
options DUMMYNET
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
config HEART
cd ../compile/HEART
make cleandepend
make depend
make
make install
cd ../compile/HEART
make cleandepend
make depend
make
make install
Далее перезагружаемся:
reload
Настраиваем правила фаервол.
Добавляем в /etc/rc.conf
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_script="/etc/rc.firewall"
парвим файл /etc/rc.firewall
#!/bin/sh
oif=fxp0 # имя внешнего интерфейса
bw=100Kbit/s # его ширина
ipfw pipe 1 config bw $bw # исходящая труба
ipfw pipe 2 config bw $bw # входящая труба
ipfw queue 1 config pipe 1 mask src-ip 0xffffffff # per-ip fair queueing
ipfw queue 2 config pipe 2 mask dst-ip 0xffffffff
ipfw add 1000 queue 1 ip from any to any via $oif out
ipfw add 1010 queue 2 ip from any to any via $oif in
oif=fxp0 # имя внешнего интерфейса
bw=100Kbit/s # его ширина
ipfw pipe 1 config bw $bw # исходящая труба
ipfw pipe 2 config bw $bw # входящая труба
ipfw queue 1 config pipe 1 mask src-ip 0xffffffff # per-ip fair queueing
ipfw queue 2 config pipe 2 mask dst-ip 0xffffffff
ipfw add 1000 queue 1 ip from any to any via $oif out
ipfw add 1010 queue 2 ip from any to any via $oif in
Один вопрос, это на Ubuntu работает? Если там по другому ставятся ограничения канала, то может подскажите где поискать?