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 Slide

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

    View Slide

  3. Rationale

    View Slide

  4. Зачем L3 over L7

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

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

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

    View Slide

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

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

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

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

    View Slide

  6. Networks

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. Solution

    View Slide

  11. Yet Another Overlay Software Defined Network

    View Slide

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

    View Slide

  13. PCAP

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

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

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

    View Slide

  14. PCAP

    View Slide

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

    View Slide

  16. TUN/TAP

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

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

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

    View Slide

  17. TUN/TAP

    View Slide

  18. TUN/TAP

    View Slide

  19. Брокер

    RabbitMQ / ZeroMQ / etc. ?

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

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

    View Slide

  20. Брокер

    View Slide

  21. PoC Implementation

    View Slide

  22. ICMPv4

    View Slide

  23. Core

    View Slide

  24. Further plans

    View Slide

  25. Планы

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

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

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

    View Slide

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

    View Slide

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

    View Slide