The OpenNET Project

 
Поиск (теги):    НОВОСТИ (+) КОНТЕНТ WIKI MAN'ы ФОРУМ twitter

03.11.2016 11:14  Google представил Cilium, сетевую систему для Linux-контейнеров, основанную на BPF

Компания Google представила проект Cilium, в рамках которого подготовлена система для обеспечения сетевого взаимодействия и применения политик безопасности для изолированных контейнеров, основанная на применении загружаемых в ядро Linux программ eBPF, генерируемых на лету. Проект создан в результате эксперимента по применению для контейнерной изоляции новых технологий ядра Linux, таких как BPF (Berkeley Packet Filter) и XDP (eXpress Data Path). Исходные тексты компонентов, работающих на уровне пользователя, написаны на языке Go и распространяются под лицензией Apache 2.0. Загружаемые в ядро Linux сценарии BPF доступны под лицензией GPLv2.

Cilium состоит из специализированного фонового процесса, набора BPF-программ и модулей интеграции. Фоновый процесс работает в пространстве пользователя и выполняет работу по генерированию и компилированию BPF-программ, а также взаимодействует с runtime, обеспечивающим работу контейнеров. В форме BPF-программ реализованы системы обеспечения связности контейнеров, интеграции с сетевой подсистемой (физические и виртуальные сети, VXLAN, Geneve) и балансировки нагрузки. Модули интеграции предоставляются для CNI, Kubernetes и Docker.

eBPF представляет собой встроенный в ядро Linux интерпретатор байткода, позволяющий создавать обработчики сетевых операций, контролировать доступ и отслеживать работу систем, в том числе BPF-программы могут применяться для низкоуровневой обработки входящих/исходящих пакетов, принятия решений о перенаправлении пакетов, перехвата системных вызовов, контроля доступа и использования kprobes. XDP предоставляет средства для запуска BPF-программ на уровне сетевого драйвера, с возможностью прямого доступа к DMA-буферу пакетов, что позволяет создавать высокопроизводительные обработчики для работы в условиях большой сетевой нагрузки.

Программы для eBPF могут определяться на подмножестве языка C, компилироваться при помощи специального бэкенда LLVM и загружаться в ядро. Перед выполнением интерпретатор eBPF проверяет байткод на предмет применения разрешённых инструкций и налагает определённые правила на код (например, отсутствие циклов). Благодаря применению JIT-компиляции, байткод на лету транслируется в машинные инструкции и выполняется с производительностью нативного кода. При помощи программ BPF в Cilium реализованы такие возможности, как NAT64, балансировщики для сетевых уровней L3/L4, механизм отслеживания соединений, система маппинга сетевых портов, средства управления доступом, обработчики запросов NDisc и ARP, инкапсуляция пакетов через VXLAN, Geneve и GRE.

Из преимуществ применения Cilium для контейнерной изоляции отмечается:

  • Простота: каждому контейнеру назначен адрес IPv6 (опционально IPv4), все контейнеры соединены с одним общим виртуальным сетевым пространством с изоляцией через систему меток, привязанных к контейнерам. IPv6 выбран в качестве основной модели адресации с поддержкой IPv4 для обеспечения обратной совместимости;
  • Расширяемость: пользователи могут дополнить или адаптировать для своих нужд любой аспект работы BPF-программ. Возможности перенаправления и фильтрации пакетов не ограничиваются версией ядра и могут расширяться добавлением новых типов статистики, не поддерживаемых ядром, новыми обработчиками протоколов, внесением изменений в методы отслеживания соединений, реализацией дополнительной логики перенаправления пакетов;
  • Высокая производительность: JIT-компилятор позволяет добиться эффективного выполнения BPF-программ. Для каждого контейнера генерируются отдельные программы BPF, обеспечивающие только необходимую функциональность, что позволяет уменьшить размер выполняемого кода;
  • Возможность внесения изменений и исправлений в компоненты, отвечающие за обработку и перенаправление пакетов, без перезагрузки ядра, без разрыва установленных соединений и без остановки работающих контейнеров;
  • Интеграция эффективной системы мониторинга, которая может включаться по необходимости во время работы. Возможность отслеживать сетевую активность контейнеров в условиях высокой сетевой нагрузки без внесения задержек при обработке соединений.


  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Началось тестирование ОС Subgraph, использующей контейнерную изоляцию приложений на десктопе
  3. OpenNews: Intel представил Clear Linux с контейнерами приложений на базе виртуализации
  4. OpenNews: Компания Canonical выпустила систему управления контейнерами LXD 2.0
  5. OpenNews: Компания Google открыла код системы изолированных контейнеров Lmctfy
  6. OpenNews: Google анонсировал Kubernetes, открытую систему управления кластером изолированных контейнеров
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: bpf, container, cilium
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 11:42, 03/11/2016 [ответить] [смотреть все]
  • +2 +/
    кучеряво ... но как-то излишествами попахивает
     
     
  • 2.2, SysA, 11:47, 03/11/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    для локалхоста?.. ;)
     
     
  • 3.5, Аноним, 12:30, 03/11/2016 [^] [ответить] [смотреть все]
  • –7 +/
    холокоста
     
     
  • 4.6, A.Stahl, 12:45, 03/11/2016 [^] [ответить] [смотреть все]
  • +/
    На своём локалхосте можете и холокостом заниматься Только не рассказывайте нико... весь текст скрыт [показать]
     
     
  • 5.19, Аноним, 19:31, 03/11/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    нельзя.
     
  • 4.18, Аноним, 19:25, 03/11/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    адъмин лохокоста
     
  • 1.3, anonymous, 12:18, 03/11/2016 [ответить] [смотреть все]  
  • +7 +/
    Я что-то не понимаю, а чем плохи стандартные network namespace, множественные таблицы роутов, и нат через обычный файервол?
     
     
  • 2.15, evkogan, 15:50, 03/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Присоединяюсь Если есть есть плюсы то может кто-то их опишет А заодно и минусы... весь текст скрыт [показать] [показать ветку]
     
  • 2.25, Аноним, 01:02, 05/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Гугл обнаружил в namespaces фатальный недостаток код написали не они и там нет ... весь текст скрыт [показать] [показать ветку]
     
  • 2.29, Валик228, 10:59, 09/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    всем хорош в случае с обычными контейнерами в привычном нам всем виде но сейча... весь текст скрыт [показать] [показать ветку]
     
  • 1.4, Аноним, 12:29, 03/11/2016 [ответить] [смотреть все]  
  • +5 +/
    Грузим в ведро какой-то непонятный код, но при этом говорим о повышении безопасн... весь текст скрыт [показать]
     
     
  • 2.9, Anonymouys528, 13:12, 03/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Посмотрите код, а потом говорим годный он или не очень.
     
     
  • 3.10, Аноним, 13:32, 03/11/2016 [^] [ответить] [смотреть все]  
  • +/
    А ты вообще комментарий-то понял Я говорю про то, что эти BPF программы непонят... весь текст скрыт [показать]
     
     
  • 4.24, Аноним, 00:51, 05/11/2016 [^] [ответить] [смотреть все]  
  • +/
    Собственно это не программы, а правила фильтрации в бинарном виде.
     
     
  • 5.26, Аноним, 01:04, 05/11/2016 [^] [ответить] [смотреть все]  
  • +/
    Собственно, это тюринг-полные программы, вгружаемые из юзермода в ведро что выгл... весь текст скрыт [показать]
     
  • 1.11, Аноним, 13:58, 03/11/2016 [ответить] [смотреть все]  
  • –1 +/
    еще один гвоздь в гроб gcc ... весь текст скрыт [показать]
     
     
  • 2.13, Uri, 14:26, 03/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    "не дождетесь" (с)
     
     
  • 3.17, Аноним, 18:55, 03/11/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    а чего же gcc не использовали? только llvm.
     
     
  • 4.28, Аноним, 11:25, 05/11/2016 [^] [ответить] [смотреть все]  
  • +/
    Потому что gcc не компилирует в BPF, а вы думали почему?
     
  • 2.21, Led, 22:07, 03/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    > еще один гвоздь в гроб gcc.

    - послышался голос из могилы.

     
  • 2.27, Аноним, 01:05, 05/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Это при том что майнлайновое ядро Linux ничем кроме gcc не собирается У вас гво... весь текст скрыт [показать] [показать ветку]
     
  • 1.16, KOT040188, 16:40, 03/11/2016 [ответить] [смотреть все]  
  • +/
    А клиент для дрйава не представил...
     
  • 1.20, Аноним, 21:11, 03/11/2016 [ответить] [смотреть все]  
  • +/
    Прочитайте внимательно первые строки оригинальной статьи Никакого отношения про... весь текст скрыт [показать]
     
     
  • 2.22, Аноним, 00:11, 04/11/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ну дак и написано, что Google представил , а не открыл или опубликовал ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, AR, 11:09, 04/11/2016 [^] [ответить] [смотреть все]  
  • +/
    Google предоставил свой блог для гостевого поста, а не проект.
     
  • 1.30, Аноним, 19:11, 09/11/2016 [ответить] [смотреть все]  
  • +/
    чувствуется влияние идей Qubes OS, но КАК оно воспроизведено и на чем ужс ов... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2016 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by BSH TopList