Ежемесячные архивы: Февраль 2010

Блокировка UTp FreeBSD

kldload ng_ipfw
ngctl shutdown utp_filter:
ngctl mkpeer ipfw: bpf 2 main
ngctl name ipfw:2 utp_filter
ngctl msg utp_filter: setprogram { thisHook=\»main\» ifMatch=\»\» ifNotMatch=\»main\» bpf_prog_len=9 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=5 k=64 } { code=32 jt=0 jf=0 k=40 } { code=21 jt=0 jf=3 k=2147483647 } { code=48 jt=0 jf=0 k=44 } { code=21 jt=0 jf=1 k=171 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] }

ipfw add 100 netgraph 2 udp from any to any via em0 iplen 0-128

Статистика

ngctl msg utp_filter: getprogram \»main\»
ngctl msg utp_filter: getstats \»main\»
ipfw show

tcpdump -i em1 -n -c 100 -v ‘ip[40:4]=0x7FFFFFFF and ip[44:1]=0xAB and udp’

попробовать http://citrin.ru/freebsd:ng_ipfw_ng_bpf

чистим кеш в powerdns_recursor

rec_control wipe-cache powerdns.org

htb sfq

Конфигурация практически идентична вышеприведенному примеру:

# tc qdisc add dev eth0 root handle 1: htb default 30

# tc class add dev eth0 parent 1: classid 1:1 htb rate 6mbit burst 15k

# tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5mbit burst 15k
# tc class add dev eth0 parent 1:1 classid 1:20 htb rate 3mbit ceil 6mbit burst 15k
# tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 6mbit burst 15k

Автор рекомендует устанавливать дисциплину SFQ для этих классов:

# tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
# tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
# tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10

Добавим фильтры, которые будут выполнять классификацию трафика:

# U32="tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32"
# $U32 match ip dport 80 0xffff flowid 1:10
# $U32 match ip sport 25 0xffff flowid 1:20

В результате получаем ясную и понятную конфигурацию — никаких малопонятных чисел, никаких недокументированных параметров.

В HTB все выглядит достаточно прозрачно — классы 10: и 20: имеют гарантированную пропускную способность, при наличии свободной части пропускной способности они заимствуют ее в отношении 5:3.

Неклассифицированый трафик будет отнесен к классу 30:, который имет достаточно небольшую ширину, но может заимствовать незанятую часть канала.

64 порта
ending is 2^16=65536
mask is (2^16)-64=65472 -> convert to hex -> FFC0
32 порта
mask is (2^16)-32=65504 > convert to hex -> FFE0

маски портов

exim чистка очереди

exiqgrep -r ‘domain.ru$’ -i | xargs exim -C /etc/exim4/exim4-delayed.conf -Mrm

ddns and ping

есть 2 ip. если один из них недоступен надо обновить A запись в DNS

генерим ключи для nsupdate

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER NSUPDATE

получаем 2 файлика

Knsupdate.+157+13990.key  Knsupdate.+157+13990.private

на основе Knsupdate.+157+13990.private делаем запись в named.conf

key NSUPDATE {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret SCtSlSUwGYN3SdbUQgHJdQ==;
};
 
zone "dyn.net" {
 type master;
 allow-update { key "NSUPDATE"; };
 file "master/dyn.net";
};

а Knsupdate.+157+13990.key используем в скрипте

#!/bin/sh
 
curr=$(dig +short server.dyn.net @192.168.133.30)
#echo $curr
#exit
dt=`/bin/date +'%Y-%m-%d %H:%M:%S'`
prime=$(dig +short server1.stat.net @192.168.133.30)
second=$(dig +short server2.stat.net @192.168.133.30)
 
res=$(ping -c 2 $prime)
 
if [[ $? -ne 0 ]]
then
 if [ "$curr" = "$prime" ]
 then
 echo "$dt  ERROR! $prime not responding change to $second" >> /var/log/dynsip.log
 echo "server 192.168.133.30" > /var/tmp/nsupdate
 echo "zone dyn.net" >> /var/tmp/nsupdate
 echo "update delete server.dyn.net IN A" >> /var/tmp/nsupdate
 echo "update add server.dyn.net     60      IN      A   $second" >> /var/tmp/nsupdate
 echo "send" >> /var/tmp/nsupdate
 /usr/bin/nsupdate -k /home/manov/Knsupdate.+157+13990.key  /var/tmp/nsupdate
 fi
else
 if [ "$curr" != "$prime" ]
 then
 echo "$dt OK! $prime is alive" >> /var/log/dynsip.log
 echo "server 192.168.133.30" > /var/tmp/nsupdate
 echo "zone dyn.net" >> /var/tmp/nsupdate
 echo "update delete server.dyn.net IN A" >> /var/tmp/nsupdate
 echo "update add server.dyn.net     60      IN      A   $prime" >> /var/tmp/nsupdate
 echo "send" >> /var/tmp/nsupdate
 /usr/bin/nsupdate -k /home/manov/Knsupdate.+157+13990.key  /var/tmp/nsupdate
 fi
fi