Container Networking Plugins#

Некоторые сетевые плагины CNI поддерживаются Container Networking.

CNI (Container Network Interface) состоит из спецификации и библиотек для написания плагинов для настройки сетевых интерфейсов в контейнерах Linux и Windows, а также ряда поддерживаемых плагинов. CNI занимается только подключением контейнеров к сети и удалением выделенных ресурсов при удалении контейнера.

Поддерживаемые плагины#

Основные: interface-creating:

  • bridge: Создает bridge, добавляет к нему хост и контейнер;

  • ipvlan: Добавляет интерфейс ipvlan в контейнер;

  • loopback: Устанавливает состояние интерфейса обратной связи на up;

  • macvlan: Создает новый MAC-адрес, перенаправляет весь трафик идущий на него в контейнер;

  • ptp: Создает пару veth;

  • vlan: Выделяет устройство vlan;

  • host-device: Перемещает уже существующее устройство в контейнер;

  • dummy: Создает новое фиктивное устройство в контейнере.

Windows: Windows specific:

  • win-bridge: Создает bridge, добавляет к нему хост и контейнер;

  • win-overlay: Создает интерфейс наложения для контейнера.

IPAM: Распределение IP-адресов:

  • dhcp: Запускает демона на хосте для выполнения DHCP-запросов от имени контейнера;

  • host-local: Поддерживает локальную базу данных выделенных IP-адресов;

  • static: Выделяет контейнеру один статический IPv4/IPv6-адрес.

Meta: другие плагины:

  • tuning: Настраивает параметры sysctl существующего интерфейса;

  • portmap: Плагин для отображения портов на основе iptables. Отображает порты из адресного пространства хоста в контейнер;

  • bandwidth: Позволяет ограничить полосу пропускания за счет использования tbf управления трафиком (вход/выход);

  • sbr: Плагин, который настраивает маршрутизацию на основе источника для интерфейса, от которого подключен;

  • firewall: Плагин брандмауэра, который использует iptables или firewalld для добавления правил, разрешающих трафик в/из контейнера.