Pull to refresh
53
0.1
galaxy @galaxy

User

Send message

QoS в Linux: издеваемся над трафиком

Reading time7 min
Views47K
В предыдущей статье я рассказывал про фильтр U32. В этой статье речь пойдёт о так называемых tc actions — действиях, которые можно производить над трафиком. Например, можно построить файерволл без использования iptables/netfilter, или изменять отдельные байты в пакетах, перенаправлять/зеркалировать трафик на другие интерфейсы. Осваивать это будем на примерах. Продолжение под катом.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments10

QoS в Linux: фильтр U32

Reading time14 min
Views21K
Так повелось, что фильтр U32 в подсистеме управления трафиком ядра Linux считается простым и понятным, а потому в подробном документировании не нуждается. Например, в LARTC (Linux Advanced Routing and Traffic Control) про него лишь несколько абзацев. Но на самом деле U32 устроен гораздо сложнее и интереснее, но и в использовании он не так прост, как может показаться. Под катом статья по этому фильтру с примерами использования и подробными пояснениями.
Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments11

Сети для самых маленьких. Часть вторая. Коммутация

Reading time18 min
Views762K


После скучного рассказа о подключении к кошкам переходим к настройке сети. В этот раз темы будут для новичков сложные, для старичков избитые. Впрочем сетевым аксакалам едва ли удастся почерпнуть что-то новое из этого цикла. Итак, сегодня:
а) аккуратно впитываем теорию о коммутаторах, уровнях сетевой модели, понятии инкапсуляции и заголовков (не пугайтесь — еще не время),
б) собираем спланированную в нулевой части цикла сеть,
в) настраиваем VLAN'ы, разбираемся с access и trunk-портами и тегированными Ethernet-фреймами,
г) соотносим текущие знания со стеком протоколов TCP/IP и моделью OSI (да, наконец-то мы ее коснёмся).



Перед тем, как вы обратитесь к практике, настоятельно рекомендуем почитать нулевую часть, где мы всё спланировали и запротоколировали.

Читать дальше →
Total votes 92: ↑88 and ↓4+84
Comments45

Минималистичная программа в формате ELF

Reading time6 min
Views22K
Вдохновившись статьёй Привет из свободного от libc мира, я так же решил проделать нечто подобное. Чтобы не заниматься этим бесцельно, я решил поставить перед собой следующую задачу. Сделать программу, выводящую какую-нибудь простую строку, вроде «ELF, hello!». Разобраться с тем, как именно она будет представлена в исполняемом файле. Ну и попутно, постараться уложиться в 100 байт.
Читать дальше →
Total votes 110: ↑109 and ↓1+108
Comments49

Как написать дополнение для GIMP на языке Python

Reading time11 min
Views19K

Или Script-Fu — это так называемый «фильтр массовости»? Далеко не каждый может с ним разобраться и большинство даже не пытаются делать какие-то плагины к GIMP.

RPG


Введение


GIMP — довольно мощный растровый графический редактор, обладающий рядом преимуществ, одним из которых является возможность расширять функциональность путём написания дополнений.

В качестве языков, на которых можно писать дополнения, годятся Scheme и Python. Существует возможность писать дополения и на других языках (Perl, Tcl/Tk и т.д.), но модули, которые реализуют эту возможность, плохо поддерживаются либо вовсе не работают со свежими версиями GIMP.

Избрав языком для написания дополнения Scheme, вы автоматически оказываетесь в выигрыше, так как не существует в мире такой сборки GIMP-а, в которую бы интерпретатор Scheme не входил, и написаное вами дополнение гарантировано будет работать на всех платформах «из коробки», однако, писать на Scheme — то ещё удовольствие… Scheme является диалектом LISP. LISP — это аббревиатура, расшифровывается как LISt Processing, то есть, язык для обработки списков. Существует и другая расшифровка: Language of Idiotic Silly Parentheses (язык идиотских глупых скобок), спорное, но не лишенное смысла утверждение, — несоблюдение баланса скобок — один из главных источников ошибок программы, написанной на LISP и ему подобных. Далеко не каждый может разобраться с непростым синтаксисом этого языка, и большинство даже не пытаются писать какие-то дополнения для GIMP. Но сложный синтаксис — это мелочь по сравнению с отсутствием ряда возможностей. Например, нельзя использовать свой графический интерфейс, сохранить настройки дополнения в конфигурационный файл, подключить некий внешний модуль с дополнительными функциями и т.д. и т.п. Но есть язык, лишённый большинства недостатков Scheme и обладающий рядом достоинств. Этот язык — Python. О нём и пойдёт речь.
Читать дальше →
Total votes 72: ↑66 and ↓6+60
Comments22

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

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

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

Сервер очень точного времени stratum 1 на Garmin GPS

Reading time13 min
Views81K
GPS приемники можно использовать не только для определения местоположения, но и для получения сигналов точного времени. В статье я покажу как настроить сервер точного времени, использующий в качестве источника GPS и работающий с точностью до нескольких микросекунд. В качестве примера я использую приемник Garmin и ОС FreeBSD, но статья также будет полезна обладателям Linux и Windows.



UPD: сервер доступен по адресу stratum1.net Веб-морда: www.stratum1.net.

Читать дальше →
Total votes 96: ↑93 and ↓3+90
Comments79

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Reading time17 min
Views277K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

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

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

Итак, вы изучили mod_rewrite, составили несколько RewriteRule и успели столкнуться с бесконечными перенаправлениями, со случаем, когда правило почему-то не ловит ваш запрос, а также с непредсказуемой работой группы правил, когда последующее правило неожиданно изменяет запрос, кропотливо подготовленный правилами предыдущими.

Почему так происходит?
Читать дальше →
Total votes 208: ↑203 and ↓5+198
Comments25

HowTo cook custom Firefox msi for enterprise deployment

Reading time5 min
Views18K
Официальная позиция mozilla по поводу msi дистрибутивов выражена в статье. Рекомендуется делать обертки FirefoxSetup.exe в msi, а так же запрещено любое распространение не оригинальных дистрибутивов. Но при использовании оберток теряются все плюсы msi — автогенерация отката вносимых изменений, self-repair, сложнее управлять обновлением, удалением и патчами. В багтрекере мозиллы багу #231062 Provide Firefox MSI package уже 7 лет! При этом у Chrome поддержка msi и GPO встроенная. Немудрено, что и для ФФ появилась сторонняя сборка от компании FrontMotion Firefox Community Edition, которая имеет свои особенности:
[+] Применяет политики, установленные через FirefoxAdm, без помощи доп. расширений
[+] Имеет свои adm/admx расширения для консоли GPP
[+] Предустановлены плагины Flash, IETab
[-] Браузер перекомпилирован, и не факт, что при этом в него не добавили новых возможностей кроме GPO)
[-] Используется нестандартное название ярлыков (Frontmotion Firefox) на столе и в меню Пуск. (что еще можно обойти, через transforms для msi)
[-] Используется другая иконка (от nightly ветки) — черная, что критично для юзеров, которые ищут рыжую лису.
[-] Не применяются автоматические обновления, т.к. сборка своя. Канал обновлений выставлен на default (спец. канал, где нет обновлений)

Если минусы вас не устраивают — предлагается воспользоваться платной службой для сборки пакетов. Я же опишу как собрать пакет самому и избавиться от вышеперечисленных минусов.
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments15

Avaya Definty feat. IP Office 500

Reading time6 min
Views37K
Меня всегда пугала классическая телефония. Это словно какое-то тайное знание. Передаётся оно только из уст в уста, от учителя ученику. И несмотря на все попытки держаться от неё подальше, волею судеб меня кинуло всем телом на амбразуру АТС, E1, и прочих там CO-транков.

Definity

Прежде я уже писал о настройке АТС IP Office 500. С тех пор много тайм-слотов освобождено и передо мной встала новая задача: настроить транк между двумя АТС (Definity и IP Office) и сделать возможными городские звонки через этот транзит.
Заинтересованных в тайном знании прошу
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments38

Avaya IP Office для чайников

Reading time10 min
Views213K
Для Хабра.
Эту свою статью после долгого затишья хочу посвятить телефонии и организации конференц-связи. Вообще-то я специалист иного профиля и занимаюсь сетями и оборудованием, но по долгу службы столкнулся и с АТС.
Раньше я считал классическую телефонию мистической сферой знаний, загадочной и необъяснимой. Со временем, конечно, выясняется, что это заблуждение, однако остаётся неприятный осадок от количества информации. Если для IP в интернетах массы литературы, форумов, FAQ и прочего, и только ленивый не писал своих статей на эту тему, то с телефонией сложнее. Для меня — человека, пришедшего в телефонию со стороны IP-сетей, это выглядит, как тайное искусство, традиция, передающаяся из поколения в поколение, особенно, когда посмотришь на ужасающего вида советские плинты размером со стену, в которые телефонные провода крепятся болтами или АТС, из которых во все стороны расходятся скрученный провода, как волосы медузы Горгоны.

image
Читать дальше →
Total votes 82: ↑77 and ↓5+72
Comments92

Пишем живые обои с часами

Reading time4 min
Views25K
ClockНедавно я решил разобраться, как делать живые обои для андроида, а разбираться лучше всего на хорошем примере — таком, который потом пригодится. Я всегда хотел удобные часы. Для андроида уже существует достаточное количество подобных обоев, но обычно они рисуют большие часы в каком-нибудь фиксированном углу экрана и перекрываются виджетами, которых у меня немало. Мне хотелось, чтобы часы были разбросаны по всему экрану, тогда вероятность увидеть их будет выше.
Как сделать такое читайте дальше
Total votes 79: ↑76 and ↓3+73
Comments37

Взаимодействие bash-скриптов с пользователем. Часть 2

Reading time3 min
Views51K
Наша программа настолько сурова, что даже логин отображается звездочками (bash.org.ru)

Вашему вниманию представляется новая подборка средств общения скриптов с пользователем. Надеюсь, интересно будет всем, кто не боится работать с консолью.
Первую часть можно найти тут.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments17

Взаимодействие bash-скриптов с пользователем

Reading time4 min
Views145K
Любой приказ, который может быть неправильно понят, понимается неправильно (Армейская аксиома)

Редкий скрипт лишен необходимости общения с пользователем. Мы ожидаем, что программа (утилита) будет выполнять то, что нам от нее хочется. Следовательно, нужны инструменты влияния на них, да и программа сама должна объяснить, как продвигается ее работа.
Данным топиком я хочу рассмотреть несколько способов взаимодействия bash-скриптов с пользователем. Статья рассчитана на новичков в скриптинге, но, надеюсь, люди опытные тоже найдут что-нибудь интересное для себя.
Итак, приступим...
Total votes 89: ↑87 and ↓2+85
Comments48

Обработка входящей почты на PHP

Reading time2 min
Views37K
Хочу поделиться рецептом, как совместить php-скрипт и почтовый сервер Postfix для автоматической обработки входящей почты.

С помощью такой связки мы собираем статистику по количеству возвратов bounce-писем:Undelivered Mail Returned to Sender.

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

Как это сделать...
Total votes 73: ↑62 and ↓11+51
Comments43

Python-неизвестный

Reading time4 min
Views27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →
Total votes 144: ↑140 and ↓4+136
Comments51

JavaScript F.A.Q: Часть 2

Reading time14 min
Views76K
image

Около 2-х месяцев назад я и TheShock собирали вопросы по JavaScript в теме FAQ по JavaScript: задавайте вопросы. Первая часть, те вопросы, которые достались мне, появилась буквально через несколько дней JavaScript F.A.Q: Часть 1, а вот вторая часть все не выходит и не выходит. TheShock сейчас переезжает в другую страну и поэтому ему не до ответов. Он попросил меня ответить на его часть. Итак вторая часть ответов — те вопросы, которые достались тоже мне.
Читать дальше →
Total votes 185: ↑180 and ↓5+175
Comments100

IPoE, а также Client-VLAN и DHCP Option 82

Reading time5 min
Views83K
В этой статье я опишу что из себя представляет технология доступа в Интернет IPoE, которой на самом деле не существует. А также расскажу про схему Client-VLAN и про опцию 82 DHCP (DHCP Option 82), которые стали неотъемлемой частью этой несуществующей технологии. Все это, конечно же, с технической точки зрения и с примерами конфигов.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments81

Восстановление пароля на маршрутизаторах Cisco

Reading time2 min
Views143K
Практически любой начинающий Cisco-вод рано или поздно оказывается в ситуации, когда на руках имеется маршрутизатор с напрочь забытым или неизвестным, чужим паролем. Лично я, будучи преподавателем курсов Cisco, встречаюсь с этой ситуацией очень часто после лабораторных работ. Ученики строят топологию, настраивают пароли на доступ, играются с сеткой и… забывают стереть файл конфигурации перед уходом. Само собой, до следующей лабораторной работы все успешно забывают свои пароли. По непонятной мне причине, Cisco не уделяет этой теме достаточно внимание в своём учебном материале, а документация на офф-сайте зачастую пугает новичков. Этот недостаток я и хотел бы сегодня устранить.

Читать дальше →
Total votes 68: ↑50 and ↓18+32
Comments48

Пишем плагин-диссектор для Wireshark

Reading time14 min
Views24K
imageWireshark — одна из незаменимых утилит для «прослушки» сети, при работе с сетевыми протоколами. В состав программы уже входит некое количество диссекторов1, которое помогают детально рассмотреть пакеты базовых протоколов. Но при работе над проприетарным протоколом компании Nortel я столкнулся с отсутсвием подходящего диссектора. А нужен он был как воздух. Выход был очевиден — написать свой. Что я и сделал.
Таким образом, имея небольшой опыт написания плагина «анатома» под Wireshark, я решил поделиться знаниями и опытом с сообществом. Ну и для себя записать, на случай, если в будущем понадобится.

Диссекция — лат. dissectio, от dissecare, рассекать
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments18

Information

Rating
2,782-nd
Location
Россия
Registered
Activity