The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Cilium 1.4, сетевой системы для Linux-контейнеров, основанной на BPF

14.02.2019 11:34

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

Основу Cilium составляет фоновый процесс, который работает в пространстве пользователя и выполняет работу по генерации и компиляции BPF-программ, а также взаимодействию с runtime, обеспечивающим работу контейнеров. В форме BPF-программ реализованы системы обеспечения связности контейнеров, интеграции с сетевой подсистемой (физические и виртуальные сети, VXLAN, Geneve) и балансировки нагрузки. Фоновый процесс дополняют управляющий cli-интерфейс, репозиторий правил доступа, система мониторинга и модули интеграции с поддержкой Kubernetes, Mesos, Istio, и Docker. Производительность решения на базе Cilium при большом числе сервисов и соединений в два раза опережает решения на базе iptables из-за больших накладных расходов на перебор правил. Более подробно про особенности Cilium можно прочитать в тексте анонса первого выпуска проекта.

Основные новшества:

  • Добавлена возможность маршрутизации и проброса трафика сервисов между несколькими кластерами Kubernetes. Также предложена концепция глобальных сервисов (вариант штатных сервисов Kubernetes с бэкендами в нескольких кластерах). Новая функциональность позволяет в случае выхода из строя бэкендов, обеспечивающих работу сервиса в одном кластере, автоматически перенаправить трафик к обработчикам данного сервиса в другом кластере.

  • Реализованы средства для задания правил обработки запросов и ответов DNS в привязке к группам контейнеров (pods), позволяющие увеличить контроль за обращением к внешним ресурсами из контейнеров. Дополнительно появилась поддержка ведения лога всех запросов и ответов DNS в привязке к pod-ам. Помимо правил доступа на уровне IP-адресов теперь можно определить какие DNS-запросы и DNS-ответы допустимы, а какие нужно блокировать. Например, можно блокировать доступ к определённым доменам или разрешить запросы только для локального домена, без необходимости отслеживания изменений привязки доменов к IP. В том числе реализована возможность использования возвращённого в процессе запроса к DNS IP-адреса для ограничения последующих сетевых операций (например, можно разрешить только обращение к IP-адресам, которые были возвращены при резолвинге в DNS, т.е. предоставлен своеобразный межсетевой экран, манипулирующий доменами вместо IP, с временем жизни привязок в соответствии с определённым TTL);

  • Добавлена экспериментальная поддержка прозрачного шифрования всего трафика между сервисами. Шифрование может применяться как для трафика между разными кластерами, так и в пределах одного кластера. Также добавлена возможность аутентификации узлов, что позволяет размещать кластер в не заслуживающей доверия сети;
  • Добавлена экспериментальная поддержка сетевых интерфейсов IPVLAN, позволяющих добиться более высокой производительности и снизить задержки при взаимодействии между двумя локальными контейнерами;

  • Добавлен модуль для интеграции с Flannel, системой для автоматизации настройки сетевого взаимодействия между узлами в кластере Kubernetes, позволяющий работать бок о бок или запустить Cilium поверх Flannel (сетевое взаимодействие от Flannel, политики доступа и балансировка от Cilium);
  • Обеспечена экспериментальная поддержка определения правил доступа на основе метаданных AWS (Amazon Web Services), таких как метки EC2, группы безопасности и имена VPC;
  • Предоставлена возможность запуска Cilium в GKE (Google Kubernetes Engine в Google Cloud) с использованием COS (Container-Optimized OS);
  • Обеспечена тестовая возможность для использования Sockmap BPF для ускорения коммуникаций между локальными процессами (например, полезно для ускорения взаимодействия между sidecar proxie и локальными процессами);

  • Добавлены дополнительные метрики для системы мониторинга Prometheus и предложены новые графики в сводной панели Grafana;

  • Добавлена поддержка Kubernetes 1.13 и новых версий CRI-O;
  • Проведена большая работа по оптимизации потребления памяти и нагрузки на CPU.


  1. Главная ссылка к новости (https://cilium.io/blog/2019/02...)
  2. OpenNews: Эксперимент по настройке Linux для блокирования 10 млн пакетов в секунду
  3. OpenNews: Для Linux представлена система динамической отладки BPFtrace (DTrace 2.0)
  4. OpenNews: Выпуск Cilium 1.0, сетевой системы для Linux-контейнеров, основанной на BPF
  5. OpenNews: Google представил Cilium, сетевую систему для Linux-контейнеров, основанную на BPF
  6. OpenNews: В eBPF найдена возможность обхода защиты ядра Linux от атаки Spectre
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50144-cilium
Ключевые слова: cilium, cluser, container, kubernetes
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (17) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:43, 14/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Файрвол на основе DNS очень интересная идея. Кто-нибудь видел готовое решение для обычных систем, чтобы можно было для некоторых пользователей заблокировать vk.com и youtube.com и он сам нужные IP периодически обновлял и блокировал.
    Или руками колхозить через cron нужно?
     
     
  • 2.2, Аноним (2), 12:46, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Для обычных систем есть роскомнадзор! Всё обновляет за тебя, никакого cron-а.
    Рикамендую.
     
     
  • 3.17, Аноним (17), 10:50, 15/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Также доступно новое мобильное приложение Росгоскомнадзор!
    Позволяет быстро и удобно заблокировать нежелательный вам контент сразу для всех!
    А также новинка! Плагин Росгоскомнадзор теперь в вашем браузере!
     
     
  • 4.21, пох (?), 16:11, 15/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Позволяет быстро и удобно заблокировать нежелательный вам контент сразу для всех!

    блин, эта фича, оказывается, платная :-(

     
  • 2.4, admin (??), 13:11, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У dnsmasq есть функционал писать данные ресолвинга выбранных доменов в ipset. Как вариант.
     
  • 2.5, Annoynymous (ok), 13:36, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что значит «блокировал IP на основе DNS»?

    Если ваш пользователь ходит через ваш DNS, поднимите Bind и укажите в нём зону vk.com. Все остальные соединения на порт 53 блокируйте. DoH пока не пришла в нашу жизнь, как придёт, придётся блокирнуть ещё и эти IP.

    Если ваш пользователь не ходит через ваш DNS, а нужно блокировать только IP адреса, запускайте по крону скрипт, который парсит выхлоп dig и прописывает блокировку в iptables.

     
     
  • 3.9, Аноним (9), 15:27, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы наверное путаете ipset и iptables
     
     
  • 4.10, admin (??), 19:58, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что значит путаю ipset и iptables?
    ipset - модуль из состава iptables
     
  • 2.6, Qwerty (??), 13:58, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >заблокировать vk.com и youtube.com

    <sarcasm>Просто подождите ещё пару лет и их заблокируют за вас</sarcasm>

    Ну а так - hosts по GPO.

     
     
  • 3.12, Аноним (12), 20:10, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы страной ошиблись. Кое-где уже заблокировали контакт.
     
     
  • 4.18, Qwerty (??), 10:51, 15/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы страной ошиблись. Кое-где уже заблокировали контакт.

    Лол, это в какой Уганде? У нас в России не блокировали.

     
  • 2.7, Аноним (7), 14:01, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вы же знаете, что ограничение ютубов на рабочем месте на производительность труда не влияет? А если дело в потреблении трафика, то есть шейперы и квоты.
     
     
  • 3.8, Qwerty (??), 14:10, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >ограничение ютубов на рабочем месте на производительность труда не влияет

    Пруфы предоставлены британскими учёными?

     
  • 2.13, Анонимный пользователь Интернета (?), 21:51, 14/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Knot Resolver позволяет фильтровать DNS-трафик, если не смущает Lua для описания логики работы.
     

  • 1.19, pavlinux (ok), 13:08, 15/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Где слово Berkeley - там тухло.
     
  • 1.20, Аноним (-), 15:37, 15/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Google, Facebook, Netflix и Red Hat

    Это необходимо вписать в историю! А к стати, чьи там головы выдумывают, как мы нам их развернуть, что им не продохнуть? ;)
    Можно списочек, поименно (с фото)?

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру