Как стать автором
Поиск
Написать публикацию
Обновить
-29
@Wexterread⁠-⁠only

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

Отправить сообщение

Что ты такое, dhclient?

Время на прочтение19 мин
Количество просмотров52K

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

И копать можно безгранично далеко. Но сегодня мы всё же поговорим о вещах более приземлённых и повседневных, которые лишь приоткрывают вход в эту разветвлённую сеть кроличьих нор. Мы разберём одну любопытную задачку, на примере которой ужаснёмся тому, как сложно может быть реализован такой простой протокол, как DHCP.

Начать погружение

Рег.ру объяснил обещание дать п***ы технической ошибкой

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров41K

В рамках проекта «Монитор госсайтов» мы изучаем сайты, обозначенные как сайты госорганов (кстати, очередной доклад по региональным госсайтам – уже через неделю), и регулярно проверяем, кто на самом деле является администратором соответствующих доменных имен. Например, администратором доменного имени сайта МВД мвд.рф еще в прошлом году было ФКУ «ГЦСиЗИ МВД РФ», а не просто МВД РФ, поэтому с точки зрения закона у Министерства внутренних дел Российской Федерации до недавнего времени просто не было официального сайта.
Читать дальше →

Физики смогли увидеть «ненаблюдаемый» квантовый переход

Время на прочтение15 мин
Количество просмотров12K

В 1935 году Альберт Эйнштейн и Эрвин Шрёдингер, два самых выдающихся физика того времени, вступили в спор о природе реальности.

Эйнштейн провёл математические расчёты и понял, что Вселенная должна быть локальной, то есть никакое событие в одном месте не может мгновенно повлиять на удалённое место. Но Шрёдингер провёл собственные расчёты и понял, что в основе квантовой механики лежит странная связь, которую он назвал «запутанностью» и которая, как оказалось, наносит удар по здравому эйнштейновскому предположению о локальности.

Когда две частицы становятся запутанными (что может произойти, например, при их столкновении), их судьбы оказываются связанными. Измерьте, например, ориентацию спина одной частицы, и вы можете узнать, что её запутанный партнёр (если и когда он будет измерен) указывает в противоположном направлении, независимо от его местонахождения. Таким образом, измерение в Пекине может мгновенно повлиять на эксперимент в Бруклине, что, очевидно, нарушает эйнштейновский закон о том, что никакое воздействие не может распространяться быстрее света.

Читать далее

DN42 — большая BGP-песочница

Время на прочтение16 мин
Количество просмотров8.9K

DN42 — это сеть из VPN‑туннелей с маршрутизацией по протоколу BGP. Участники устанавливают между соединения, используя различные туннельные технологии (Wireguard, OpenVPN, GRE, Tinc, ZeroTier и другие).

Зачем она нужна?

1. Можно поэкспериментировать и изучить технологии маршрутизации.

Основная польза от DN42 — это возможность получить опыт настройки туннелей и BGP‑соединений. Именно так работает маршрутизация в Интернет.

2. Можно узнать как устроен Интернет и почувствовать себя провайдером.

В DN42 есть регистр (registry), который очень схож с той же RIPE Database, набор внутренних сервисов и свой корневой домен.dn42 и корневые DNS‑сервера.

Интересно? Добро пожаловать под кат.

Как работает компьютер: глубокое погружение (на примере Linux)

Уровень сложностиСложный
Время на прочтение48 мин
Количество просмотров188K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


Наконец, я сломалась и начала это выяснять. Мне пришлось перелопатить тонны ресурсов разного качества и иногда противоречащих друг другу. Несколько недель исследований и почти 40 страниц заметок спустя я решила, что гораздо лучше понимаю, как работают компьютеры от запуска до выполнения программы. Я бы убила за статью, в которой объясняется все, что я узнала, поэтому я решила написать эту статью.


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


Более удобный формат статьи.

Читать дальше →

Почему здесь так жарко? Взламываем умный кондиционер

Время на прочтение15 мин
Количество просмотров18K


Многие производители кондиционеров сегодня выпускают устройства, которые можно подключать к Wi-Fi и управлять ими через приложение. Включение кондиционера и охлаждение воздуха дома, пока вы едете с работы — это настоящая мечта. Однако пользоваться приложениями производителей часто не так удобно, как более совершенным ПО для автоматизации дома, которое может интегрироваться с голосовыми помощниками Google и Amazon. Поэтому, когда один из нас переехал в квартиру с умным контроллером кондиционера, одной из приоритетных целей стал взлом этого устройства для работы с Home Assistant.

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

Читать дальше →

Сказ о том, как два сервера изменили судьбу сетевой команды

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров25K

Привет. Я Марат Сибгатулин — сетевик в Яндексе, работаю в команде Yandex Infrastructure. И сегодня я расскажу вам одну поучительную историю.

Жили были два сервера. Да и не сервера вовсе, а виртуальные машины. Жили не тужили, добро наживали, скриптами разными обрастали. Три года они трудились на славу облака да во имя автоматизации. Пока не наступили чёрные дни для RAID-массива на гипервизоре.

Это присказка, не сказка. Сказка впереди

Аппаратные трояны под микроскопом

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров13K
Хотя индустрия кибербезопасности в основном сфокусирована на атаках на программное обеспечение, не стоит забывать о влиянии на безопасность аппаратных дефектов более низкого уровня, например, тех, которые касаются полупроводников. За последние несколько лет площадь атаки на уровне кремния сильно расширилась. Так как в производстве интегральных схем (ИС) используется всё более сложная микроэлектроника, риски проникновения дефектов в эти системы возрастают.


Процесс проектирования интегральных схем (ИС)

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

Минцифры и очки

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.6K
Результат 10-тилетних попыток Минцифры изобрести стандарт доступности веб-контента для госсектора укладывается в 3 абзаца корявого текста. Как гора рожала мышь и каковы ее творческие планы на ближайшее будущее?


Минцифры изучает проблематику обеспечения доступности контента для инвалидов по зрению.
Читать дальше →

Пишем игру от первого лица в 2КБ на Rust

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров15K

Введение


Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.

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

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать дальше →

KVM: Что такое Kernel-based Virtual Machine?

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров75K

Начнем с простого вопроса:

Что означает QEMU/KVM или QEMU-KVM?

Можно ответить - это QEMU + KVM или qemu-system, запущенный с kvm в качестве ускорителя. Но в какой-то степени это еще и анахронизм, так как с появлением KVM его разработчики для интеграции с QEMU поддерживали отдельный форк qemu-kvm, но начиная с QEMU версии 1.3 (декабрь 2012) все основные изменения из qemu-kvm были перенесены в главную ветку QEMU, а qemu-kvm объявлен устаревшим.

В разных дистрибутивах до сих пор еще можно встретить исполняемый файл qemu-kvm или просто kvm, но это лишь обертки над qemu-system:

exec qemu-system-x86_64 -enable-kvm "$@"

или симлинки:

/usr/bin/kvm -> qemu-system-x86_64

А в самом qemu существует проверка:

Читать далее

Сети для самых матёрых. Часть пятнадцатая. QoS

Время на прочтение66 мин
Количество просмотров197K
СДСМ-15. Про QoS. Теперь с возможностью Pull Request'ов.

И вот мы дошли до темы QoS.

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

Это не какой-то магический архиватор, который ловко сожмёт трафик на лету и пропихнёт ваш гигабит в стомегабитный аплинк. QoS это про то как пожертвовать чем-то ненужным, впихивая невпихуемое в рамки дозволенного.

QoS настолько опутан аурой шаманизма и недоступности, что все молодые (и не только) инженеры стараются тщательно игнорировать его существование, считая, что достаточно закидать проблемы деньгами, и бесконечно расширяя линки. Правда пока они не осознают, что при таком подходе их неизбежно ждёт провал. Или бизнес начнёт задавать неудобные вопросы, или возникнет масса проблем, почти не связанных с шириной канала, зато прямо зависящих от эффективности его использования. Ага, VoIP активно машет ручкой из-за кулис, а мультикастовый трафик ехидно поглаживает вас по спинке.

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

Читать дальше →

Сети для самых маленьких. Часть четырнадцатая. Путь пакета

Время на прочтение38 мин
Количество просмотров104K
A forwarding entity always forwards packets in per-flow order to
zero, one or more of the forwarding entity’s own transmit interfaces
and never forwards a packet to the packet’s own receive interface.
Brian Petersen. Hardware Designed Network

Одно из удивительнейших достижений современности — это то, как, сидя в Норильске, человек может чатиться со своим другом в Таиланде, параллельно покупать билет на вечерний самолёт к нему, расплачиваясь банковской картой, в то время, как где-то в Штатах на виртуалочке его бот совершает сделки на бирже со скоростью, с которой его сын переключает вкладки, когда отец входит в комнату.

А через 10 минут он закажет такси через приложение на телефоне, и ему не придётся даже брать с собой в дорогу наличку.

В аэропорту он купит кофе, расплатившись часами, сделает видеозвонок дочери в Берлин, а потом запустит кинцо онлайн, чтобы скоротать час до посадки.

За это время тысячи MPLS-меток будут навешаны и сняты, миллионы обращений к различным таблицам произойдут, базовые станции сотовых сетей передадут гигабайты данных, миллиарды пакетов больших и малых в виде электронов и фотонов со скоростью света понесутся в ЦОДы по всему миру.

Это ли не электрическая магия?

В своём вояже к QoS, теме обещанной многократно, мы сделаем ещё один съезд. На этот раз обратимся к жизни пакета в оборудовании связи. Вскроем этот синий ящик и распотрошим его.


Кликабельно и увеличабельно.

Сегодня:


  1. Коротко о судьбе и пути пакета
  2. Плоскости (они же плейны): Forwarding/Data, Control, Management
  3. Кто как и зачем обрабатывает трафик
  4. Типы чипов: от CPU до ASIC'ов
  5. Аппаратная архитектура сетевого устройства
  6. Путешествие длиною в жизнь

Читать дальше →

Ой, у меня задержка. Часть 2

Время на прочтение4 мин
Количество просмотров9.2K
В предыдущей статье мы говорили о сокращении задержки в трансляции видео. С отправкой разобрались, теперь поговорим о доставке.


Читать дальше →

Рожденный перехватывать трафик

Время на прочтение3 мин
Количество просмотров28K
Новые интернет-провайдеры появляются буквально каждый день, и 12 декабря 2017 года не было исключением. Новичок в экосистеме междоменной маршрутизации, AS39523 (DV-LINK-AS), начала анонсировать собственное адресное пространство (один префикс), добавив к нему в то же время еще 80 чужих префиксов, принадлежащих как российским, так и международным контент-провайдерам, таким как Google, Facebook, Mail.ru, Vkontakte и многих других.

image
Инцидент длился более 2-х часов, начавшись в 4:44 по UTC с пиком в 80 префиксов, закончившись в 7:19 с еще одним пиком в районе 7:04 UTC.
Читать дальше →

Архитектура хранения и отдачи фотографий в Badoo

Время на прочтение20 мин
Количество просмотров25K


Артем Денисов ( bo0rsh201, Badoo)


Badoo — это крупнейший в мире сайт знакомств. На данный момент у нас зарегистрировано порядка 330 миллионов пользователей по всему миру. Но, что гораздо более важно в контексте нашего сегодняшнего разговора, — это то, что мы храним около 3 петабайт пользовательских фотографий. Каждый день наши пользователи заливают порядка 3,5 миллионов новых фотографий, и нагрузка на чтение составляет порядка 80 тысяч запросов в секунду. Это достаточно много для нашего бэкенда, и с этим иногда бывают трудности.

image

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

Мир, в котором IPv6 придуман хорошо

Время на прочтение19 мин
Количество просмотров35K
Перевод статьи Avery Pennarun, одного из сотрудников Google, о том, почему современный интернет такой, какой он есть, об истории и предпосылках создания IPv6, а также о том, как был бы устроен идеальный протокол IPv6, почему это не так и как можно к этому идеалу приблизиться.
Читать дальше →

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%

Время на прочтение11 мин
Количество просмотров95K


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.


Также вы узнаете почему 100% по тестам — не всегда хорошо в реальности.

Читать дальше →

Пятничный формат: VPN через… Jabber?

Время на прочтение5 мин
Количество просмотров16K
У некоторых людей интересные истории начинаются с приёма жидкостей с содержанием алкоголя. У некоторых с чего-то покрепче… У меня, как у истинного представителя мира IT, история началась… С отключения интернета. Конечно можно было пойти простым путём для решения проблемы, и просто заплатить, но ведь это не истинный путь самурая? Много больших скриншотов
Читать дальше →

Сети для самых матёрых. Часть двенадцатая. MPLS L2VPN

Время на прочтение48 мин
Количество просмотров174K
Долго ли коротко ли, но шестерни в очередной раз провернулись и linkmeup встал на ступень Tier 2. И несколько достаточной платёжоспособности энтерпрайзов проявили заинтересованность в организации связи между своими филиалами через сети linkmeup.

L3VPN, который мы рассмотрели в прошлом выпуске, покрывает собой огромное количество сценариев, необходимых большинству заказчиков. Огромное, но не все. Он позволяет осуществлять связь только на сетевом уровне и только для одного протокола — IP. Как быть с данными телеметрии, например, или трафиком от базовых станций, работающих через интерфейс E1? Существуют также сервисы, которые используют Ethernet, но тоже требуют связи на канальном уровне. Опять же ЦОДы между собой любят на языке L2 общаться.

Вот и нашим клиентам вынь да положь L2.

Традиционно раньше всё было просто: L2TP, PPTP да и всё по большому счёту. Ну в GRE ещё можно было спрятать Ethernet. Для всего прочего строили отдельные сети, вели выделенные линии ценою в танк (ежемесячно).

Однако в наш век конвергентных сетей, распределённых ЦОДов и международных компаний это не выход, и на рынок выплеснулось некоторое количество масштабируемых технологий випиэнирования на канальном уровне.

Мы же в этот раз сосредоточимся на MPLS L2VPN.


Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Псков, Псковская обл., Россия
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, DevOps-инженер