Москва, Россия, 10 сентября 2019 года. Компания D-Link приглашает принять участие во Всероссийском конкурсе студенческих работ проекта «Профстажировки 2.0», реализуемого АНО «Россия – страна возможностей» совместно с Общероссийским народным фронтом.
На платформе проекта партнеры-работодатели разместили практико-ориентированные задания (кейсы). Участники – студенты вузов и колледжей – начнут выполнять их в качестве дипломных и курсовых работ. Победители получают приглашения на практику.
Для участия необходимо пройти регистрацию на сайте проекта.
Кейс компании D-Link – «Разработка web-интерфейса SLA-сервера»
SLA-агент – механизм диагностики состояния сети на стороне конечного пользователя. Его задача заключается в периодической отправке статистических данных, собранных устройством с системных счетчиков, а также результатов проверки доступности заранее заданных узлов утилитами Ping и Traceroute.
Web-интерфейс SLA-сервера от компании D-Link разработан на фреймворке AngularJS. Как известно, AngularJS устарел и имеет ряд серьезных недостатков. Конкурсанту предлагается разработать свою версию web-интерфейса с использованием следующего поколения фреймворка angular. В качестве backend’а можно использовать любую подходящую технологию и язык.
Для решений кейса развернут тестовый SLA-сервер по адресу http://mysla.dlink.ru. Доступна учетная запись test/test. HTTP API доступен онлайн по адресу http://mysla.dlink.ru:8090. Выполнение задания предполагает активное использование инструментов разработки браузера для получения информации о HTTP API. По запросу конкурсанту могут быть выданы исходные коды API.
Методы:
- GET /info/prev/:mac/:timestamp - Информация о данном устройстве из лога, предшествующего заданному моменту времени.
- GET /info/:mac/:timestamp - Информация о данном устройстве в заданный момент времени.
- GET /info/totalDevices - Общее количество устройств в базе.
- GET /info/firmware - Общий список устройств с названием модели, версией прошивки и MAC-адресом.
- GET /activeday/:mac - Информация об активных днях устройства.
- GET /logs/lasthour/:timestamp - Количество отчетов пришедших в последний час.
- GET /logs/info/prev/:mac/:timestamp - Информация о предыдущем логе.
- GET /logs/info/next/:mac/:timestamp - Информация о следующем логе.
- GET /logs/timestamps/:mac/:day/:month/:year - Список timestamp’ов, в которые прилетали логи от устройства за указанный день.
- GET /logs/:mac/:day/:month/:year - Список логов, прилетевших от устройства за указанный день.
- GET /events/info/prev/:mac/:timestamp - Информация о предыдущем событии.
- GET /events/timestamps/:mac/:day/:month/:year - Список timestamp’ов, в которые прилетали логи событий от устройства за указанный день.
- GET /ips - Список всех IP-адресов в базе.
- GET /macs - Список всех MAC-адресов в базе.
- GET /macs/ip/:ip - Список MAC-адресов по заданным IP.
- GET /macs/avail/:timestamp - Список MAC-адресов, приславших логи после заданного момента времени.
- GET /timerange/:mac - Минимальный и максимальный timestamp для данного MAC-адреса.
Получение информации по дням:
- GET /wan/:mac/:day/:month/:year
- GET /lan/:port/:mac/:day/:month/:year
- GET /summary/:mac/:day/:month/:year
- GET /wifi/:freq/:mac/:day/:month/:year
- GET /info/:mac/:day/:month/:year
- GET /wifi/clients/:mac/:day/:month/:year
- GET /system/:mac/:day/:month/:year
Аутентификация:
Вызов метода POST /login c полезной нагрузкой {username: username, password: md5.createHash(password)} возвращает объект с полями:
- token - Токен доступа.
- permission - Права доступа.
- user - Имя пользователя.
Поле token следует сохранить и прикреплять к каждому последующему запросу в заголовке запроса «Token».
Кейс компании D-Link – «Внедрение технологии L2TP v3 в xl2tpd»
В рамках выполнения конкурсной работы предлагается добавить поддержку протокола L2TPv3 в существующий пакет xl2tpd (https://github.com/xelerance/xl2tpd). Данный демон должен работать по протоколу L2TPv3 в режиме клиента и сервера.
- Перед выполнением задачи следует ознакомиться со следующим материалом:
- L2TPv3 RFC (https://tools.ietf.org/html/rfc3931)
- xl2tpd – исходный код (https://github.com/xelerance/xl2tpd)
- git – как пользоваться (https://git-scm.com/book/ru/v1/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git)
- как создать публичный репозиторий https://help.github.com/en/articles/fork-a-repo
В результате конкурсной работы должно быть выполнено следующее:
- создан собственный публичный репозиторий из оригинального репозитория на сервисе GitHub (со всеми правками для поддержки нового протокола);
- обеспечен доступ к этому репозиторию;
- представлена инструкция по сборке пакета;
- представлена методология настройки;
- представлен файл с записанным web-трафиком c использованием программы Wireshark.
Кейс компании D-Link – «Разработка STUN-клиента на Android для создания VPN туннеля Peer-To-Peer»
В рамках выполнения конкурсной работы предлагается разработать Android-приложение, которое создает Peer-To-Peer VPN-туннель между компьютером на Linux и мобильным телефоном на Android. Устройства должны быть в разных подсетях за NAT, между которыми нет доступа.
Инициализировать соединение нужно через внешний STUN-сервер.
Перед выполнением задачи следует ознакомиться со следующими технологиями:
- STUN (https://ru.wikipedia.org/wiki/STUN)
- NAT (https://ru.wikipedia.org/wiki/NAT)
- Android API (https://developer.android.com/reference)
Для тестирования предлагается следующая топология сети:
В результате конкурсной работы должно быть выполнено следующее:
- разработано работоспособное Android-приложение с исходным кодом;
- представлена инструкция по сборке и развертыванию тестового стенда;
- представлен файл с записанным web-трафиком c использованием программы Wireshark