OpenVZ часть 7. Сетевой стек

OpenVZ. Все статьи цикла

Контейнеры OpenVZ могут быть подключены к сети тремя различными типами сетевых интерфейсов, каждый из которых имеет свои особенности и назначение.

Первый тип, используемый по умолчанию это — vnet(Virtual network). Vnet-устройство работает на третьем уровне(L3) модели OSI и не имеет своего собственного MAC-адреса. Практически, такой интерфейс является своего рода псевдонимом(alias) интерфейса хост системы. Она же, исходя из заголовков пакетов определяет какому контейнеру предназначается трафик. Настройка такого интерфейса выполняется администратором базовой системы. Плюсами такой конфигурации являются легкость настройки и максимальное среди всех типов быстродействие. Минусы же, вытекают из отсутствия у интерфейса MAC-мадреса. Это делает невозможной работу широковещательных запросов что в следствии не позволяет использовать, DHCP-сервер или Samba внутри контейнера. Так же, в связи с отсутствием MAC-адресса не будут работать приложения нуждающиеся в нем, в том числе IPv6.

veth (Virtual Ethernet device)Виртуальный Ethernet-интерфейс. Этот тип сетевого устройства работает на втором уровне(L2) модели OSI и предоставляет контейнеру полноценный сетевой стек включая и собственный MAC-адресс. Внутри гостевого окружения такой интерфейс выглядит как настоящий и его настройка может быть выполнена без вмешательства администратора хост-системы. К минусам такого интерфейса можно отнести более сложную настройку, а так же меньшую производительность относительно vnet.

Настройка veth

Третий тип подключения — это делегирование физического сетевого контроллера в контейнер. Это наименее популярный подход так как он более дорогой и сложный. Если при каких то условиях это необходимо, например хочется сделать из контейнера настоящий роутер, что само по себе не очень правильно, то необходимо действовать следующим образом:

# vzctl set 103 —netdev_add eth2 —save

После этого, eth2 становится доступен внутри контейнера и соответственно не должен иметь каких либо настроек в хост системе. Настройка его производится стандартными средствами внутри контейнера после чего можно работать с сетью в обычном режиме.