В этом году в апреле на IETF Meeting 95 был представлен драфт, в создании которого я принимал участие. Этот драфт – предложение Qrator Labs по улучшению стандарта протокола BGP для обнаружения и устранения route leaks («утечки» маршрутов, далее – лики). Эта сетевая аномалия возникает, когда маршрут анонсируется с нарушением политик маршрутизации. В результате могут значительно увеличиться сетевые задержки, а помимо этого данный механизм может быть использован для организации атак MitM (Man in the Middle) или DoS (Denial of Service). Про IETF (Internet Engineering Task Force) не так давно писал на хабре мой коллега и соавтор данного драфта.
Главной идеей предлагаемого решения стало добавление информации о типе взаимосвязи между BGP-соседями непосредственно в их конфигурации с верификацией этих настроек через handshake в сообщении OPEN. Мы хотим, чтобы только на основании этой настройки (которая показывает, является ли оператор клиентом, пиром или поставщиком для своего соседа) можно было как избежать ликов внутри отдельной автономной системы, так и обнаруживать лики, сделанные другими операторами связи в Интернете. Описание нашей идеи с картинками можно посмотреть здесь.
Я оказался соавтором этого драфта практически случайно, в основном благодаря тому, что примерно за год до этого познакомился с компанией Qrator Labs на Дне карьеры в МГУ. Далее я расскажу, как это случилось.
Типичный День карьеры на ВМК.
Честно говоря, мало кто ходит (по крайней мере среди моих знакомых) на такие мероприятия с целью получить работу – такое бывает редко. Скорее, Дни карьеры полезны для того, чтобы изучить рынок труда: посмотреть на компании, которым нужны новые сотрудники; на направления бизнеса, которые активно развиваются; на востребованные вакансии; собрать полную коллекцию из халявных кружек, ручек и блокнотов. На первых курсах не особенно хорошо понимаешь, чего хочешь. Многие мечтают работать в «Рога и копыта» (вставьте сюда название любой международной компании, которая на слуху), а они в подобных мероприятиях обычно не участвуют.
На старших курсах отношение меняется: студенты ходят по стендам и оставляют заявки почти всем подряд – просто так, на всякий случай. В основном поэтому я подавал свои контакты без особой надежды, оставив их в том числе и на стенде компании Qrator Labs. В тот момент я заканчивал бакалавриат (факультет ВМК, кафедра АСВК) и немного интересовался DDoS-атаками и способами их организации противодействия им (даже написал курсач по этой теме, поэтому мое внимание и привлек стенд Qrator Labs с большой надписью про DDoS). На мое удивление, мне довольно быстро перезвонили. Но в тот момент я не мог выйти на работу, потому что доделывал бакалаврский диплом. Меня согласились подождать, и уже в июне я вышел на стажировку.
Фотография со стенда. Почти все оказалось правдой.
Если говорить про условия работы, то в прошлом году осенью (после испытательного срока) меня приняли на полставки, поэтому весь год я мог без проблем совмещать учебу на дневном отделении и работу. До сих пор у меня свободный график, в среднем прихожу в офис где-то раза 3 в неделю. Начало и, соответственно, конец рабочего дня не нормированы, что для меня также немаловажно. Компании гораздо важнее, чтобы сотрудники получали результаты, чем просиживали свое время в офисе, поэтому также есть возможность и для удаленной работы.
Сначала мне дали пробный проект, связанный с сертификатами X.509. Довольно быстро я понял, что лично для меня гораздо больший интерес представляют задачи мониторинга и поиска аномалий. Нашелся проект, который отражал мои желания, а именно Qrator.Radar, в рамках которого идет большая работа по исследованию междоменной маршрутизации. Также повезло и с тем, что компания лояльно относится к возможности перехода между проектами и отделами, считая главным, чтобы ты занимался интересными для тебя задачами. Первый исследовательский проект как раз и был связан с route leaks. Вместе с руководителем проекта Qrator.Radar, Александром Азимовым, мы разработали нулевую версию драфта, я сделал реализацию на BIRD, и мы проверили, что наша идея действительно работает. Саша поехал от нашей команды на RIPE и презентовал нашу идею в рамках Routing WG (work group). После этой презентации у нас появился еще один соавтор – Randy Bush. С его помощью мы подготовили текст нового драфта и представили его на IETF в Буэнос-Айресе. Наша идея получила на тот момент довольно много хороших откликов. В основном звучало: да, задача важная; да, решение вроде рабочее; необходимо дальнейшее обсуждение и адаптация в рабочую группу.
Основная проблема на пути этого драфта – существование конкурирующего решения от NIST (National Institute of Standards and Technology), которое появилось чуть раньше, и уже к моменту нашей презентации было принято на рассмотрение в WG (хотя оно и не покрывает все возможные случаи). Но это не повод для остановки: наш документ прошел глобальную ревизию, и мы планируем представить новую версию на следующем IETF в Сеуле.
Сейчас, помимо данного проекта, я участвую в разработке решения для обнаружения и фильтрации пакетов с подмененными IP-адресами (спуфинг) на уровне транзитных операторов связи. Мы не первые, кто пытается решить эту задачу: первой попыткой был BCP 38, но это решение не масштабируемо, второй – динамические фильтры RPF (BCP 84), но они привязаны к таблице маршрутизации BGP и по факту не могут работать из-за асимметричности маршрутизации на уровне транзитных операторов. Наша идея основана на дальнейшем использовании инфраструктуры ролей, в данный момент мы находимся на стадии тестирования прототипа.
Выводы
Вопреки моим ожиданиям (которые начали складываться еще с первого курса, когда тебе компании отказывают только из-за того, что ты на младших курсах), День карьеры оказался не таким уж и бесполезным мероприятием. Не стоит бояться подходить к заинтересовавшим вас стендам и задавать вопросы, даже если у вас нет опыта или достаточных знаний. Обычно на таких мероприятиях ищут перспективных стажеров, которых можно обучить, или готовых обучаться самостоятельно.
И, заканчивая бакалавриат, я уж тем более не ожидал, что в России есть компании, в которых можно заниматься не просто «написанием кода», а прикольным ресерчем, решая интересные актуальные задачи, участвуя и просматривая материалы топ-конференций, проводя время за анализом существующих решений и попытками создать что-то свое. И уж точно не стоит недооценивать компании только потому, что они вам неизвестны. На мой взгляд, небольшие компании гораздо сильнее заинтересованы в профессиональном росте своих сотрудников, чем всем известные корпорации Добра и Зла.
Автор: Qrator Labs