amarao (amarao_san) wrote,
amarao
amarao_san

Category:

secure DPI

Gateway, обнаружив входящий сетевой пакет, по openflow отсылает его на openflow контроллер. Контроллер (не заглядывая в пакет) отправляет его в jenkins в джобу на инспекцию. jeknins динамически создаёт контейнер на одном из слейвов (если надо, слейв динамически создаётся в cloud'е или в автоматическом baremetall провизе), внутри контейнера находится настроенная копия DPI, проводящая анализ пакета. Если этот пакет относится к существующей цепочке, это определяется по конфигурации в etcd. После того, как инспекция проведена, приложение создаёт артефакт с ответом, который архивируется на слейве, обрабатывается второй джобой. Ответ может быть сложным (например, поднять дополнительный datapath), так что джоба может триггерить несколько других джоб по конфигурации сетевого оборудования. После того, как конфиги разлиты, джоба возвращает ответ контроллеру в понятном gateway виде (для упрощения gateway ответ выглядит как список пакетов, которые нужно отправить по заданным портам, так, например, маршрутизация пересчитывает TTL и чексумму и для route задача будет "отправить пакет (с пересчитанным ttl/crc) в порт такой-то"). Благодаря хранению payload'а внутри тела запроса (оно несущественно на фоне обвязки XML/SOAP) gateway получается стейтлес и может отмаршрутизировать пакет другого gateway (например, из-за фейловера), что позволяет обеспечить нулевую потерю пакетов в интервале инспекции пакетов.

В настоящий момент наша команда работает над MVP-прототипом. В версии 2 по пожеланию заказчиков записано снижение latency для обработки пакета. В настоящий момент worst case включает в себя автоматический провиз бареметалл-сервера для слейва с запуском менеджера контейнеров, и составляет примерно 40 минут, плюс около 20 секунд на обработку пакета внутри контейнера, плюс около 20 секунд оверхед jenkins'а на обработку артефактов, плюс 300мс latency openflow контроллера, плюс 20µs на gateway. Клиент требует не более 5 мс, и у меня есть ощущение, что для версии два нам потребуется небольшой рефакторинг пайплайнов дженкинса. Запуск контейнера занимает примерно 500мс, так что возможно, стоит рассмотреть другие методы запуска контейнеризированных процессов для инспекции.
Tags: остапа несло
Subscribe

  • snmp

    Если вы хотите хранить в публичном доступе секретную информацию, не забудьте дописать перед ней snmp oid и злоумышленник это читать не будет.

  • О конечном автомате, который себя вообразил компьютером

    Внезапно, я сейчас осознал интересный plot twist для self-reference systems. Допустим, у нас есть тьюринг-машина (обычный компьютер, для удобства…

  • Проблемы от ipv6

    Всех интересует, какие проблемы от него. И вот я накопал. Ничего существенного, но то, что есть, раздражает и усложняет. 1. В половине софта…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • snmp

    Если вы хотите хранить в публичном доступе секретную информацию, не забудьте дописать перед ней snmp oid и злоумышленник это читать не будет.

  • О конечном автомате, который себя вообразил компьютером

    Внезапно, я сейчас осознал интересный plot twist для self-reference systems. Допустим, у нас есть тьюринг-машина (обычный компьютер, для удобства…

  • Проблемы от ipv6

    Всех интересует, какие проблемы от него. И вот я накопал. Ничего существенного, но то, что есть, раздражает и усложняет. 1. В половине софта…