Системное администрирование → BIND: храним зоны в mysql (Dynamically Loadable Zones — BIND DLZ)
Возможность Berkeley Internet Name Daemon (BIND) хранить зоны DNS в базе mysql не шибко известна и крайне плохо документирована. Документация заморожена на моменте включения отдельного патча DLZ в основную ветку BIND, а это BIND 9.4.* и 2005-2006 годы. Я постараюсь хотя бы частично восполнить этот пробел, выложив под хабракатом рабочие на данный момент инструкции с примерами. Мое описание совершенно не претендует на полноту, но простейшую зону прописать позволит.Отдельно хочу заметить, что DLZ поддерживает не только mysql, список поддерживаемых хранилищ также под хабракатом.
Системное администрирование → Подключение сети к глобальному IPv6 пространству
Некоторое время назад в комментариях к статье «IPv6 шлюз для локальной сети» меня попросили рассказать о том, как я активировал IPv6 в одном из своих проектов. Начну с пары слов о самом проекте. CareNet — это результат кооперации двух крупных Шведских университетов: KTH Royal Institute of Technology и Karolinska Institutet. Вкратце, CareNet — это система, позволяющая наблюдать паллиативных пациентов вне больницы. У пациента дома устанавливается небольшое устройство, которое имеет доступ в Интернет и подключено посредством VPN к серверам CareNet. Устройство включает в себя HDVC-клиент, набор сенсоров для контроля состояния пациента и средства доступа к медицинскому порталу, содержащему всю информацию о пациенте. Медицинская информация доступна как самому пациенту, так и доктору.
Блог компании Центр интернет-имен Украины → Опыт перехода на DNS-сервер NSD
В далеком 2007 году, когда Ukrnames был еще маленьким и делал первые шаги, большую часть работы выполняли программисты. Они и разрабатывали систему управления доменами, и тестировали ее, и администрировали сервера, где все это добро работало.
А там где домены, там DNS. А какой самый простой способ сделать DNS-сервер? Поставить вездесущий BIND. Да BIND непростой, а с DLZ патчем, чтобы с MySQL дружил.
Шли годы, система работала, мощности серверов росли. А как водится, пока работает – не трогай. Так бы это все и продолжалось, если бы нагрузка не начала упираться в очередной 8-ми ядерный сервер.
В этот момент пришлось принять волевое решение и построить новую систему DNS-серверов, вместо того чтобы в очередной раз апгрейдить железо для ненасытного BIND+DLZ.
И тут закончилась сказка, и начались суровые будни администратора.
А там где домены, там DNS. А какой самый простой способ сделать DNS-сервер? Поставить вездесущий BIND. Да BIND непростой, а с DLZ патчем, чтобы с MySQL дружил.
Шли годы, система работала, мощности серверов росли. А как водится, пока работает – не трогай. Так бы это все и продолжалось, если бы нагрузка не начала упираться в очередной 8-ми ядерный сервер.
В этот момент пришлось принять волевое решение и построить новую систему DNS-серверов, вместо того чтобы в очередной раз апгрейдить железо для ненасытного BIND+DLZ.
И тут закончилась сказка, и начались суровые будни администратора.
Серверное администрирование → Система автоматической генерации настроек DNS-сервера Bind из песочницы
По службе приходится часто и много создавать зоны ДНС, добавлять или изменять в них записи. Вручную это довольно кропотливый и сложный процесс: ведь надо держать в голове синтаксис и не ошибаться в мелочах. Для таких вещей самое оно заставить работу выполнять компьютер.
IAdmin — это система создана для автоматической генерации конфигов Bind на хостинговом сервере и представляет собой базу iadmin в БД MySQL и скрипт, который на основании данных из базы генерирует конфигурационные файлы. Для настройки Bind используются таблицы dns_domains, dns_records, dns_subgmail. Основной скрипт, написанный на перле читает данные из БД iadmin и создаёт файлы конфигурации. Файлы зоны генерируются в дирректории /var/cache/bind/. Там же хранятся и прочие файлы зон, которые не обслуживаются системой iadmin. Этой же системой создаётся конфиг для secondary-DNS, который туда и переносится. До тех пор, пока скрипт не отработает, все изменения из БД НЕ материализуются.
IAdmin — это система создана для автоматической генерации конфигов Bind на хостинговом сервере и представляет собой базу iadmin в БД MySQL и скрипт, который на основании данных из базы генерирует конфигурационные файлы. Для настройки Bind используются таблицы dns_domains, dns_records, dns_subgmail. Основной скрипт, написанный на перле читает данные из БД iadmin и создаёт файлы конфигурации. Файлы зоны генерируются в дирректории /var/cache/bind/. Там же хранятся и прочие файлы зон, которые не обслуживаются системой iadmin. Этой же системой создаётся конфиг для secondary-DNS, который туда и переносится. До тех пор, пока скрипт не отработает, все изменения из БД НЕ материализуются.
JavaScript → Мини-библиотека compatibility.js
Hello World!
Я тут собрал все функции из мозиловской документации по JavaScript.
И упаковал их в один файл, получилось 4Кб.
Не совсем все конечно, а только те что добавляют совместимость со старыми браузерами, например Function.prototype.bind.
Я тут собрал все функции из мозиловской документации по JavaScript.
И упаковал их в один файл, получилось 4Кб.
Не совсем все конечно, а только те что добавляют совместимость со старыми браузерами, например Function.prototype.bind.
Linux для всех → Связка DHCP с DNS
Почитав недавние топики про DynDNS решил написать краткую инструкцию по связке DHCP с DNS.
В любой локалке рано или поздно появляется необходимость прописывать прямую и обратную зону. Можно конечно указать в обратной зоне запись вида:
Но это не выход, более красиво будет выглядеть запись вида %username%.isp.net.
В принципе с любого биллинга можно генерировать конфиги для dhcp, этот шаг упустим, перейдем к сути.
В любой локалке рано или поздно появляется необходимость прописывать прямую и обратную зону. Можно конечно указать в обратной зоне запись вида:
$GENERATE 0-255 $ PTR pptp-$.isp.net. Но это не выход, более красиво будет выглядеть запись вида %username%.isp.net.
В принципе с любого биллинга можно генерировать конфиги для dhcp, этот шаг упустим, перейдем к сути.
Персональные блоги → Двунаправленный bind (bind with inverse) между JavaFX переменной и Java-переменной
На этот раз хотелось бы расширить предыдущую статью про bind небольшим дополнением про двунаправленный bind (bind with inverse).
В отличие от обычного связывания переменной, bind with inverse позволяет не только связать одну переменную с другой, но и создать двунаправленное соотношеие между переменными.
В отличие от обычного связывания переменной, bind with inverse позволяет не только связать одну переменную с другой, но и создать двунаправленное соотношеие между переменными.
Персональные блоги → Применение bind в JavaFX
Когда я впервые познакомился с техникой связывания переменных, то в первое время хотелось связывать всё подряд, настолько это было увлекательно. Как и любую технологию, JavaFX и binding не следует применять бездумно. Следует помнить, что binding в сущности спрятанная реализация паттерна Observer (или Listeners, кому как больше нравится). Как следствие, может возникать множество не очевидных проблем, таких как «утечки памяти», проблемы с производительностью и т.п.
В этом посте хотелось бы привести ряд паттернов и антипаттернов применения binding'а в JavaFX. Кроме того, второй задачей является опубликовать ответы на некоторые вопросы, которые часто задавали на Sun Tech Days, когда я «дежурил» на стенде JavaFX. Мне кажется, что многие подобные вопросы плохо освещены, и в рунете особенно.
В этом посте хотелось бы привести ряд паттернов и антипаттернов применения binding'а в JavaFX. Кроме того, второй задачей является опубликовать ответы на некоторые вопросы, которые часто задавали на Sun Tech Days, когда я «дежурил» на стенде JavaFX. Мне кажется, что многие подобные вопросы плохо освещены, и в рунете особенно.
Системное администрирование → Вышел ISC BIND 9.7.0
Вышел новый стабильный релиз популярного DNS сервера BIND 9.7.0. Основные улучшения направлены на упрощение админимтрирования DNSSEC.
Доступен для загрузки bind-9.7.0.tar.gz
Доступен для загрузки bind-9.7.0.tar.gz
Linux для всех → Блокирование DNS DDoS при помощи пакета fail2ban
Вы уже устали от кучи сообщений от logcheck'а об откаpе в обслуживании запросов к named? Ниже будет написано как ограничить себя от DDoS к named'у при помощи пакета fail2ban.
События о которых идёт речь выглядят так:
Однако следует отметить, что в большинстве случаев ip-адрес источника может быть сфальсифицирован. Каждый узел в бот-сети может послать один или несколько пакетов в секунду к DNS-серверу. Сервер в свою очередь отвечает сообщением об ошибке в запросе сфальсифицированному адресу, вызывая отказ в обслуживании у источника.
Устали от того, что ваш DNS сервер используется в качестве оружия в чужих DDoS-атаках? Попробуйте установить себе пакет fail2ban (Debian GNU/Linux). Оригинальный сайт проекта www.fail2ban.org.
События о которых идёт речь выглядят так:
System Events =-=-=-=-=-=-= Jan 21 06:02:13 www named[32410]: client 66.230.128.15#15333: query (cache) +'./NS/IN' denied
Однако следует отметить, что в большинстве случаев ip-адрес источника может быть сфальсифицирован. Каждый узел в бот-сети может послать один или несколько пакетов в секунду к DNS-серверу. Сервер в свою очередь отвечает сообщением об ошибке в запросе сфальсифицированному адресу, вызывая отказ в обслуживании у источника.
Устали от того, что ваш DNS сервер используется в качестве оружия в чужих DDoS-атаках? Попробуйте установить себе пакет fail2ban (Debian GNU/Linux). Оригинальный сайт проекта www.fail2ban.org.