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

26 Февраль 2010

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]=0×7FFFFFFF and ip[44:1]=0xAB and udp’

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

vovan Работа , ,

чистим кеш в powerdns_recursor

17 Февраль 2010

rec_control wipe-cache powerdns.org

vovan Работа

htb sfq

16 Февраль 2010

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

# 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

маски портов

vovan Работа ,

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

10 Февраль 2010

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

vovan Работа ,

ddns and ping

2 Февраль 2010

есть 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

vovan Работа ,

полезные комманды *NIX

29 Январь 2010

поиск в файлах c именем ‘28-01-2010*gz’ строки 21:21
find /var/log/ -name "28-01-2010.log*" -exec zgrep -e 21:21 {} \;|more

vovan Работа , ,

Writing FreeBSD memstick.img to a USB drive in Windows

28 Январь 2010

Потребуется dd for windows

и например 8.0-RELEASE-i386-memstick.img

C:\>dd --list
rawwrite dd for windows version 0.5.
Written by John Newbigin 
This program is covered by the GPL.  See copying.txt for details
Win32 Available Volume Information
\\.\Volume{585d8fd2-9ba8-11de-b573-806d6172696f}\
  link to \\?\Device\HarddiskVolume1
  fixed media
  Mounted on \\.\c:

\\.\Volume{5839172e-a1d4-11de-b580-0018f30bfe6d}\
  link to \\?\Device\HarddiskVolume4
  fixed media
  Mounted on \\.\d:

\\.\Volume{efe0fa36-c9e7-11de-b587-005056c00008}\
  link to \\?\Device\Harddisk1\DP(1)0-0+1c
  removeable media
  Mounted on \\.\f:

NT Block Device Objects
\\?\Device\Harddisk0\Partition0
  link to \\?\Device\Harddisk0\DR0
  Fixed hard disk media. Block size = 512
  size is 160041885696 bytes
\\?\Device\Harddisk0\Partition1
  link to \\?\Device\HarddiskVolume1
\\?\Device\Harddisk0\Partition2
  link to \\?\Device\HarddiskVolume2
  Fixed hard disk media. Block size = 512
  size is 1587479040 bytes
\\?\Device\Harddisk0\Partition3
  link to \\?\Device\HarddiskVolume3
  Fixed hard disk media. Block size = 512
  size is 85049395200 bytes
\\?\Device\Harddisk0\Partition4
  link to \\?\Device\HarddiskVolume4
\\?\Device\Harddisk1\Partition0
  link to \\?\Device\Harddisk1\DR27
  Removable media other than floppy. Block size = 512
  size is 2004353024 bytes
\\?\Device\Harddisk1\Partition1
  link to \\?\Device\Harddisk1\DP(1)0-0+1c
  Removable media other than floppy. Block size = 512
  size is 2004320768 bytes

Virtual input devices
 /dev/zero   (null data)
 /dev/random (pseudo-random data)
 -           (standard input)

Virtual output devices
 -           (standard output)

\\?\Device\Harddisk1\Partition0 – наша флешака

копируем образ

C:\>C:\>dd if=8.0-RELEASE-i386-memstick.img of=\\?\Device\Harddisk1\Partition0 bs=10240 --progress
rawwrite dd for windows version 0.5.
Written by John Newbigin 
This program is covered by the GPL.  See copying.txt for details
923,207,680
90157+0 records in
90157+0 records out

Готово =)

vovan Работа ,

Порядок обработки пакетов ядром FreeBSD

27 Январь 2010

pf, ipfw и ipfilter вкомпилены в ядро

ipfw -> pf -> ipfilter -> stack	 - для входящего
stack -> ipfilter -> pf -> ipfw  - для исходящего

pf загружен как модуль ядра

pf -> ipfw -> ipfilter -> stack - для входящего
stack -> ipfilter -> ipfw -> pf - для исходящего

(с) http://paix.org.ua/freebsd/fwpackets.html

vovan Работа ,

CentOS MS Fonts

25 Декабрь 2009

FreeBSD gstripe md

20 Декабрь 2009

создаем 3 файла по 10Г на разных дисках

vsc# dd if=/dev/zero of=/mnt/ar2/10g bs=1g count=10
10+0 records in
10+0 records out
10737418240 bytes transferred in 166.144035 secs (64627167 bytes/sec)
vsc# dd if=/dev/zero of=/mnt/ar3/10g bs=1g count=10
10+0 records in
10+0 records out
10737418240 bytes transferred in 167.428852 secs (64131230 bytes/sec)
vsc# dd if=/dev/zero of=/mnt/ar1/10g bs=1g count=10
10+0 records in
10+0 records out
10737418240 bytes transferred in 181.370582 secs (59201543 bytes/sec)

Создание нового диска в файле

vsc# mdconfig -a -t vnode -f /mnt/ar1/10g -u 1
vsc# mdconfig -a -t vnode -f /mnt/ar2/10g -u 2
vsc# mdconfig -a -t vnode -f /mnt/ar3/10g -u 3
vsc# ls -la /dev |grep md
crw-r-----   1 root   operator    0, 157 29 ноя 23:28 md1
crw-r-----   1 root   operator    0, 158 29 ноя 23:28 md2
crw-r-----   1 root   operator    0, 165 29 ноя 23:28 md3
crw-------   1 root   wheel       0,  83 29 ноя 23:28 mdctl

Создаем RAID0 из 3х дисков с размером блока 128к

vsc# gstripe create -v -s 131072 arrays /dev/md1 /dev/md2 /dev/md3
Done.
vsc# gstripe list
Geom name: arrays
State: UP
Status: Total=3, Online=3
Type: MANUAL
Stripesize: 131072
ID: 2521786165
Providers:
1. Name: stripe/arrays
 Mediasize: 32212254720 (30G)
 Sectorsize: 512
 Mode: r0w0e0
Consumers:
1. Name: md1
 Mediasize: 10737418240 (10G)
 Sectorsize: 512
 Mode: r0w0e0
 Number: 0
2. Name: md2
 Mediasize: 10737418240 (10G)
 Sectorsize: 512
 Mode: r0w0e0
 Number: 1
3. Name: md3
 Mediasize: 10737418240 (10G)
 Sectorsize: 512
 Mode: r0w0e0
 Number: 2

Форматим

vsc# newfs /dev/stripe/arrays
/dev/stripe/arrays: 30720.0MB (62914560 sectors) block size 16384, fragment size 2048
 using 168 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208, 3386464, 3762720, 4138976, 4515232, 4891488, 5267744, 5644000, 6020256, 6396512,
 6772768, 7149024, 7525280, 7901536, 8277792, 8654048, 9030304, 9406560, 9782816, 10159072, 10535328, 10911584, 11287840, 11664096, 12040352, 12416608,
 12792864, 13169120, 13545376, 13921632, 14297888, 14674144, 15050400, 15426656, 15802912, 16179168, 16555424, 16931680, 17307936, 17684192, 18060448,
 18436704, 18812960, 19189216, 19565472, 19941728, 20317984, 20694240, 21070496, 21446752, 21823008, 22199264, 22575520, 22951776, 23328032, 23704288,
 24080544, 24456800, 24833056, 25209312, 25585568, 25961824, 26338080, 26714336, 27090592, 27466848, 27843104, 28219360, 28595616, 28971872, 29348128,
 29724384, 30100640, 30476896, 30853152, 31229408, 31605664, 31981920, 32358176, 32734432, 33110688, 33486944, 33863200, 34239456, 34615712, 34991968,
 35368224, 35744480, 36120736, 36496992, 36873248, 37249504, 37625760, 38002016, 38378272, 38754528, 39130784, 39507040, 39883296, 40259552, 40635808,
 41012064, 41388320, 41764576, 42140832, 42517088, 42893344, 43269600, 43645856, 44022112, 44398368, 44774624, 45150880, 45527136, 45903392, 46279648,
 46655904, 47032160, 47408416, 47784672, 48160928, 48537184, 48913440, 49289696, 49665952, 50042208, 50418464, 50794720, 51170976, 51547232, 51923488,
 52299744, 52676000, 53052256, 53428512, 53804768, 54181024, 54557280, 54933536, 55309792, 55686048, 56062304, 56438560, 56814816, 57191072, 57567328,
 57943584, 58319840, 58696096, 59072352, 59448608, 59824864, 60201120, 60577376, 60953632, 61329888, 61706144, 62082400, 62458656, 62834912

монтируем

vsc# mkdir /mnt/arrays
vsc# mount /dev/stripe/arrays /mnt/arrays/
vsc# df -h
Filesystem             Size    Used   Avail Capacity  Mounted on
/dev/stripe/arrays      29G    4.0K     27G     0%    /mnt/arrays

Скорость линейной записи на диск

vsc# dd if=/dev/zero of=/mnt/arrays/10g bs=1g count=10
10+0 records in
10+0 records out
10737418240 bytes transferred in 143.736474 secs (74702112 bytes/sec)

не ахти как шустро =(

(c)
http://www.freebsd.org/doc/ru/books/handbook/disks-virtual.html
http://www.freebsd.org/doc/ru/books/handbook/geom.html

vovan Работа , ,