Pull to refresh
@Wexterread⁠-⁠only

User

Send message

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

Reading time19 min
Views37K

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

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

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

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

Начать погружение
Total votes 223: ↑222 and ↓1+221
Comments61

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

Level of difficultyEasy
Reading time3 min
Views40K

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

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

Reading time15 min
Views10K

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

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

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

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments54

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

Reading time16 min
Views7.2K

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

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

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

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

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

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

Интересно? Добро пожаловать под кат.
Total votes 28: ↑28 and ↓0+28
Comments15

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

Level of difficultyHard
Reading time48 min
Views132K



Введение


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


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


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


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

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

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

Reading time15 min
Views15K


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

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

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

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

Level of difficultyMedium
Reading time12 min
Views21K

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

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

Это присказка, не сказка. Сказка впереди
Total votes 58: ↑57 and ↓1+56
Comments23

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

Level of difficultyHard
Reading time14 min
Views12K
Хотя индустрия кибербезопасности в основном сфокусирована на атаках на программное обеспечение, не стоит забывать о влиянии на безопасность аппаратных дефектов более низкого уровня, например, тех, которые касаются полупроводников. За последние несколько лет площадь атаки на уровне кремния сильно расширилась. Так как в производстве интегральных схем (ИС) используется всё более сложная микроэлектроника, риски проникновения дефектов в эти системы возрастают.


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

В этой статье мы расскажем об аппаратных троянах, в том числе о списках соединений, подготовке кристаллов, снимках электронных микроскопов и тестировании цепей. Также мы создадим собственную архитектуру и схему аппаратного трояна, которая будет проанализирована при помощи Klayout.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments17

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

Level of difficultyEasy
Reading time10 min
Views3.2K
Результат 10-тилетних попыток Минцифры изобрести стандарт доступности веб-контента для госсектора укладывается в 3 абзаца корявого текста. Как гора рожала мышь и каковы ее творческие планы на ближайшее будущее?


Минцифры изучает проблематику обеспечения доступности контента для инвалидов по зрению.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments4

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

Level of difficultyMedium
Reading time21 min
Views14K

Введение


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

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

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать дальше →
Total votes 78: ↑77 and ↓1+76
Comments10

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

Level of difficultyMedium
Reading time17 min
Views44K

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

Что означает 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 существует проверка:

Читать далее
Total votes 81: ↑81 and ↓0+81
Comments9

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

Reading time66 min
Views171K
СДСМ-15. Про QoS. Теперь с возможностью Pull Request'ов.

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

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

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

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

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

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

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

Reading time38 min
Views94K
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. Путешествие длиною в жизнь

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

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

Reading time4 min
Views8.8K
В предыдущей статье мы говорили о сокращении задержки в трансляции видео. С отправкой разобрались, теперь поговорим о доставке.


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

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

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

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

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

Reading time20 min
Views25K


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


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

image

Я расскажу про дизайн этой системы, которая хранит и отдает фотки в целом, и приведу на нее взгляд с точки зрения разработчика. О том, как она развивалась, будет краткая ретроспектива, где я основные вехи обозначу, но уже более подробно буду говорить только о тех решениях, которые мы сейчас используем.
Total votes 31: ↑29 and ↓2+27
Comments38

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

Reading time19 min
Views35K
Перевод статьи Avery Pennarun, одного из сотрудников Google, о том, почему современный интернет такой, какой он есть, об истории и предпосылках создания IPv6, а также о том, как был бы устроен идеальный протокол IPv6, почему это не так и как можно к этому идеалу приблизиться.
Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments59

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

Reading time11 min
Views87K


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


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

Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments92

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

Reading time5 min
Views15K
У некоторых людей интересные истории начинаются с приёма жидкостей с содержанием алкоголя. У некоторых с чего-то покрепче… У меня, как у истинного представителя мира IT, история началась… С отключения интернета. Конечно можно было пойти простым путём для решения проблемы, и просто заплатить, но ведь это не истинный путь самурая? Много больших скриншотов
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments32

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

Reading time48 min
Views158K
Долго ли коротко ли, но шестерни в очередной раз провернулись и linkmeup встал на ступень Tier 2. И несколько достаточной платёжоспособности энтерпрайзов проявили заинтересованность в организации связи между своими филиалами через сети linkmeup.

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

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

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

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

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


Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments20

Information

Rating
Does not participate
Location
Псков, Псковская обл., Россия
Registered
Activity

Specialization

Backend Developer, DevOps