4 декабря 2012 г.

nxserver, ubuntu, не отображается меню

Настраивал тут nxserver товарищу, нарвался на то, что при входе пользователя не рисуется рабочий стол. Как я и подозревал, во всем виноват compiz :) нечего 3D плюшки по сети гонять! Вот nx и не гоняет. В результате у пользователя нет рабочего стола.

Решение проблемы простое, запускать сессию пользователя в 2D режиме. Ищем файл node.cfg, изменяем параметр.

CommandStartGnome = "/usr/bin/gnome-session --session=ubuntu-2d"

Все довольны.

16 ноября 2012 г.

Предчувствие gentoo.

Предчувствую, что gentoo станет моим любимым дистрибутивом. Причина вот в этом: Команда Gentoo Linux планирует совершить форк проекта udev.

Прямо как в любимом фильме: "я такую неприязнь испытываю к systemd, что аж кушать не могу" :)

29 октября 2012 г.

Beeline vs Искрателеком.

Испытания показали, что "Билайн домашний интернет" в моем доме работает хуже чем "Искрателеком". Билайн, отключен. Искра продолжает получать свои/мои деньги.

23 октября 2012 г.

Стих... японский

Давно не держал в руках долляровые купюры. Все как то разноцветные фантики: рублики, еврики, иногда гривны. А вот сегодня в банке дали парочку дестибаксовых купюр. И я удивился. Их печатают на желтой бумаге. О как. По этому поводу родился стих в японских тонах:

Доллар как лист. Был зеленым.
Осенью желтым стал.
Скоро зима.


З.Ы. Вторая книга про самураев наверное оказалась лишней.

17 октября 2012 г.

Mikrotik и BeeLine

У моего старого домашнего провайдера начались проблемы. Причем эти проблемы приобрели регулярность. Решил попробовать домашний итернет от пчелайна.
Из-за особенностей организации сети пчелайна и фич микротика, подружить их между собой достаточно тяжело. Добрые люди написали толковый мануал, огромно спасибо им за это. Но, как обычно, в жизни не все так как в мануале :) Учитывая, что старый провайдер пока от микротика не отключается, провод пчелайна был засунут в отключенный от общего свича интерфейс (ether5), появились маленькие тонкости.

1. Сначала подключитесь виндовым клиентом напрямую к сети  пчелок и запишите ip адреса DNS и VPN серверов пчелайна.

2. Почему то пчелайн DHCP сервер не отдает микротиковскому клиенту маршрут по умолчанию. Виндовому клиенту дает, микротику не дает. Поэтому приходится прописывать маршруты к сетям где находятся DNS и VPN серверам руками. Да и вообще, какой то странный их DHCP, выдал кучу всяких маршрутов, кроме вышеуказанных! Ну и по поводу его странности, см. следующий пункт.

3. Пчелайн редкосные бяки, их DHCP сервер выдает вот такой вот маршрут:
#      DST-ADDRESS  PREF-SRC  GATEWAY    DISTANCE
1 ADS  10.0.0.0/8             10.89.48.1 1
У моего старого провайдера внутренняя сеть тоже 10, но с маской /16. Т.е. старый провайдер честно дает маршрут на часть сети. Благо там pppoe подключение и можно не получать IP на интерфейс. Но пчелайн своим чудо маршрутом, просто заставил меня отказаться от использования внутренней сети старого провайдера. А там есть разные вкусности.

4. Вводить руками скрипт из мануала, занятие не для слабонервных. Поэтому, для тех кто пользуется winbox, привожу скрипты в нормальном виде.

corbina-l2tp_refresh
:local interface "BeeLine-l2tp"
:local vpnserver "tp.internet.beeline.ru"
:log debug message="Hard resolv script run"
/ip dns cache flush
:local "current-ip" [:resolve $vpnserver]
:local "old-ip" [/interface l2tp-client get [/interface l2tp-client find name="$interface"] connect-to]
:if ($"current-ip" != $"old-ip") do= {
:log info "VPN Server changed IP address from $"old-ip" to $"current-ip""
/interface l2tp-client set [/interface l2tp-client find name="$interface"] connect-to=$"current-ip"
}


corbina-l2tp_soft_refresh
:local interface "BeeLine-l2tp"
:local vpnserver "tp.internet.beeline.ru"
#:log debug message="Soft resolv script run"
:if ([/interface l2tp-client get $interface running] = false) do={
 :log info message="VPN down. Refreshing"
 /ip dns cache flush
 :local "current-ip" [:resolve $vpnserver]
 :local "old-ip" [/interface l2tp-client get [/interface l2tp-client find name="$interface"] connect-to]
 :if ($"current-ip" != $"old-ip") do= {
 :log info "VPN Server changed IP address from $"old-ip" to $"current-ip""
 /interface l2tp-client set [/interface l2tp-client find name="$interface"] connect-to=$"current-ip"
 }
}

Разумеется вместо BeeLine-l2tp вы подставите свое имя l2tp интерфейса.

З.Ы. Очень понравились возможности микротика в части управления чипа свича! Для начала сформировал два интерфейса в отдельный свитч (смотрите параметр Master Port на интерфейсе). В один воткнул шнур от пчелок, в другой шнур идущий на кухню. Таким образом смог подключить ноут на прямую в сеть пчелок. Записал все необходимые параметры, вернул интерфейс в старый свич. Если бы этой возможности не было, пришлось бы на табуретке сидеть в коридоре :)

10 октября 2012 г.

Ай да mikrotik, а да сукин сын.

Ну ребята, таки mikrotik меня удивил. Нда, я давно так не удивлялся. Такое ощущение, как будто съел кучу васаби и тебе сразу прочистило все дыхательные пути.

Итак: есть как бы роутер на микротик, у него два интерфейса:
  1. eth1 192.168.0.100
  2. eth2 192.168.1.100
Маршрут по умолчанию через eth1 на другой роутер.
И микротик и роутер двумя интерфейсами подключены к обеим сетям: 192.168.0.0/24 и 192.168.1.0/24
Причем у микротика eth2 - это было временное подключение, только на стадии первичной конфигурации, так как рабочая станция с которой он первоначально конфигурился была в сети 1.0.

А теперь вопрос: если на микротике из интерфейса eth2 вытащить шнурок, сможете ли вы с машины, находящейся в сети 192.168.1.0/24 попасть на 192.168.0.100?
Или немного другой вариант вопроса: можете ли вы, находясь на микротике попасть в сетку 192.168.1.0/24 согласно его маршрута по умолчанию?

Ответ простой - нет!

Как оказалось, у RouterOS есть забавная фишка. У нее маршруты к сетям, подключенным к интерфейсу, при отключении линка из таблицы маршрутизации автоматически не удаляются! О как! В Linux удаляются (кстати все маршруты проходящие через этот интерфейс), в Windows удаляются, а в RouterOS нет!

И вот, три дня я нем мог понять, почему с упорством маньяка RouterOS пытается отсылать пакеты в интерфейс, на котором нет линка?

Слава богу служба поддержки Микротика работает отлично и они меня просветлили (именно просветлили, прямо таки карму почистили).

Для того, что бы интерфейс начал работать в привычном, например для меня, режиме. Нужно добавить небольшой фильтр.

[admin@MikroTik] > /routing filter print
Flags: X - disabled
 0   chain=connected-in prefix=192.168.1.0/24 scope=200 invert-match=no
     action=reject set-bgp-prepend-path=""

Принцип работы этого фильтра: если есть лик, значение scope=10, если линк down - то scope=200.

Немного поработав с mikrotik девайсами я догадываюсь почему у них так устроено :) но все равно - это было очень неожиданно.

Небольшой апдейт. Достаточно удалить ip адрес из списка и маршрут будет удален. Но если его не удалить руками, то да - пишем фильтр.

5 октября 2012 г.

Mikrotik 1100AHx2

Однако он меня напрягает. Отказывается нормально поднимать bonding :( Хотя то же RouterOS на Х86 девайсе с bonding работает нормально.
Залили на него 6.0rc1, так в режиме бондинга вобще все сетевые интерфейсы отрубаются. Вернуть девайс в рабочий режим можно только путем разборки корпуса и и замыкания жесточайшего reset на плате :(
Оставили девайс в покое до среды. То ли мы че то не так, то ли они как то не очень.

Mikrotik + IPTV + IGMP + WiFi

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

Ставим пакет multicast.

По умолчанию он у меня не стоял.

Включаем igmp-proxy.

/routing igmp-proxy print              
              quick-leave: yes
           query-interval: 1m
  query-response-interval: 10s
/routing igmp-proxy interface print detail
Flags: X - disabled, I - inactive, D - dynamic, U - upstream
0 U interface=ether1-gateway threshold=1 alternative-subnets=0.0.0.0/0 upstream=yes
1 interface=bridge-local threshold=1 alternative-subnets="" upstream=no
На что следует обратить внимание?
  1. На alternative-subnets=0.0.0.0/0. Эта фишка позволяет ловить трафик с сетей к которым у вас нет обратного роутинга.
  2. interface=ether1-gateway - это тот интерфейс на который к вам будет приходить мультикаст трафик. Например у моего провайдера (Искрателеком) он приходит на локальный ethernet интерфейс, а не на pppoe интерфейс.
  3. quick-leave=yes. Позволяет быстро переключаться между каналами.

Разрешаем в фаерволе igmp и udp

Это нужно делать на цепочке input того интерфейса, который подключен к провайдеру и являющемся upstream.

И самое главное

Во всех мануалах на этом заканчивается настройка и все вроде должно работать. Но! если у вас Wi-Fi то по нему приходит маленький пушной зверек. Мультикаст пакеты начинаю тупо валить ваш беспроводной интерфейс! Упс.
В Инете рекомендуют дропать мультикаст трафик на Wi-Fi (при этом никакого ТВ там не будет) или выкинуть микротик и купить супер дупер девайсы :)
На самом деле проблема решается просто, очень просто.

Тадаааамммм!!!! Фанфары!!!

Включаем multicast-helper=full
Этот маленький пунктик заставляет ваш микротик отправлять мультикаст пакеты по индивидуальным MAC-ам тех девайсов, которые зарегистрированы  на Wi-Fi.

Все, вы можете смотреть ТВ на девайсе, подключенном к микротику по Wi-Fi.

З.Ы. Проверено на Искрателеком.

Апдейт раз. Пункт multicast-helper доступен в окне настройки wifi интерфейса после нажатия кнопки advanced. Ну или явно в командной строке после set.

Апдейт два. Не рекомендуется быстро переключать каналы. Особенность igmp proxy заключается в том, что при переключении на новый канал, старый трафик некоторое время продолжает транслироваться. Переключив быстро 4-5 каналов, вы превысите пропускную способность wifi канала и начнутся дикие тормоза. Конечно через минуту трансляция ненужных каналов отвалится и все станет нормально. Но все же...

3 октября 2012 г.

HP Printer & SNMP

Оказывается, если количество напечатанных страниц (9.1.1) превышает максимальное количество страниц картриджа (8.1.1), принтер возвращает oid 1.3.6.1.2.1.43.11.1.1.9.1.1 = 0. Странно. Пришлось переписывать правила в мониторинге.

26 сентября 2012 г.

DUDE контроль картриджей HP Printers

Начал щупать программку сетевого монитора Dude. Что сказать? Прикольно, удобно, управляет девайсами mikrotik на прямую, на шару, работает :)

Возникла задача контролировать картриджи в принтерах HP. Получилось.

1. Создал функцию:
Имя: HPCartrige
Описание: Выдает % использования картриджа
Код: oid("1.3.6.1.2.1.43.11.1.1.9.1.1") * 100 / oid("1.3.6.1.2.1.43.11.1.1.8.1.1")


2. Создал пробу:
Имя: HP pages
Тип: Functions
Агент: по умолчанию
Доступно: if(oid("1.3.6.1.2.1.43.11.1.1.8.1.1")>2000,1,-1)
Ошибка: if(HPCartrige()<95,"","Картридж смени!")
Значение: HPCartrige()
Единица измерения: %


3. Подключил пробу к принтерам HP.

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

Апдейт. Конечно приятно самому докопаться до проблемы,  но... таки надо читать мануалы и спец форумы. Оказывается - все уже придумано :) тыц вот тут.

22 сентября 2012 г.

MUM в Москве.

 В пятницу посетил http://mum.mikrotik.com/2012/RU/info/RU. Забавная компания из Литвы делает недорогие, интересные решения. В том числе свою ОС, по сути свой дистрибутив с закрытой оболочкой над Linux (кстати, на вопрос, а где исходники ядра и прочего, они слегка стушевались и сказали, что ядро стандартное, берите с kernel.org, а софт наш и не под свободной лицензией). Вобщем забавная и удобная штука, мы даже начали использовать кое что из их решений.

Задумался как применить девайсы этого производителя дома. В плане центральный девайс  4 Ethernet + 4POE + Wi-Fi и по Ethernet 5-ти портовому коммутатору на комнату. В итоге всего один шнур питания, ляпота.

И вот тут нарвался на засаду, точнее на две. У них POE нестандартное 24 вольта :) и девайс, который может раздавать питание только 100М Ethernet :) Упс. Покупать отдельные блоки питания и модули для POE (они у них есть)? Так у меня станет больше проводов чем сейчас. Или возвращаться на 100Mb с 1Gb :) Вобщем обидно. А всего то надо сделать вот этот девайс RB750UP с гигабитными интерфейсами. Так что, пока оставлю дома инфраструктуру на старом добром netgear.

29 августа 2012 г.

Склероз.

Че то стал одолевать склероз. Поэтому оставлю заметку для себя.
Артур, запомни, если ставишь sendmail на пустой сервер, обязательно поставь пакет cyrus-sasl-plain. И все у тебя будет хорошо. И сохранишь себе пару месяцев здоровья.

3 августа 2012 г.

Так вот откуда они взялись!


Урок о сокращениях.
Это примерный пересказ поста Роба Пайка в его Г+. Я плохой переводчик, поэтому никогда не называют такие тексты «переводом»
Давным давно, когда был разработан дизайн файловой системы Unix, были придуманы записи . и .., для облегчения навигации. Я не уверен, но кажется .. появился при переписывании Версии 2, когда в файловой системе появилась иерархия (до этого структура была совсем другой). Когда кто-то набирал ls эти записи показывались на экране, поэтому Кен или Деннис добавили простую проверку в программу. Тогда всё писалось на ассемблере, но код был примерно эквивалентен чему-то вроде этого:
if (name[0] == '.') continue
Этот код был слегка короче, чем должен, потому что правильно было написать
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue
но блин, это же было проще.
Результатом были две вещи.
Во-первых, был создан неприятный прецедент. Толпы других ленивых программистов порождали баги, используя то же самое упрощение. Настоящие файлы начинающиеся со знака точки часто пропускались, даже в тех случаях, когда должны были быть учтены.
Во-вторых, и это намного хуже, появилась идея «скрытых» файлов или «файлов с точкой». Как следствие, толпы других ленивых программистов1 стали разбрасывать файлы в домашних каталогах. У меня не так много всего установлено на машине, в которую я сейчас набираю этот текст, но мой домашний каталог содержит около сотни файлов с точкой, и я даже не знаю, что в большинстве из них и нужны ли они вообще. И каждое дополнительное имя файла в домашней папке замедляет работу машины, пусть не намного, но это же накапливается.
Я совершенно уверен, что концепция скрытых файлов была непреднамеренной оплошностью. Это просто была ошибка.
К какому количеству багов, потраченных циклов CPU и случаев человеческого разочарования (не говоря уже о плохом дизайне) привело одно маленькое упущение, случившееся 40 лет назад.
Задумайтесь об этом в следующий раз, когда захотите «срезать угол» в вашем коде.
(Я не спорю с теми, кто говорит, что скрытые файлы служат определенной цели, но это цели служат файлы, а не соглашение об их наименовании. Их легко можно было складывать в $HOME/cfg или в $HOME/lib, как мы и сделали в Plan 9, где нет файлов с точкой. Выводы были сделаны)
Роб Пайк. 3 августа 2012.

Перевод взят тут.

Инструкция.

Сегодня меня метро порадовало. Вобщем все как обычно: еду, стою, сплю. Передо мной сидит тетечка, такая вся богомольная (худая, болезненно бледная, такая никакая), читает брошюрку. Глаз цепляется за название главы: Рай.
Интересно, фокусирую зрение (правда без очков трудно получается) :) Глава начинается со слов: "Когда вы попали в рай, надо помнить о том, что...." Ухтышка какая. Я еще больше просыпаюсь :)
Фокусирую зрение вверху страницы, где обычно печатают название книги. Название меня окончательно проснуло: Инструкция для бессмертных!!!
Все, настроение поднялось, я готов к работе :)

6 июля 2012 г.

Два пароля у учетной записи... Чудеса Windows

Коллега выложил видео. Смотреть тут: http://video.lisa-alisa.ru/password2.html

Первое о чем подумал: дыра в Винде, ведь наличие двух паролей у учетки облегчает подбор пароля. Оказалось - это фича :)
Как это делается не знаю, надо будет подробнее у Сережи спросить.

4 июля 2012 г.

Толстый клиент 1С 8.3

Вообщем толстый клиент 1С 8.3 удалось запустить под linux. Но с бубном поплясал от души.
На RedHat и производные установить не удалось.
На Ubuntu LTS 12.04, после допиливания его напильником все встало.

Тепереча бум пробовать его в работе

27 июня 2012 г.

Прогулка за батоном.

Ну что ж, как говорит автор: если у вас свадьба - заявите о мероприятии и вас будут сопровождать сотрудники полиции.

P.S. надеюсь в дальнейшем ссылку на это видео не признают как ссылку на экстремистский материал, а то могу попасть на большие бабки :)

6 июня 2012 г.

Замечательный комментарий к очередной статье, вышедшей из под пера сострудника кадрового агентства

Комментарий (с) Evgeniy Kuznetsov, к статье. Взято из FB
1. Почему вы выбрали именно нашу компанию?
- Вы идиот? Я направил резюме в десяток мест. Где устроюсь быстрее и выгоднее - там и хорошо.

2. Как вы считаете, почему мы должны выбрать именно вас?
- Вам работники вообще нужны? Ну вот он я. Работник. Именно меня стоит выбрать хотя бы потому, что я явно умнее всех тех, кто заливал на эти вопросы стандартную чушь. И умнее вас, между прочим, потому что я никогда таких дурацких вопросов бы не задал.

3. Какую зарплату вы хотели бы получать?
- 2,5 млн. $ в год, как президент США. Что за вопрос? Естественно, я хочу получать настолько высокую зарплату, насколько вы сможете мне заплатить. Только ведь вы всё равно не заплатите. Тогда нечего и выпендриваться. Всё равно выбор за мной: вы говорите цену, я говорю - согласен или нет.

4. Почему вы ушли с предыдущего места работы?
- Предположим, отвечу честно: маленькая зарплата или отсутствие карьерного роста, или бесперспективность, или не сошелся с коллективом, или не понравился собаке начальника. И что? Вы же не знаете, сойдусь ли я с вашим начальником, коллективом и их собакой. И не узнаете, пока не попробуете.

5. Кем вы видите себя через 5 лет в нашей компании?
- Вот вам встречный вопрос: какие планы компании на ближайшие 5 лет? Нет таких? Так если вы сами не знаете, что с вами будет через 20 лет, будет ли компания и какую нишу она намеревается занять, то мне-то откуда это знать?

6. Какие у вас были достижения на предыдущем месте работы?
- А резюме недостаточно, значит. Ну хорошо. Я отлично работал и великолепно справлялся со своими обязанностями. Вот это - достижение! Я вас разочарую: при правильном руководстве и хорошей работе никаких достижений быть не должно! Работать надо, а не ерундой маяться и достижения достигать!

7. Каким бы вы хотели видеть своего начальника?
- Я бы хотел его не видеть. Серьезно, мне нет разницы как он выглядит. Главное, чтобы он был начальником: тем, кто может нормально и внятно сформулировать задачи. А в остальном, пусть хоть в красных труселях на белой капибаре разъезжает по офису.

8. Какие у вас есть достоинства?
- На гуслях я умею играть и плеваться на 15 метров в длину. Если вам нужна моя квалификация, то она указана в резюме. Если вам что-то нужно еще - то об этом и спросите. А если вы сами не знаете, чего вы хотите и что вам нужно, то тут, извините, ничем помочь не могу. Формулировать скрытые и неясные желания - это вам к психиатру нужно.

9. Каковы ваши недостатки?
- Хорошо тенором пою, соседи жалуются, а в консерватории сказали - талант. Вот еще: когда ем суп, зачерпываю ложкой к себе, а не от себя!

23 мая 2012 г.

roundcube - LDAP(AD) - фотография контактов

Сразу оговорюсь, у нас в AD включена поддержка unix services for windows. (кстати, очень сильно облегчает интеграцию с Linux машинами, без поднятия Samba&winbind).

Адресная книга, полученная из LDAP в roundcube интегрируется легко. Достаточно посмотреть закомментированный пример в конфигурационном файле. Но вот про получение фотографии из LDAP в конфиге примеров нет :(

Эта проблема решается следующим образом. Предположим что в LDAP за фото отвечает атрибут jpegPhoto. (хотя в AD есть еще и thumbnailPhoto)

В main.inc.php пишем:
'fieldmap' => array(
// Roundcube  => LDAP
...
'photo' => 'jpegPhoto',
...
),
Разумеется, вместо ... подразумеваются строки с другими параметрами.

З.Ы. А вот как брать фото в thunderbird я так и не нашел :(пичалька):

19 апреля 2012 г.

Microtik и VLAN

Столкнулся с проблемой, настраиваю VLAN а они не работают :( Причина была в slave интерфейсах.

interface ethernet print

Смотрим, что бы в столбце MASTER-PORT было значение none. Если там находится имя интерфейса, то нужно у этих интерфейсов установить его на none:

interface ethernet set ether3,ether4,ether5 master-port=none