Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sergey Sobko - Динамические оверлейные сети: передача трафика L3 через L7 с помощью Clojure

Moscow 2600
January 04, 2019

Sergey Sobko - Динамические оверлейные сети: передача трафика L3 через L7 с помощью Clojure

Moscow 2600

January 04, 2019
Tweet

More Decks by Moscow 2600

Other Decks in Research

Transcript

  1. Динамические оверлейные сети: передача
    трафика L3 через L7 с помощью Clojure
    2600, 4 января – Москва, Россия
    Сергей Собко

    View full-size slide

  2. About
    Sergey Sobko (@IwasakiRussia; GH: profitware; bug2bug.me)
    Руководитель группы разработки PT Application Firewall
    Преподаватель курса веб-разработки в НИУ ВШЭ

    View full-size slide

  3. Зачем L3 over L7

    Посмотреть на границы применимости Clojure

    Посмотреть на сетевые пакеты изнутри

    Изучить возможности различных брокеров сообщений

    View full-size slide

  4. Практическое применение

    Построить свой персональный интернет (e.g., VPN, Mesh, Tor)

    Динамическое реконфигурирование топологии сети

    Заменяемость частей захвата, разбора и передачи трафика

    View full-size slide

  5. Прямое соединение / Multicast

    View full-size slide

  6. Соединение за NAT

    View full-size slide

  7. Централизованное подключение

    View full-size slide

  8. Yet Another Overlay Software Defined Network

    View full-size slide

  9. Общая схема
    L3 interface (TUN)
    Processing
    L7 interface (Ignite)
    L3 interface (TUN)
    Processing
    L7 interface (Ignite)

    View full-size slide

  10. PCAP

    PCAP как удобный формат для хранения пакетов

    PCAP4J — биндинги для promiscuous mode и разбор пакетов

    Фабрика пакетов (и подстановка через замыкание)

    View full-size slide

  11. Общий протокол

    View full-size slide

  12. TUN/TAP

    Захват трафика через виртуальный адаптер TUN

    Библиотека clj-linux-net (JavaLinuxNet) — JNI интерфейс к tun

    В перспективе JNI/JNA-биндинги к libtuntap

    View full-size slide

  13. Брокер

    RabbitMQ / ZeroMQ / etc. ?

    Распределенное in-memory хранилище

    Apache Ignite как подходящее решение

    View full-size slide

  14. Брокер

    View full-size slide

  15. PoC Implementation

    View full-size slide

  16. Further plans

    View full-size slide

  17. Планы

    Сделать обвязку для libtuntap (для кроссплатформенности)

    Проверить возможность централизованного использования

    В далекой перспективе создать production-ready решение

    View full-size slide

  18. Спасибо за внимание!
    Спасибо за внимание!
    ptsecurity.ru
    Sergey Sobko
    @IwasakiRussia
    GH: profitware
    bug2bug.me

    View full-size slide

  19. Вопросы?
    https://github.com/yaosdn/yaosdn
    Flower
    Sergey Sobko
    @IwasakiRussia
    GH: profitware
    bug2bug.me

    View full-size slide