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

QUIC, TLS 1.3, DNS-over-HTTPS et al. Internet-2019: how to move to it and what is the barrier to entry

QUIC, TLS 1.3, DNS-over-HTTPS et al. Internet-2019: how to move to it and what is the barrier to entry

More Decks by Artyom "Töma" Gavrichenkov

Other Decks in Technology

Transcript

  1. QUIC, TLS 1.3, DNS-over-HTTPS,
    далее везде.
    Интернет 2019 года: что это, как в нём
    существовать и каков порог входа?
    Артём Гавриченков

    View full-size slide

  2. This is a true story.
    • 2018 год, production, 500-1000 запросов в секунду
    • Сайт находится под DDoS-защитой Cloudflare
    • Измерения подтверждают снижение нагрузки на CPU
    после перехода на HTTP/2
    https://medium.com/@DarkDrag0nite/how-http-2-reduces-
    server-cpu-and-bandwidth-10dbb8458feb
    • “Cloudflare provides free HTTP/2 capabilities with the click of a
    button”.
    https://www.cloudflare.com/website-optimization/http2/

    View full-size slide

  3. This is a true story.
    • 1 февраля: HTTP/2 включается в Cloudflare и на локальном
    Nginx
    • 1 марта: замер потребляемых ресурсов и числа запросов,
    пришедших на Nginx по HTTP/2
    • Каков процент таких запросов?

    View full-size slide

  4. Reverse proxy
    Cloud

    View full-size slide

  5. Reverse proxy
    Cloud
    HTTP/2

    View full-size slide

  6. Reverse proxy
    Cloud
    HTTP/2 HTTP/1.1

    View full-size slide

  7. “The HTTP/2 specification is focused on improving the browser
    behavior at this point. Therefore we do not support SPDY or
    HTTP/2 between origin server and Cloudflare at this point.
    Instead we will always use HTTP/1.x.”
    – Martijn Gonlag, Cloudflare.

    View full-size slide

  8. Reverse proxy
    • Технология середины 2000-х годов
    • Не поддерживается в стандарте 2015 года
    • Работа по поддержке – не ведётся

    View full-size slide

  9. «…по-настоящему меня удивило то, насколько отличается
    взаимодействие [HTTP/2 Server Push] с различными
    браузерами – я-то всегда считал, что это полностью
    отработанная фича, готовая к использованию в
    production».
    – Максим Матюхин, Badoo, июнь 2017 года.

    View full-size slide

  10. Архитектура Интернета, 2000
    HTTP/1.1
    SSL/TLS
    TCP
    IPv4

    View full-size slide

  11. Архитектура Интернета, 2020
    HTTP/2
    TLS v1.3
    TCP
    IPv6

    View full-size slide

  12. QUIC
    • Новый протокол для транспорта
    • Основан на UDP
    • Первый черновик стандарта: июль 2016 г.
    • Текущая версия: 12

    View full-size slide

  13. QUIC
    • Хайп:
    • NANOG 72
    • APRICOT 2018
    • RIPE 76
    • You name it 2018

    View full-size slide

  14. QUIC
    • https://conferences.sigcomm.org/imc/2017/papers/imc17-final39.pdf
    • https://blog.apnic.net/2018/01/29/measuring-quic-vs-tcp-mobile-desktop/
    • Clientside: Chrome/Ubuntu, Chrome/Android (4.4.4, 6.0.1)
    • Serverside: Apache 2.4 (TCP), Chromium (QUIC)

    View full-size slide

  15. QUIC
    • https://conferences.sigcomm.org/imc/2017/papers/imc17-final39.pdf
    • https://blog.apnic.net/2018/01/29/measuring-quic-vs-tcp-mobile-desktop/
    • Реализация QUIC от Google существенно хуже TCP,
    если сеть не гарантирует порядок доставки пакетов

    View full-size slide

  16. QUIC
    • https://conferences.sigcomm.org/imc/2017/papers/imc17-final39.pdf
    • https://blog.apnic.net/2018/01/29/measuring-quic-vs-tcp-mobile-desktop/
    • Реализация QUIC от Google существенно хуже TCP,
    если сеть не гарантирует порядок доставки пакетов
    • QUIC реализован в userspace и на мобильных устройствах
    проводит 58% времени в состоянии “Application Limited”

    View full-size slide

  17. QUIC
    • Реакция Google:

    View full-size slide

  18. “It's a good read.”
    – Jana Iyengar, Google.

    View full-size slide

  19. QUIC
    • Дизайн QUIC – это эксперимент.

    View full-size slide

  20. “There is also beauty in not having a layered architecture. [..]
    It is great to see transport functions like acknowledgement or flow
    control fully contained in the Quic transport.
    Quic is about transport innovation,
    and that pretty much requires direct access to the network API.”
    – Christian Huitema.

    View full-size slide

  21. QUIC-over-DTLS
    • DTLS: TLS-over-UDP
    • QUIC-over-TLS-over-UDP
    • Stream 0

    View full-size slide

  22. “…as we've gotten further along in design and implementation,
    it's also become clear that it’s archictecturally kind of crufty and
    this creates a bunch of problems, including:
    * Retransmission of stream 0 frames from lost packets needs
    special handling to avoid accidentally encrypting them.”
    – Eric Rescorla.

    View full-size slide

  23. “…as we've gotten further along in design and implementation,
    it's also become clear that it’s archictecturally kind of crufty and
    this creates a bunch of problems, including:
    * Retransmission of stream 0 frames from lost packets needs
    special handling to avoid accidentally encrypting them.”
    – Eric Rescorla.

    View full-size slide

  24. “…as we've gotten further along in design and implementation,
    it's also become clear that it’s archictecturally kind of crufty and
    this creates a bunch of problems, including:
    * Retransmission of stream 0 frames from lost packets needs
    special handling to avoid accidentally encrypting them.”
    – Eric Rescorla.

    View full-size slide

  25. QUIC: agile-подход
    1. Черновик стандарта, версия N
    2. Обсуждение, interop testing, feedback
    3. Google внедряет изменения в Chrome и собственной
    инфраструктуре, анализирует последствия
    4. N += 1, goto 1

    View full-size slide

  26. QUIC: agile-подход
    1. Черновик стандарта, версия N
    2. Обсуждение, interop testing, feedback

    View full-size slide

  27. QUIC
    • QUIC реализован в userspace и на мобильных устройствах
    проводит 58% времени в состоянии “Application Limited”

    View full-size slide

  28. QUIC
    • QUIC реализован в userspace и на мобильных устройствах
    проводит 58% времени в состоянии “Application Limited”
    Давайте поговорим об этом.

    View full-size slide

  29. SYN
    SYN/ACK
    ACK
    Data
    TCP

    View full-size slide

  30. SYN
    SYN/ACK
    ACK
    Data
    Kernel space
    User space
    TCP

    View full-size slide

  31. SYN*
    SYN/ACK*
    ACK*
    Data
    User space
    QUIC

    View full-size slide

  32. QUIC
    • QUIC реализован в userspace и подразумевается* к
    реализации в userspace
    • Google и другие участники рабочей группы не хотят ждать,
    пока обновятся все ОС

    View full-size slide

  33. “The reason we want to be able to work at the application level is
    backwards compatibility. It has to be possible
    to deploy QUIC on any machine even without OS support
    or it won't be deployable.
    It does not have to be performant on every platform.
    If people are using QUIC, whatever needs to be moved into
    the kernel for performance reasons will move there.”
    – Phillip Hallam-Baker.

    View full-size slide

  34. QUIC
    • QUIC реализован в userspace и подразумевается* к
    реализации в userspace
    • Google и другие участники рабочей группы не хотят ждать,
    пока обновятся все ОС
    • Один и тот же подход к clientside и к serverside
    • QUIC в Linux kernel?

    View full-size slide

  35. TCP vs UDP in Linux Kernel
    • http://vger.kernel.org/netconf2017_files/rx_hardening_and_udp_gso.pdf
    • Отправка UDP-датаграмм в Linux дороже,
    чем отправка TCP-потока
    • route table lookup
    • large segment offload
    • etc.

    View full-size slide

  36. “One challenge with QUIC at the moment is the increased CPU
    cost of sending UDP packets vs TCP payloads.
    I've seen this across every platform Google has deployed
    QUIC on, so it's a widespread issue.”
    – Ian Swett, Google.

    View full-size slide

  37. Benchmark it

    View full-size slide

  38. IPv6
    • Happy Eyeballs
    • Мистические проблемы с реализацией
    • Malicious activity
    • Blacklists и проблемы с памятью
    • Результат: проблемы с внедрением

    View full-size slide

  39. DNSSEC
    • https://blog.apnic.net/2018/02/26/peak-dnssec/

    View full-size slide

  40. DNS
    • IETF dnsop: 15 WG adopted-черновиков в полёте
    • DNS-over-whatever: TCP, TLS, HTTPS, QUIC…
    • “DNS Camel: How many features can we add to this protocol
    before it breaks?”
    https://datatracker.ietf.org/meeting/101/materials/slides-101-dnsop-sessa-
    the-dns-camel-01

    View full-size slide

  41. 0
    2
    4
    6
    8
    10
    12
    SSL 2.0 SSL 3.0 TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3
    Время разработки протоколов SSL/TLS, в
    годах

    View full-size slide

  42. Выводы
    • Внедрение нового протокола – это не «тычку в
    конфигурации поменять». Это – план внедрения,
    оценка целесообразности и обязательный бенчмарк
    • Протоколы разрабатываются не богами на Олимпе.
    Это процесс, в котором можно – и нужно! – участвовать.
    • Google не будет разрабатывать протокол для вас.
    Это сможете сделать только вы.

    View full-size slide

  43. Q&A
    To: Artyom Gavrichenkov

    View full-size slide