Программа обучения D-Link

Москва, Россия, 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 в режиме клиента и сервера.

В результате конкурсной работы должно быть выполнено следующее:

  • создан собственный публичный репозиторий из оригинального репозитория на сервисе GitHub (со всеми правками для поддержки нового протокола);
  • обеспечен доступ к этому репозиторию;
  • представлена инструкция по сборке пакета;
  • представлена методология настройки;
  • представлен файл с записанным web-трафиком c использованием программы Wireshark.

Кейс компании D-Link – «Разработка STUN-клиента на Android для создания VPN туннеля Peer-To-Peer»
В рамках выполнения конкурсной работы предлагается разработать Android-приложение, которое создает Peer-To-Peer VPN-туннель между компьютером на Linux и мобильным телефоном на Android. Устройства должны быть в разных подсетях за NAT, между которыми нет доступа.

Инициализировать соединение нужно через внешний STUN-сервер.

Перед выполнением задачи следует ознакомиться со следующими технологиями:

Для тестирования предлагается следующая топология сети:

В результате конкурсной работы должно быть выполнено следующее:

  • разработано работоспособное Android-приложение с исходным кодом;
  • представлена инструкция по сборке и развертыванию тестового стенда;
  • представлен файл с записанным web-трафиком c использованием программы Wireshark