Pull to refresh
1331
0.8

Пользователь

Send message

Failover файрвол на iptables

Reading time6 min
Views14K
Чем же заняться админу в новогодние праздники, как не настройкой серверов!

В этой статье описан общий подход как можно:
— сделать кластер на iptables
— настроить кластер через GUI fwbuilder
— сохранить коннекты пользователей при failover при помощи conntrack-tools

Общее окружение в котором у меня работает такой кластер:
— Внутренняя сеть из backend и frontend серверов
— Блок внешних IP-адресов
— 2 сервера под кластер на базе linux (в моем случае Fedora 13 x64_86): fw1 и fw2 в режиме Master/Backup

Задачи кластера:
— шлюз для локальной сети
— публикация сервисов на внешнем блоке ip-адресов

В общем виде это работает так:
— за состоянием кластера следит служба ucarp и дергает нужные скрипты в случае failover
— служба conntrackd синхронизирует информацию о коннектах между серверами
— fwbuilder компилирует нужные скрипты для iptables

Под катом инструкция для сборки с напильником
Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments10

Простыми словами о преобразовании Фурье

Level of difficultyMedium
Reading time14 min
Views1.1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Total votes 203: ↑192 and ↓11+181
Comments190

Разбираем x.509 сертификат

Reading time11 min
Views222K

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments32

Знай сложности алгоритмов

Reading time2 min
Views1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Comments99

Разбираемся с построением мультирегиональных сайтов

Reading time6 min
Views53K
Проблема создания сайтов с разными версиями языков и стран отнюдь не нова, практически все крупные сайты уже давно с ней столкнулись. Каждая компания выбирает свое решение, мы кратко остановимся на основных вариантах и посмотрим, как решить эту задачу лучшим образом.


Варианты построения URL-ов

Конечно, в жизни существует больше групп, например, часть сайтов хранят региональные настройки в cookie-файлах, другие передают параметром ?lang=ru, однако это непопулярные решения и основными являются:

1. Версия сайта на другом домене:

example.com, example.ru
Самый кардинальный способ. Этот вариант может быть удобен компаниям, имеющим локальные представительства в разных странах и работающих относительно независимо от главного офиса, например, на другом движке сайта.

2. Версия сайта на поддомене:

ru.example.com, ua.example.com
Очень похож на предыдущий вариант, но легче в администрировании. Эти два варианта легко реализуются на физически разных хостах, поэтому могут быть размещены в разных странах.

Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments48

Обзор систем сборок для Raspberry Pi

Reading time9 min
Views47K
В прошлом мой выбор пал на OpenEmbedded (OE) и по заслугам, она одна из лучших систем сборок. К выбору на тот момент не подходил осознанно и захотел исправить это, поэтому решил посмотреть на текущие решения.

Мысль бы не пришла в голову, если под руками не оказалась плата Raspberry Pi (RPi), популярность которой зашкаливает — это означает одно, что попробовать новые системы сборки должно быть как никогда просто.

Забегая вперед, хочу сказать, что мне хотелось выбрать систему сборки для любой платы, RPi это или нет — не важно и был приятно удивлен количеством решений, которые уже сделаны под эту плату.

Читать дальше →
Total votes 37: ↑30 and ↓7+23
Comments22

RESTful API для сервера – делаем правильно (Часть 1)

Reading time13 min
Views333K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments57

RESTful PHP — 5 простых советов

Reading time4 min
Views83K
REST (Representational state transfer) — это архитектурный стиль или свод соглашений для web-приложений и сервисов, основанный на манипулировании ресурсами и спецификацией HTTP. Впервые об этом заговорил Рой Филдинг (Roy Fielding) — один из отцов основателей HTTP (Hypertext Transfer Protocol).

Web-приложения зачастую игнорируют спецификацию HTTP и двигаются вперёд используя полюбившиеся возможности: GET и POST, 200 OK и 404 NOT FOUND. Так как используются программируемые web-приложения, со своими собственными API, то решение игнорировать спецификацию HTTP, может создать проблемы в дальнейшем. Как следствие — имеем множество приложений с интерфейсами GET и POST. Например интерфейс удаления пользователя: GET /user/1/delete против POST /user/delete {id=1}; в случае REST можно указать /user/1 это ресурс, а удаление HTTP метод DELETE.
Читать дальше →
Total votes 72: ↑62 and ↓10+52
Comments122

CSS3-генераторы. Лучшее

Reading time2 min
Views199K








Доброго времени суток! Сразу объяснюсь по поводу оформления поста: однажды, наткнувшись на статью о CSS-генераторах, меня не сильно порадовало безмерное количество информации и навигационных элементов в представленных генераторах, и еще больше — их пользовательский интерфейс! Возмутило то, что инструменты для работы со стилями — сами не выдержаны в рамках возможностей, которые они представляют… как так?!

Когда занимаешься творчеством, хочется иметь подручные средства и инструменты на освоение и работу с которыми тратишь минимум усилий и времени. В результате всего этого, пришла мысль: отобрать лучшие инструменты и организовать их для частого использования (а-ля навигационное меню, такой себе: Quick Launch).

Надеюсь, для многих ноу-хау станет хорошим помощником в процессе веб-разработки.
Читать дальше →
Total votes 114: ↑104 and ↓10+94
Comments26

Подборка инструментов для фронт-энд разработки

Reading time2 min
Views134K
Как разработчику, мне очень нравятся инструменты, которые помогают сэкономить время или упростить процесс разработки фронт-энда. В этой статье я собрал мои любимые веб-инструменты для упрощения разработки веб-интерфейсов.

Картинки кликабельны.

Form builder


Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
image
Читать дальше →
Total votes 202: ↑184 and ↓18+166
Comments40

Какой SIP-сервер выбрать: SER, OpenSER, Kamailio, OpenSIPS? Что в них общего и в чем разница?

Reading time8 min
Views53K
У многих администраторов voip-сетей, сталкивающихся с sip-серверами слова ser, openser, kamailio, opensips вызывают по меньшей мере головокружение. Почему их так много? Почему так похожи? Какие активно развиваются, а какие уже нет? Какой в конце-концов выбрать?

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments18

Полупроводниковая электроника

Reading time30 min
Views373K


Полупроводниковая электроника существенно изменила мир. Многие вещи, которые долгое время не сходили со страниц произведений фантастов стали возможны. Чтобы знать, как работают и чем уникальны полупроводниковые приборы, необходимо понимание различных физических процессов, протекающих внутри.



В статье разобраны принципы работы основных полупроводниковых устройств. Описание функционирования изложено с позиции физики. Статья содержит вводное описание терминов, необходимых для понимания материала широкому кругу читателей.





Иллюстраций: 34, символов: 51 609.



Читать дальше →
Total votes 488: ↑479 and ↓9+470
Comments152

Новичкам про управление шириной канала в Linux

Reading time7 min
Views74K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →
Total votes 115: ↑109 and ↓6+103
Comments21

Упрощение жизни разработчика с помощью сторонних сервисов

Reading time3 min
Views9.6K
Представляю скромную подборку сервисов, которые ускоряют экономят время разработчику и/или ресурсы сервера. Здесь не будет подробных обзоров, только список с кратким описанием и ссылками. Также, я не претендую на свежесть ресурсов, поэтому кому-то перечисленный список покажется слишком очевидным и известным всем.

Буду рад включить ссылки и описания, предложенные в комментариях.

Google Fusion Tables


Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home

Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
Читать дальше →
Total votes 170: ↑156 and ↓14+142
Comments41

Обзор свободно доступных и бесплатных IP АТС (Asterisk, FreeSWITCH, SipXecs, Yate)

Reading time15 min
Views195K

Обзор свободно доступных и бесплатных IP АТС: Asterisk, FreeSWITCH, SipXecs, Yate. Приводятся преимущества и недостатки, сравнительный анализ функциональности и сфер применения. Делается вывод о том, что все продукты можно сочетать друг с другом.



Некоторое время назад ко мне обратился товарищ из «Открытых Систем» и попросил сделать обзор открытых IP АТС. Так как он обратился не только ко мне, а еще и к другим экспертам IP телефонии, то в результате в журнал попала компиляция, в которой мало осталось от моего оригинального обзора. Публикую его целиком на Хабре.

Вначале будет теоретическая вставка, для тех, кто не совсем в теме. Если будет скучно — просто пропустите ее! Приятного чтения! А чтобы лучше читалось, главы сопровождаются музыкальными подарками (настоятельно рекомендую наушники :-)

Поехали!

Теория

PBX (Private Branch Exhange) — английский термин, обозначающий офисную телефонную станцию, которая обеспечивает установление, поддержание и разрыв соединений между аппаратами, то есть коммутацию. PBX позволяет разделять ограниченные ресурсы (городские линии и номера) между неограниченным числом внутренних пользователей, при помощи таких телефонных функций, как внутренний номерной план, перевод звонков, постановка на удержание, и других.

Именно поэтому PBX система необходима любой организации — она позволяет эффективно организовать телефонную связь на предприятии (ну, пока еще нужна ;-)

Читать дальше →
Total votes 92: ↑79 and ↓13+66
Comments68

Шейпирование трафика в Linux. Часть 2

Reading time10 min
Views12K
Вторая часть статьи об управлении трафиком в Linux. В статье приведены примеры приоретизации трафика (QoS) и рассказано об использовании hash таблиц при фильтрации трафика (fast hash tables), использование которых позволяет существенно увеличить производительность.
Читать дальше →
Total votes 38: ↑29 and ↓9+20
Comments14

Ограничиваем входящий и исходящий трафик в Linux

Reading time11 min
Views113K
В данной статье хочу рассказать, как я строил систему ограничения входящего и исходящего трафика в Linux.
Как и учет трафика, ограничение полосы пропускания в сети является очень важной задачей, хотя первое с каждым годом всё быстрее отходит на второй план, шейпинг трафика остается необходимой задачей каждого системного/сетевого администратора.
Читать дальше →
Total votes 107: ↑103 and ↓4+99
Comments52

Linux + 2 ISP. И доступность внутреннего сервера через обоих провайдеров

Reading time5 min
Views15K
Есть замечательная статья, в которой рассказывается, как это делается на Cisco. Но мы не хотим тратить $100500 на приобретение штампованных оттисков «Cisco Systems» на корпусе маршрутизатора.

Описание проблемы

Итак, суть проблемы: имеется два NAT через двух разных провайдеров, локальная сеть, в которой есть сервер и который должен быть публичным и доступным через оба NAT. У провайдеров разные приоритеты: сначала задействуется первый, потом второй.

Если пакет вошёл через первого провайдера, он NAT-ится на наш сервер, обрабатывается, образуется ответный пакет, который выходит через первого провайдера и уходит туда, откуда пришёл первый пакет. Хорошо.

Если пакет вошёл через второго провайдера, он NAT-ится на наш сервер, обрабатывается, образуется ответный пакет, который выходит через первого провайдера… а почему? Потому, что сначала в Linux происходит маршрутизация, а потом уже SNAT. Итак, при маршрутизации пакету назначается следующий узел — шлюз первого провайдера (по умолчанию). Потом происходит отслеживание соединения — conntrack замечает, что этот пакет является ответом на другой, и заменяет адрес отправителя адресом, который выдал нам второй провайдер. А потом пакет направляется через интерфейс первого провайдера на его шлюз. Как правило, провайдер блокирует пакеты, адресом отправителя которых указан адрес не из их подсети. Плохо.

Читать дальше →
Total votes 82: ↑75 and ↓7+68
Comments29

Причесываем трафик — динамический шейпер на Linux

Reading time4 min
Views58K
причесываем трафик
Предположим у вас есть домашняя сеть (или не домашняя, а сеть небольшого офиса) с выходом в интернет через не очень скоростной канал. А пользователей — много, и каждый хочет что-то скачивать, да с максимальной скоростью. Вот тут перед нами встатет задача, как максимально эффективно распределить наш интернет-канал между пользователями так, чтобы они не мешали друг другу. В этой статье я опишу, как можно решить такую задачу с помощью Linux-сервера.

Сформулируем, что же мы хотим получить в результате:
1. Чтобы канал поровну делился между пользователями.
2. Чтобы канал зря не простаивал.
3. Чтобы онлайн-игры, ssh и telnet не «лагали» даже при полной загрузке канала, например торрентами.
Читать дальше →
Total votes 100: ↑98 and ↓2+96
Comments98

Linux под нагрузкой. Высокопроизводительный шейпер

Reading time5 min
Views13K
В прошлой заметке мы рассматривали некоторые аспекты тюнинга роутера под Linux, предназначенного для работы в условиях высоких нагрузок: Linux под нагрузкой. Маршрутизатор, NAT-сервер Теперь же речь пойдет о шейперах.
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments70

Information

Rating
1,719-th
Registered
Activity