Skurudo Blog(post)

Заметки и замечания, рассказы и пересказы.

Ошибки lasmod в sitemap

В Эгея версии 2.8 появился свой sitemap и вроде как стало не нужно использовать костыли для его генерации, но в нем был недостаток, а именно формат даты в lastmod. На него ругался в частности валидатор от Яндекса, что довольно сильно расстраивало.

Исправить поведение довольно не сложно — было сделано на версии 3387 (e2_distr_v3387). Нужно слегка отредактировать system/core.php и искать такую конструкцию (она встречается дважды):

echo '<lastmod>';'

Конструкцию со временем менять на вот такую:

('Y-m-d\TH:i:s+03:00'

При этом не забываем обнулить user/caches.

Обратите внимание на то, что у нас появился разделитель «Т» — в коде соответcвенно «\Т», а также смещение времени по UTC — для Москвы это +03:00. Делается это в соответствии с W3C Datetime (Complete date plus hours and minutes: YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)).

Обратите внимание на выделенные части:

Результат:

PS: Проблема была как минимум до альфы-беты 2.9, в ней дату упростили, оставив по стандарту только дату без учета времени, т. е. в таком виде 2020-02-07). Проверялось на версии v3543.

Gooooogle Girl

Gooooogle Girl — милый такой клип от MAD SHOW BOYS, не настолько токсичный как Google that shit! от Тарин Саутерн .

Сетевые технологии по версии «за щекой»

Доходчиво и понятно, какая из технологий как работает:

UDP: Кинул тебе за щеку
ТСР: Кинул тебе за щеку, проверяй
SNMP: Щас посмотрим, кто тебе за щеку пихал.
POP3: Вам письмо за щеку
IEEE 802.11: Радио «За щеку FM»
P2P: Давай сейчас я кину тебе за щеку, а потом ты мне
SIP: Давай послушаем, как тебе за щеку кинут
IPv6: Сейчас тебе за щеку прилетит, только будет длиннее обычного, приготовься
IRC: Давай дед тебе за щеку кинет
Ethernet: И еще 15 способов кинуть тебе за щеку
ARP: Кто знает этого, которому можно кинуть за щеку?
ICMP: Кинул тебе за щеку, ДОШЛО?
IGMP JOIN: Будьте добры, киньте мне тоже за щеку
NTP: Кажется, пришло время принять за щеку
SSH: Дам тебе за щеку, только никому не говори
MTU/MRU: Кинул тебе за ще
RIP: За щеку могут дать вот там, но их надо ещё попросить, они большие шишки
OSPF: За щеку дают там
BGP: Передайте за щеку всей маршрутке!
STP: Здесь только я могу тебе за щеку напихать
LACP: Ща кинем хэш-функцию, она укажет того, кто тебе напихает за щеку.
LLDP: За щеку тебе может напихать этот, вот тот и тот. Два из них твои соседи.
PBR: Это Олег, он из другого города, но он напихает тебе за щеку
QoS: Я напихаю тебе за щеку, но сначала мы подождем моего друга
DHCP: Что? Хочешь, чтобы я тебе за щеку напихал?
802.3ad: Кинул тебе за обе щеки
802.5: Кинул тебе за щёку, передай дальше
VRRP: Ты никогда не узнаешь кому из близняшек ты кинул за щеку
BFD: Кинул за щеку и тебе откусили
ACL: Кину за щеку после свадьбы
DNS: Спроси у меня, как зовут того, кто кинул тебе за щеку
WebSocket: Лови за щеку, лови за щеку, лови за щеку
amqp: Встаньте в очередь для получения за щеку
Graphana: Здесь ты можешь посмотреть как, кто, с какой скоростью и длиной давал тебе за щеку
Proxy: Надену карнавальный костюм и кину за щеку
VPN: Дам за щеку, но только у тебя дома
MQTT: Здрасьте, кто тут на за щеку подписывался? Принимай!
TOKEN RING: Чья сейчас очередь принимать за щеку?

Оригинал, насколько я смог установить — i_am_romochka

Сравнение значений в скриптах

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

Не правильно
$Installed < $Latest

Правильно
$Installed != $Latest

Например мы сравниванием версии 6.45.6 (Installed) и 6.46 (Latest). Получается, что Mikrotik берет значение как число и выходит, что 646 (Latest) никак не может быть больше 6.45.6 (Installed) . В итоге неправильное сравнение больше-меньше конечно будет работать, но не во всех случаях. Для обеспечения универсальности лучше использовать сравнение. Иными словами, если у нас есть различия в версии, то явно нужно обновляться.

Обновление через CAPsMAN

Mikrotik обновляется и обновляет прошивку на точках доступа, если включена политика Upgrade policy — require-same-version. Скачивать прошивку не обязательно. Единственный нюанс — работает только для одной и той же архитектуры, например ARM. Дополнительно скачивать прошивку не нужно. Если к CAPsMAN подключены точки доступа с разной архитектурой процессора, то неизбежно нужно выкладывать прошику и задавать каталог для нее в CAP Interface -> Manager -> Package Path.

К примеру у нас RB3011 или RB4011 с архитектурой ARM, а к ним HAP AC2 и/или CAP AC с той же самой архитектурой и таким образом мы можем обновлять весь парк без каких-либо дополнительных телодвижений. Естественно это не касается Routherboard Firmware.

Видео об этом чудесной вещи:

Сказка про то, что капсман не работает с точками не различающимися версиями уже какое-то время сказка, но не совсем. Все зависит от политики Upgrade policy — если требуется та же версия, то точки с другой версией и правда не смогут подключиться. А вот при Upgrade policy в значении none — смогут и это даже будет работать. Подозреваю сложности могут начаться в том случае, если вдруг обновятся частоты и значения будут разные. Но это тоже такое... не слишком частое явление.

Дважды MTCNA

Ходит много разных разговоров на тему — стоит ли получать вендорские сертификаты. С одной стороны выходит, что работая с оборудованием, можно научиться всему самостоятельно. Конечно это займет определенное время, усилия, потребует самоотверженности и жертв в виде времени. Но есть более экономный в плане затрат времени путь — обучение и последующая сертификация. Из минусов этого пути — денежные затраты. А в остальном плюсы в виде структурированной подачи материала, ответы на интересующие вопросы от квалифицированного тренера и при успешной сдаче экзамена — подтверждающий обучение и статус сертификат. В случае с сертификацией Mikrotik дается еще и лицензия четвертого уровня.

Год назад я уже проходил обучение и добился сравнительно неплохого результата. Курс мне читал Роман Козлов из IntegraSky. В прошлый раз я набрал 85%, что по моему мнению соответствует четверке. То есть все, что ниже 90% — это какие-то неправильные ответы и по-моему в пяти бальной системе квалифицируется именно так. К слову сказать, это был второй результат в группе. Но предела совершенству нет и мне представилась возможность улучшить свои результаты и продлить сертификат, пройдя обучение и экзамен повторно.

В этом году курс слушал у Дмитрия Скоромнова из Курсы-по-ИТ.рф Vetriks. Он также известен как создатель альтернативных онлайн курсов по Mikrotik, довольно таки подробных. По ним я знакомился с оборудованием, разбирал программу, готовился к реальным курсам. Плюс в том, что сейчас они у меня тоже есть, что огромный плюс — всегда можно вернуться и пересмотреть какие-то моменты. В этом году Дмитрий стал сертифицированным тренером и официально читает как минимум программу по MTCNA.

Курс MTCNA мы слушали в районе Таганки (или Марксистской), в нескольких минутах от метро. Расположение крайне удачное. Помню в прошлый раз ездил на Окружную, что несколько дальше от центра, и как по мне чуть менее удобно. В самом обучающем центре все выглядит свежим — второй этаж, столы, стулья и интернет, если потребуется. Извините за подробность, но и уютный туалет, где можно уединиться для размышлений. Что для меня важно — хорошее кондиционирование помещения при сравнительно компактном помещении. Есть такая особенность — при духоте очень уж в сон тянет. Учащиеся работают на своем оборудовании, здесь речь идет о ноутбуке, а роутер выдается на время обучения. Момент слегка спорный — раньше я думал, что прелесть в стационарных местах в обучающих центрах, но со временем привычка работать на своем оборудование, которое ты знаешь все-таки возобладала.

Как только мы открыли наши материалы, то на меня нахлынула ностальгия — «ба, да это же очень похоже на то, что у меня было». Именно тот самый курс от Дмитрия. Но пройдясь по нему и после, сравнив с тем, что давали у Романа, вынужден был для себя признать, что это было только первое впечатление. Материалы курса идут по программе курса, но вместе с тем полнее и новее. Дмитрий крайне дотошно относится к ним: делая пометки, постоянно актуализируя их, наполняет свежими скриншотами. Даже в процессе рассказа и в перерывах, можно было обратить внимание на тот или иной пункт, и быть уверенным, что его пояснят, внесут пометки и актуализируют. В процессе прохождения не возникает диссонанса, когда изображение и подписи к ним как-то не соответствуют. Объем материала определенно больше того, что дается в официальном курсе, но здесь у меня не было сомнений так как я видел подход к аналогичному его видеокурсу. Составлено качественно, как говорится — сделано с любовью.

Стоит подробнее остановиться на некоторых материалах курса по темам:

  • * Очень плотный модуль введения. Дело в том, что этот модуль обычно считают маловажным и проходят его быстро. Да, для тех, кто уже что-то делал с Mikrotik этот модуль может показаться несколько скучным, но именно здесь дается основной базис. Те, кто только начинает — по-моему бесценно. К примеру здесь же дается информация по набору пакетов и как бывает, когда на некоторых аппаратах не проходит обновление, поскольку памяти недостаточно. В этом же модуле подробно разбирается netinstall с лабораторной работой — эта часть мне была особенно интересна, потому что толком делал ее пару раз всего. На прошлом обучении тему посчитали не очень важной и потрогали ее вкратце, она совершенно не запомнилась. Здесь же есть рассказ о конфигурации по умолчанию, точнее дефолтной конфигурации — пожалуй частый вопрос о том, а как там посмотреть дефолтный firewall.
  • * Не менее подробно идет продолжение во втором модуле, который не просто рассказывает о наличии бриджа, но и об его особенностях. Здесь ни слова нет об устаревшем master/slave, что до сих пор можно увидеть в непереработанных материалах. С исторической точки зрения, наверное, знать об этом неплохо, но чисто с практической — нет.
  • * Подробная настройка DHCP из третьего модуля действительно подробная, что интересно, то во время прошлого обучения крайне рекомендовали минимизировать время на создание dhcp-сервера при помощи визарда. Признаться, я так им и пользовался постоянно. Но такой путь хоть и проще, хоть и быстрее — не самый лучший, так как не дает всестороннего понимания.
  • * Роутинг в четвертом модуле дается также полнее — рассматриваются флаги маршрутом, использование нескольких адресов и check gateway. Здесь я могу понять Романа, который читал курс, что это подробнее в MTCRE, но у Дмитрия просто больше материала плюс есть о check gateway сразу.
  • * Wireless — преимущественно похожий модуль, у Романа был небольшой экскурс в физику процесса (в частности про волны и зону Френеля), а у Дмитрия, не смотря на наличие чуть меньшей теории, модуль больше посвящен практике конкретно оборудовании Mirkotik. Здесь опять же тоже можно понять, так как модуль больше обзорный и есть более углубленный MTCWE.
  • * Вишенка в торте модуль про Firewall.. он не просто больше и подробнее, что описать в двух словах, наверное, не выйдет. Для глубокого понимания работы дается кое-что из курса по управлению трафика — это схемы прохождения трафика и их разбор. С ними все встает на свои места сразу. Рассмотрены типы файерволов. А также connection tracker и состояния соединений, о чем у Романа было все-таки меньше. Довольно таки большое количество примеров и пояснений. На что лично я обратил внимание — маскарад всегда и везде. Как-то после занятий с Романом у меня отложилась вот так эта тема, но говоря о NAT стоит понимать, что кроме него есть scr-nat и он не менее интересен и религиозно более верный (это как тема netmap vs dst-nat). Дмитрий как раз раскрывает и эту тему. Более подробно рассматриваются пользовательские цепочки, не смотря на то, что это все-таки из трафик контроля — другой курс, но на экзамене было нечто подобное — информация и примеры не помешали, а скорее помогли. Также у Дмитрия есть довольно подробные рекомендации по ошибкам в файерволе и рекомендации по проектированию.
  • * Модуль по QoS оказался также шире, чем прошлой программе обучения — больше примеров и более подробные объяснения на схеме прохождения пакетов. Видимо под влиянием курса по трафик контролю, у Дмитрия эта тема дается глубже.
  • * Два оставшихся модуля в списке по туннелям и последний обзорный модуль по tools таких ярких впечатлений уже не оставил. Видимо уже был измотан и ждал приближения неизбежного — экзамена :)

Лабораторные работы — та часть курса, без которой вся теория была бы бессмысленной. Помимо основной книжки с материалами, есть книга с работами. Они идут по порядку с темами курсов. Они в лучшую сторону отличаются от того, что я видел раньше. Нет работ из серии — «Смотри, как я делаю. А теперь повтори». Дается алгоритм выполнения — точное задание по пунктам, которое предстоит выполнить. Четкое ТЗ помогает делать лабораторные работы именно так, как это предусматривается программой. Уделяется внимание такой, казалось бы, простой вещи как netinstall. С виду простой, но далеко не все умеют его делать и не знают о подводных камнях. Есть групповые лабораторные работы, которые выполняются в паре. Этот момент мне понравился еще в прошлый раз у Романа — необычно и несколько развивает в плане дебага, когда правильно нужно чтобы было не только у тебя, но и у твоего партнера. Чего здесь не было, но эта штука мне показалась полезной в прошлый раз — рисование схем, то есть для понимания связей мы рисуем схему. Правда, у Дмитрия были более подробные задания в описаниях лабораторных работ и здесь это не потребовалось. В остальном лабораторки у Дмитрия сложнее, выполняются в среднем дольше (нет работ из серии «делай как я» или «запусти команду и посмотри»).

Оформление материалов хорошее, есть достаточное количество текста и иллюстраций. То чего так не хватало у Романа — есть поля для заметок. Нужно заметить, что там выдавали блокнот, но вот спустя год я помню, где лежат материалы, а где черт возьми этот блокнот? :) Единственное над чем стоит, наверное, немного поработать Дмитрию в плане улучшения — сшив материалов. Они идут на пружине и не слишком готовы к стрессу в виде изгиба, есть такой недостаток у  пластиковых пружин. Возможно перейти на металлические. Так они станут долговечнее и проживут дольше.

При сдаче экзамена соблюдались все необходимые правила — тренер не подсказывает, слушатели не общаются — все в полном порядке. Сдавать мне было немного страшновато, не очень люблю такие испытания. Волнение также было из-за того, что уверенность в том, что сдам у меня была, а вот сдам ли лучше — черт его знает. В отличии от Романа тестового экзамена нет, что вероятно и к лучшему. Помнится мне, тестовый экзамен я завалил и довольно сильно тогда, что меня сильно расстроило. Дмитрий же тестового экзамена не проводил, а больше ориентировал на внимательность при разборе вопросов, при ответе на вопросы и поясняя логику вопросов. После трехдневной сессии такой подход оказался даже лучше. В результате невнимательность почти полностью побеждена и я набрал 97% на экзамене, лучший результат в группе. Для себя считаю это очень хорошим результатом.

Скрипт для обновления AddressList

Соорудил скрипт для обновления адрес листа или листов более или менее автоматически. Давно хотел завести что-то подобное для автоматизации.

Первоначальная задумка:

  • * у нас удаленно лежит адрес лист (где-то на веб сервере);
  • * мы по расписанию (это шедулер) забираем его к себе (это фетч);
  • * далее смотрим не нулевой ли размер, если нулевой — то выходим (пока не сделано, проверка идет по наличию файла);
  • * если все в порядке, то очищаем существующий адрес лист, импортируем новый и удаляем файл;

Из ограничений:

  • * пока не умеем работать с динамическими записями и очищать их;
  • * список адресов — это по сути rsc;
  • * список адресов там пока жестко задан адрес лист (непонятно получится ли это обратить в динамичный выбор);

Ссылка на сам скрипт:
https://github.com/skurudo/mikrotik-alau

BatMetal

Прекрасная подборка видео от ArhyBES на тему вселенной Batman’a и смежных ребят :)

* BatMetal (Dethklok — Face Fisted)

* BatMetal Return (Dethklok — Murmaider)

* BatMetal Forever (Brendon Small — My Name Is Murder, Powerglove — Batman, Dethklok — Awaken)

Mikrotik: Начало

С оборудованием Mikrotik меня познакомил где-то полтора года назад один хороший камрад. Мол, отличная штука, говорит — полезно в хозяйстве очень хорошо идёт. Сперва открещивался, пока не очень была понятна логика и идеология работы с устройствами. Потому как логика весьма инженерная, после домашних или начальных офисных маршрутизаторов сразу во всем разобраться было не так просто. Но после посещения МУМ, послушав доклады, пообщавшись с адептами, почитав интернет стало весьма интригующе.

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

Устройства исключительно радуют стабильностью работы. Из серии — настроил, поставил, забыл. А поскольку они работают на единой операционной системе RouterOS на всех устройствах мы видим единообразие в настройках и меню. Грубо говоря, мы можем делать что-то или проводить эксперименты на самом дешёвом железе за 15 баксов и потом сразу пересесть на нечто на два порядка дороже — элементы управления и логика работы никак не поменяется.

За прошедший год удалось внедрить Mikrotik на нескольких объектах, что дало увеличение стабильности работы в первую очередь. А также смогло дать возможность оперативной диагностики доступности устройств и сети в целом.

PS: Тогда же, чуть больше года назад я получил свой первый официальный сертификат :-)

Ранее Ctrl + ↓