Pull to refresh
8
0
Send message

Пряморукий DNS: делаем правильно

Reading time16 min
Views153K
Представляем вашему вниманию очень эмоциональный рассказ Льва Николаева (@maniaque) о том, как надо настраивать DNS и особенно, как делать не надо. Вот прямо после каждого пункта можете мысленно добавлять: «Пожалуйста, не делайте этого!» В своем докладе Лев так и говорит.

Статья будет состоять из трех частей:

1. Как сделать резольвер (unbound, bind)

Резольвер — это та штука, которую вы прописываете в настройках своей операционной системы, чтобы можно было превращать понятные человеку адреса типа ya.ru в непонятное 87.250.250.242.

2. Как держать зоны (PowerDNS)

Если вы уже доросли до этого, расскажем, как держать зону самостоятельно, как это делать хорошо и отказоустойчиво, и как это делать, если у вас несколько сотен доменов.

3. Как взболтать, но не смешивать (PowerDNS + unbound)


Total votes 45: ↑43 and ↓2+41
Comments38

История одного обновления. Миграция на Zabbix 5.0 LTS с минимальными потерями

Reading time6 min
Views6K
Привет!

Я Олег, системный администратор в команде Timeweb, и в этой статье я расскажу, как мы перешли на актуальную версию Zabbix с минимальным простоем без потери функциональности. Здесь будет описан наш опыт — опыт избавления инфраструктуры от неактуального ПО и последствий хардкода.


Обновить Zabbix или сохранить наработки? Вот в чем вопрос


Так уж сложилось, что сотрудники, ответственные за оперативное реагирование на проблемы, для наблюдения использовали один экран Zabbix с дополнительными самописными виджетами, захардкоженными в Zabbix GUI на PHP. Как, когда и почему это началось, история умалчивает… Часть данных запрашивалась из API Zabbix, часть — из сторонних систем. Всё это отображалось в виде таблицы. Кроме этого, существовала и вручную созданная таблица в базе Zabbix для хранения данных одного из виджетов.

Основной недостаток такого наслоения виджетов — невозможность обновить Zabbix на актуальные версии с сохранением наработок. Поэтому наше первое правило клуба при миграции в новый мониторинг и воспроизведении функционала, — отказ от модификации кода GUI Zabbix.

Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments0

Практика IPv6 — домашняя сеть

Reading time17 min
Views270K
Abstract: Рассказ про некоторые возможности IPv6 на примере конфигурации сложной домашней IPv6-сети. Включает в себя описания мультикаста, подробности настройки и отладки router advertisement, stateless DHCP и т.д. Описано для linux-системы. Помимо самой конфигурации мы внимательно обсудим некоторые понятия IPv6 в теоретическом плане, а так же некоторые приёмы при работе с IPv6.

Зачем IPv6?


Вполне понятный вопрос: почему я ношусь с IPv6 сейчас, когда от него сейчас нет практически никакой пользы?

Сейчас с IPv6 можно возиться совершенно безопасно, без каких-либо негативных последствий. Можно мирно разбираться в граблях и особенностях, иметь его неработающим месяцами и nobody cares. Я не планирую в свои старшие годы становиться зашоренным коболистом-консерватором, который всю жизнь писал кобол и больше ничего, и все новинки для него «чушь и ерунда». А вот мой досточтимый воображаемый конкурент, когда IPv6 станет продакт-реальностью, будет либо мне не конкурентом, либо мучительно и в состоянии дистресса разбираться с DAD, RA, temporary dynamic addresses и прочими странными вещами, которым посвящено 30+ RFC. А что IPv6 станет основным протоколом ещё при моей жизни — это очевидно, так как альтернатив нет (даже если бы они были, их внедрение — это количество усилий бОльшее, чем завершение внедрения IPv6, то есть любая альтернатива всегда будет отставать). И что адреса таки заканчиваются видно, по тому, как процесс управления ими перешёл во вторую стадию — стадию вторичного рынка. Когда свободные резервы спекуляций и хомячаяния адресов закончится, начнётся этап суровой консолидации — то есть выкидывание всего неважного с адресов, перенос всех «на один адрес» и т.д. Примерно в это время IPv6 начнёт использоваться для реальной работы.

Впрочем, рассказ не про будущее IPv6, а про практику работы с ним. В Санкт-Петербурге есть такой провайдер — Tierа. И я их домашний пользователь. Это один из немногих провайдеров, или, может быть, единственный в городе, кто предоставляет IPv6 домашним пользователям. Пользователю выделяется один IPv6 адрес (для маршрутизатора или компьютера), плюс /64 сетка для всего остального (то есть в четыре миллиарда раз больше адресов, чем всего IPv4 адресов быть может — и всё это в одни руки). Я попробую не просто описать «как настроить IPv6», но разобрать базовые понятия протокола на практических примерах с теоретическими вставками.

Структура сети:

(Оригиналы картинок: github.com/amarao/dia_schemes)
  • 1, 2, 3 — устройства в локальной сети, работают по WiFi
  • 4 — WiFi-роутер, принужденный к работе в роле access point (bridge), то есть коммутатора между WiFi и LAN
  • 5 — eth3 сетевой интерфейс, который раздаёт интернет в локальной сети
  • 6 — мой домашний компьютер (основной) — desunote.ru, который раздачей интернета и занимается, то есть работает маршрутизатором
  • 7 — eth2, интерфейс подключения к сети Tiera

Читать дальше →
Total votes 127: ↑124 and ↓3+121
Comments126

Demystifying Juniper's rib-groups

Reading time3 min
Views18K
Многие из моих знакомых не до конца понимаю механизм работы rib-groups внутри Juniper's JunOS. В данной статье я попробую наиболее просто объяснить, что же это такое — rib-groups, и зачем они нужны.
Подробности под катом.

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments5

Juniper routing instances

Reading time15 min
Views54K
Routing Instance – это совокупность таблиц маршрутизации, интерфейсов и параметров протоколов маршрутизации. Протоколы маршрутизации контролируют информацию в таблицах маршрутизации, причем в одной routing instance могут быть как IPv4, так и IPv6 маршруты одновременно, а так же несколько физических или логических интерфейсов. Один физический интерфейс, разбитый на несколько логических unit-ов (субинтерфейсов), может быть отнесен к разным routing instance (однако один и тот же unit (субинтерфейс) или, не разделенный на unit-ы, физический интерфейс, нельзя прикрепить к разным routing instance).

Routing instance — мощнейший инструмент операционной системы JunOS, позволяющий при совместном использовании c rib-groups, firewall filters и policy выполнить любую задачу. К сожалению, многие инженеры не знают о назначении большинства routing instances, кроме всем до боли знакомой VRF.

JunOS предоставляет нам большой выбор routing instance, доступных для конфигурирования:
routing-instances {
     routing-instance-name {
           interface interface-name;
           instance-type (forwarding | l2vpn | layer2-control | no-forwarding | virtual-router | virtual-switch | vpls | vrf);
     }
}

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

Как превратить две серверные стойки в сеть для десятков тысяч машин и не остаться в неоплатном техническом долгу

Reading time14 min
Views33K
Как и любое другое облако, Yandex.Cloud — это многослойная иерархия абстракций: SaaS, лежащий поверх PaaS, запущенный на IaaS. Связность виртуальной инфраструктуры обеспечивает виртуальная же сеть, которая является, по сути, оверлеем. И только в самой глубине этой системы обнаруживается физическая сеть из проводов и коммутаторов. Мало кто вспоминает о ней, пока всё работает. А меж тем она — кровеносная система всей платформы.

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



Мы практикуем следующий подход к созданию и развитию чего бы то ни было: прототип → минимально необходимая функциональность и масштаб → рост → эволюционное развитие. На первый взгляд он естественен и очевиден, в отличие от подхода «сделать сразу идеально и на века». На деле — требует вдумчивого предварительного планирования, чтобы потом не подставлять в горячке новые костыли под старые, пытаясь поспеть за внезапным ростом.
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments23

Еще один подход к построению архитектуры на фронте

Reading time11 min
Views9.3K

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

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

что такое архитектура и почему она должна быть чистая;

как написать архитектуру, которая основана на сервисах;

пример построения архитектуры для приложения заметок;

интеграция архитектуры с реактом.

Читать далее
Total votes 5: ↑4 and ↓1+6
Comments20

Из грязи в RPKI-князи-1. Подключаем валидацию маршрутов в ВGP

Reading time6 min
Views5.2K

Привет! Я работаю старшим сетевым инженером в компании DataLine, занимаюсь сетями с 2009 года и успел со стороны понаблюдать, как компании подвергались атакам из-за уязвимости протокола маршрутизации BGP. Один BGP Hijacking чего стоит: пару лет назад хакеры с помощью перехвата BGP-маршрутов украли 137 тыс. долларов.

С переходом на удаленку компании организуют доступ из дома через защищенные соединения с помощью NGFW, IPS/IDS, WAF и прочих решений. Но про безопасность BGP порой забывают. Я расскажу в цикле статей, как каждый клиент сервис-провайдера может обезопасить себя с помощью RPKI – средства защиты глобальной маршрутизации в сети Интернет.  В первой статье на примере объясню, как это работает и как настроить защиту на стороне клиента в пару кликов. Во второй – поделюсь опытом внедрения RPKI в BGP на примере маршрутизаторов Cisco. 

При чем тут холодильник
Total votes 13: ↑13 and ↓0+13
Comments0

Сеть, которая лечит себя сама: магия Flow Label и детектив вокруг ядра Linux. Доклад Яндекса

Reading time12 min
Views9K
В современных дата-центрах установлены сотни активных устройств, покрытых разными видами мониторингов. Но даже идеальный инженер с идеальным мониторингом в руках сможет правильно отреагировать на сетевой сбой лишь за несколько минут. В докладе на конференции Next Hop 2020 я представил методологию дизайна сети ДЦ, у которой есть уникальная особенность — дата-центр лечит себя сам за миллисекунды. Точнее, инженер спокойно чинит проблему, в то время как сервисы ее просто не замечают.

— Для начала я дам достаточно подробную вводную для тех, кто, может быть, не в курсе устройства современного ДЦ.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments10

Введение в сетевую часть облачной инфраструктуры

Reading time74 min
Views37K


Облачные вычисления все глубже и глубже проникают в нашу жизнь и уже наверно нет ни одного человека, который хотя бы раз не пользовался какими либо облачными сервисами. Однако что же такое облако и как оно работает в большинстве своем мало кто знает даже на уровне идеи. 5G становится уже реальностью и телеком инфраструктура начинает переходить от столбовых решений к облачным решениями, как когда переходила от полностью железных решений к виртуализированным «столбам».

Сегодня поговорим о внутреннем мире облачной инфраструктуре, в частности разберем основы сетевой части.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments12

Пишем веб сервис на Python с помощью FastAPI

Reading time17 min
Views122K
image

Знаю, знаю, наверное вы сейчас думаете «что, опять?!».

Да, на Хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД.
Читать дальше →
Total votes 21: ↑20 and ↓1+22
Comments27

Централизованное обновление сертификатов Let's Encrypt

Reading time3 min
Views17K

letsencrupt server


Всем привет!


В этой статье я опишу как мы решали проблему централизованного обновления сертификатов Let's Encrypt и управления инфраструктурой с помощью ansible.


В нашем решении мы будем использовать:


  • ansible
  • rsync, rsyncd
  • inotify, incron
  • certbot
  • nginx
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments16
Привет, мы Datana! За последние два года мы ушли от работы с госзаказчиком в промышленность. Начали с наивной гипотезы, но увлеклись, погрузились с головой в металлургию и теперь не видим своего будущего без работы на реальном рынке. Сегодня мы ищем пути оптимизации производства с помощью инструментов Индустрии 4.0 (искусственного интеллекта, IIOT, дронов и т.д.) и точно знаем, зачем IT-шнику учить химию и кому после вуза еще потребуется высшая математика. Сегодня расскажем, как мы к этому пришли.
Читать далее
Total votes 24: ↑22 and ↓2+38
Comments33

Аутентификация на сетевом оборудовании через SSH с помощью публичных ключей

Reading time15 min
Views40K
Связка ключей

По умолчанию инженеры подключаются к сетевому оборудованию с помощью имени пользователя и пароля. По протоколу Telnet учетные данные пользователя передаются в открытом виде, а по протоколу SSH в зашифрованном. Чтобы не передавать секретную часть по сети, используется аутентификация по публичным ключам. При такой аутентификации публичный ключ пользователя заранее прописывается пользователю на оборудовании. Секретный ключ по сети не передается.

Это руководство поможет вам быстро начать использовать публичные ключи для аутентификации при подключении к сетевому оборудованию по протоколу SSH. Руководство применимо как для Windows, так и для Mac OS X. Я постарался сделать его максимально простым и информативным. Оно не перегружено, но отвечает на основные вопросы:


Читать дальше →
Total votes 10: ↑9 and ↓1+12
Comments3

Использование партиционирования в MySQL для Zabbix с большим количеством объектов мониторинга

Reading time7 min
Views11K
Для мониторинга серверов и служб у нас давно, и все еще успешно, используется комбинированное решение на базе Nagios и Munin. Однако эта связка имеет ряд недостатков, поэтому мы, как и многие, активно эксплуатируем Zabbix. В этой статье мы расскажем о том, как минимальными усилиями можно решить проблему с производительностью при увеличении числа снимаемых метрик и росте объемов БД MySQL
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments11

Многопоточность на Node.js. Event Loop

Reading time8 min
Views73K

Инфа будет полезна JS-разработчикам, которые хотят глубоко понимать суть работы с Node.js и Event Loop. Вы сможете осознанно и более гибко управлять потоком выполнения программы (web-сервера).


Эту статью я составил по материалам своего недавнего доклада для коллег.
В конце статьи есть полезные материалы для самостоятельного изучения.


Как устроена Node.js. Возможности асинхрона


Давайте посмотрим на этот код: он отлично демонстрирует синхронность выполнения кода в Node.js. Делается запрос на GitHub, затем записываем данные в файл и выводим результат в консоли. Что понятно из этого синхронного кода?


image

Читать дальше →
Total votes 14: ↑13 and ↓1+15
Comments17

Как дебажить переменные окружения в Linux

Reading time4 min
Views29K
Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что делать? 

У меня есть ответы на эти вопросы.

Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments22

Изучаем Docker, часть 1: основы

Reading time6 min
Views606K
Технологии контейнеризации приложений нашли широкое применение в сферах разработки ПО и анализа данных. Эти технологии помогают сделать приложения более безопасными, облегчают их развёртывание и улучшают возможности по их масштабированию. Рост и развитие технологий контейнеризации можно считать одним из важнейших трендов современности.

Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными

image

Если вы пока не знаете о том, что такое Docker, сейчас у вас есть шанс сделать первый шаг к пониманию этой платформы. А именно, освоив этот материал, вы разберётесь с основами Docker и попутно приготовите пиццу.
Читать дальше →
Total votes 62: ↑52 and ↓10+42
Comments26

Делаем современное веб-приложение с нуля

Reading time31 min
Views153K
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →
Total votes 64: ↑56 and ↓8+48
Comments125

Batfish. Введение

Reading time11 min
Views14K
image

Одной из проблем современных сетей является их хрупкость. Множество правил фильтраций, политик обмена маршрутной информации, протоколов динамического роутинга делают сети запутанными и подверженными влиянию человеческого фактора. Авария на сети может произойти ненамеренно при внесении изменений в route-map или ACL (один, два). Нам определено не хватает инструмента, позволяющего оценить поведение сети с новой конфигурацией перед внесением изменений в продакшн. Хочется точно знать, будет ли мне доступна сеть A, если я отфильтрую часть BGP-анонсов, полученных от провайдера B? Каким маршрутом пойдут пакеты из сети C к серверу D, если на одном из транзитных линков я увеличу IGP метрику в два раза? Ответить на эти и многие другие вопросы нам поможет Batfish!
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments4

Information

Rating
Does not participate
Registered
Activity