Описание:
Группа кластерных решений отдела сервисных маршрутизаторов ESR ищет разработчика. Наша команда занимается разработкой кластера сервисных маршрутизаторов ESR. Кластер ESR - высокопроизводительный программно-аппаратный комплекс, позволяющий объединить несколько сервисных маршрутизаторов ESR в одно логическое устройство. Он имеет пропускную способность с верхним пределом, превышающим пропускную способность самого мощного из маршрутизаторов ESR. Чем предстоит заниматься: Проектирование, сборка, конфигурирование и отладка сложных сетевых схем более, чем из 10 устройств (маршрутизаторы ESR, коммутаторы MES). Написание программного обеспечения для маршрутизаторов ESR. Программное обеспечение, которым мы занимаемся: Linux userspace приложения (демоны), библиотеки, утилиты - основная часть работы. Драйвера устройств, модули ядра - реже, но занимаемся. Начальные загрузчики устройства - реже, но занимаемся. Функционал нашего программного обеспечения: Конфигурирование и управление группой устройств как одним устройством через единый командный интерфейс. Обработка пакетов и балансировка трафика между узлами кластера. Масштабирование производительности за счет автоматического добавления устройств в кластер. Резервирование всех элементов, автоматическое перераспределение функциональности в кластере в случае выхода из строя какого-либо устройства, линка и т.д. Сервисы, которые предоставляет маршрутизатор ESR сам по себе (не в кластере): BRAS, NAT, Firewall, IPS/IDS и множество других. Что требуется от кандидата: Программирование: Язык программирования C на уровне не ниже middle. Иногда bash. Знание структур данных и алгоритмов. Опыт разработки многопоточных приложений на языке C. Опыт разработки сетевых приложений. Опыт разработки модулей ядра Linux будет плюсом. Опыт использования XML/JSON. Linux: Знание основных команд для работы с файлами, процессами и т.д. Знание основных утилит для диагностики: ps, top, free, netstat, ss, lsof и т.д. Настройка и диагностика сети: iproute2, tcpdump. Понимание системных вызовов, процессов, потоков, IPC. Сети: Понимание принципов работы L3 и L2 сетей, OSI, TCP/IP. Опыт работы с сетевым оборудованием, конфигурирования, отладки сетевых схем. Опыт работы с wireshark, tcpdump. Знание сетевых протоколов и функционала сетевых устройств: каждый день работаем с BGP, VRF Lite, VRRP, VLAN, QinQ, SNMP, DHCP, ICMP, RADIUS, GRE и т.д. Инструменты разработки: Опыт работы с git (используем Gitlab). Redmine. Большим плюсом будет опыт работы с сетевым стеком Linux, DPDK, XDP, netmap, и всем, что связано с обработкой сетевых пакетов.
Мы предлагаем:
Интересные задачи, амбициозные цели и возможность стоять у истоков нового проекта; Возможность обмена опытом со специ