Фильтрация µTP (Micro Transport Protocol) во FreeBSD, используя ng_ipfw и ng_bpf

В связи с тем, что в новой версии популярного торрент клиента µTorrent была включена поддержка протокола µTP, значительно выросло количество транзитных пакетов на пограничных маршрутизаторах. Было принято решения заблокировать паразитный трафик.

#!/bin/sh
/usr/sbin/ngctl mkpeer ipfw: bpf 2 main

/usr/sbin/ngctl name ipfw:2 utp_filter
/usr/sbin/ngctl msg utp_filter: setprogram { thisHook=\"main\" ifMatch=\"\" ifNotMatch=\"main\" bpf_prog_len=12 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=8 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=6 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=4 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=64 jt=0 jf=0 k=20 } { code=21 jt=0 jf=1 k=2147483647 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] }

/sbin/ipfw add 2 netgraph 2 udp from any to any iplen 0-128

Описание протокола в Wikipedia
Оригинал записи на nag.ru

Как подружить natd и mpd5 в режиме клиента

При использовании mpd5 в качестве клиента часто сталкиваюсь с необходимостью завернуть весь трафик через ng интерфейс в нат. Делается это очень просто — с помощью up- и down-скриптов, которые вызываются, когда интерфейс создается и удаляется. Добавляем в mpd.conf строчки

set iface up-script /usr/local/etc/mpd5/iface-up.sh
set iface down-script /usr/local/etc/mpd5/iface-down.sh

И создаем соответствующие скрипты:

#!/bin/sh
route delete default
route add default $4
natd -n $1 -s -dynamic -P /var/run/natd-$1.pid
ipfw delete 10000
ipfw add 10000 divert natd all from any to any via $1
#!/bin/sh
route delete default
kill `cat "/var/run/natd-$1.pid"`
ipfw delete 10000

Please welcome HAST — Highly Avalable Storage

Тем временем Pawel Jakub Dawidek влил в HEAD код HAST (Highly Avalable STorage), геом класс, позволяющий организовывать зеркало из дисков, расположенных на разных серверах. Синхронизация такого хранилища будет осуществляться по TCP/IP. Функциональность обещает быть схожей с линуксовым DRDB.

Оригинальное сообщение в рассылке
Описание во FreeBSD WIKI

dbForge Studio for MySQL

Кстати, для проектирования баз данных я использую dbForge Studio for MySQL. Это полностью бесплатный программный пакет на русском языке, гибкий и мощный. Умеет ssh туннели с авторизацией по ключам, так что необходимость в phpmyadmin целиком и полностью отпадает.

mysql-master-master 1.x

Внедрил первую ветку mysql-master-master. Впечатления остались двойственные: сама задумка неплоха, но авторы откровенно забили на проект, многие issues открыты больше года и до сих пор не закрываются.

Так, например, при установке read_only агент не делает flush tables with read lock, что может серьезно поломать репликацию. Кроме того, авторы забили и на включение-выключение event scheduler в MySQL 5.1.

Ну и само собой, сие поделие от специалистов Percona не поддерживает FreeBSD, пришлось долго и упорно патчить.