network

linux-system-roles/network

ansible-lint.yml ansible-test.yml codeql.yml integration.yml markdownlint.yml python-unit-test.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml Coverage Status Code Style: black Language grade: Python

Обзор

Роль network позволяет пользователям настраивать сеть на целевых машинах. Эта роль может быть использована для настройки:

  • Ethernet интерфейсов
  • Мостовых интерфейсов
  • Связанных интерфейсов
  • VLAN интерфейсов
  • MacVLAN интерфейсов
  • Infiniband интерфейсов
  • Беспроводных (Wi-Fi) интерфейсов
  • IP конфигурации
  • Аутентификации 802.1x

Введение

Роль network поддерживает двух провайдеров: nm и initscripts. По умолчанию используется nm, начиная с RHEL7, а initscripts — в RHEL6. Провайдер initscripts требует пакет network-scripts, который устарел в RHEL8 и был убран в RHEL9. Эти провайдеры могут быть настроены для каждого хоста через переменную network_provider. В отсутствие явной конфигурации, провайдер определяется автоматически на основе дистрибутива. Однако, обратите внимание, что ни nm, ни initscripts не привязаны к определенному дистрибутиву. Роль network работает везде, где доступно необходимое API.

Роль network поддерживает два модуля: network_connections и network_state.

Для каждого хоста можно настроить список профилей сети через переменную network_connections.

  • Для initscripts профили соответствуют файлам ifcfg в каталоге /etc/sysconfig/network-scripts/, и в этих файлах есть строка NM_CONTROLLED=no.

  • Для nm профили соответствуют профилям соединений, которые обрабатываются NetworkManager, и только формат ключевого файла NetworkManager поддерживается в /etc/NetworkManager/system-connections/, начиная с RHEL9.

Для каждого хоста также можно применить конфигурацию состояния сети к интерфейсу напрямую через переменную network_state, и только провайдер nm поддерживает использование переменной network_state.

Обратите внимание, что роль network работает как с профилями соединений устройств (через переменную network_connections), так и с устройствами напрямую (через переменную network_state). При настройке профилей соединений через роль используется имя профиля по умолчанию в качестве имени интерфейса. Также возможно создать общие профили, создавая, например, профиль с определенной IP конфигурацией без активации профиля. Для применения конфигурации к текущему сетевому интерфейсу используйте команды nmcli на целевой системе.

Предупреждение: Роль network обновляет или создает все профили соединений на целевой системе, как указано в переменной network_connections. Поэтому роль network удаляет параметры из указанных профилей, если параметры присутствуют только в системе, но не в переменной network_connections. Исключения упомянуты ниже. Тем не менее, частичную конфигурацию сети можно достичь, указав конфигурацию состояния сети в переменной network_state.

Требования

См. ниже

Требования к коллекции

Роль требует внешних коллекций только для управления узлами rpm-ostree. Пожалуйста, выполните следующую команду для их установки, если вам нужно управлять узлами rpm-ostree:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

Переменные

Роль network настраивается через переменные, начинающиеся с префикса network_. Список переменных:

  • network_provider - Переменная network_provider позволяет установить определенный провайдер (nm или initscripts). Установив ее в {{ network_provider_os_default }}, провайдер устанавливается в зависимости от операционной системы. Обычно это nm, за исключением систем RHEL 6 или CentOS 6. Изменение провайдера для существующего профиля не поддерживается. Чтобы сменить провайдеры, рекомендуется сначала удалить профили со старым провайдером, а затем создать новые профили с новым провайдером.
  • network_connections - Профили соединений настраиваются как network_connections, это список словарей, включающих определенные параметры.
  • network_allow_restart - По умолчанию false. Чтобы загрузить плагины NetworkManager после установки, требуется перезапуск NetworkManager. Например, если настроено беспроводное соединение и не установлен NetworkManager-wifi, NetworkManager должен быть перезапущен перед настройкой соединения. Перезапуск может привести к потере соединения, и поэтому роль не позволяет это без явного согласия. Пользователь может согласиться, установив network_allow_restart в true. Установка network_allow_restart в false предотвратит перезапуск NetworkManager.
  • network_state - Параметры состояния сети можно настраивать на управляемом хосте, а формат и синтаксис конфигурации должны соответствовать примеру состояния nmstate (YAML).

Примеры использования переменных

Установка переменных

network_provider: nm
network_connections:
  - name: eth0
    #...
network_allow_restart: true
network_provider: nm
network_state:
  interfaces:
    - name: eth0
    #...
  routes:
    config:
      #...
  dns-resolver:
    config:
      #...

Опции network_connections

Переменная network_connections - это список словарей, которые включают следующие опции. Список опций:

name (обычно требуется)

Опция name идентифицирует профиль соединения, который нужно настроить. Это не имя сетевого интерфейса, к которому применяется профиль, хотя мы можем ассоциировать профиль с интерфейсом и дать им одинаковое имя. Обратите внимание, что у вас может быть несколько профилей для одного и того же устройства, но в каждый момент времени может быть активен только один профиль. Для NetworkManager соединение может быть активным только на одном устройстве.

  • Для NetworkManager опция name соответствует свойству connection.id. Хотя NetworkManager поддерживает несколько соединений с одинаковым connection.id, роль network не может обрабатывать дубликаты name. Указание name несколько раз ссылается на один и тот же профиль соединения.

  • Для initscripts опция name определяет имя файла ifcfg /etc/sysconfig/network-scripts/ifcfg-$NAME. Обратите внимание, что имя не указывает на DEVICE, а только на имя файла. Поэтому символ '/' не является допустимым символом для name.

Вы также можете использовать один и тот же профиль соединения несколько раз. Следовательно, возможно создать профиль и активировать его отдельно.

Примечание: Роль сети изменит только профили, которые указаны в переменной network_connections. Поэтому, если только порты профиля указаны для удаления из контроллера и контроллер не указан, то профиль контроллера останется в системе. Это может произойти, если, например, все порты удалены из интерфейса bond.

Примечание: Чтобы удалить все профили на системе, которые не указаны в переменной network_connections, добавьте запись без имени и persistent_state: absent. Это совпадет и удалит все оставшиеся профили:

network_connections:
  - name: eth0  # профили, которые нужно оставить/настроить в системе
    [...]

  - persistent_state: absent  # удалить все другие профили

state

Опция state указывает, каково текущее состояние каждого профиля соединения. Опция state (необязательная) может быть установлена в одно из следующих значений:

  • up - профиль соединения активирован
  • down - профиль соединения деактивирован

state: up

  • Для NetworkManager, это соответствует nmcli connection id {{name}} up.

  • Для initscripts, это соответствует выполнению ifup {{name}}.

Когда опция state установлена в up, вы также можете указать опцию wait (необязательная):

  • wait: 0 - инициирует только активацию, но не ждет, пока устройство полностью подключится. Соединение будет завершено в фоновом режиме, например, после получения DHCP аренды.
  • wait: <seconds> - это таймаут, который позволяет вам решить, сколько времени вы даете устройству для активации. По умолчанию используется подходящий таймаут. Обратите внимание, что опция wait поддерживается только NetworkManager.

Обратите внимание, что state: up всегда повторно активирует профиль и, возможно, изменяет сетевую конфигурацию, даже если профиль уже был активен ранее. В связи с этим state: up всегда изменяет систему.

state: down

  • Для NetworkManager это соответствует nmcli connection id {{name}} down.

  • Для initscripts это соответствует вызову ifdown {{name}}.

Вы можете деактивировать профиль соединения, даже если он в данный момент не активен. Поэтому state: down всегда изменяет систему.

Обратите внимание, что если опция state не задана, текущее состояние профиля соединения не будет изменено.

persistent_state

Опция persistent_state определяет, является ли профиль соединения постоянным (сохраненным на диске). Опция persistent_state может быть установлена в одно из следующих значений:

persistent_state: present (по умолчанию)

Имейте в виду, что если persistent_state равно present и профиль соединения содержит опцию type, профиль будет создан или обновлен. Если профиль соединения неполный (нет опции type), поведение неопределенно. Также значение present не приводит непосредственно к изменению сетевой конфигурации. Если опция state не установлена в up, профиль только создается или изменяется, а не активируется.

Для NetworkManager новый профиль соединения создается с опцией autoconnect, включенной по умолчанию. Следовательно, NetworkManager может активировать новый профиль на в данный момент отключенном устройстве. (rh#1401515).

persistent_state: absent

Значение absent гарантирует, что профиль отсутствует на целевом узле. Если профиль с указанным name существует, он будет удален. В этом случае:

  • NetworkManager удаляет все профили соединений с соответствующим connection.id. Удаление профиля обычно не изменяет текущую сетевую конфигурацию, если только профиль не был активирован на устройстве. Удаление текущего активного профиля соединения отключает устройство. Это позволяет устройству автоматически подключиться к другому соединению (для получения дополнительной информации см. rh#1401515).

  • initscripts удаляет файл ifcfg в большинстве случаев без влияния на текущее состояние системы, если только какой-либо компонент не отслеживает каталог sysconfig.

Примечание: Для профилей, которые содержат только опцию state, роль network только активирует или деактивирует соединение без изменения его конфигурации.

type

Опция type может принимать следующие значения:

  • ethernet
  • bridge
  • bond
  • team
  • vlan
  • macvlan
  • infiniband
  • wireless
  • dummy

type: ethernet

Если тип равен ethernet, то может быть дополнительный словарь ethernet со следующими элементами (опциями): autoneg, speed и duplex, которые соответствуют настройкам утилиты ethtool с такими же именами.

  • autoneg: true (по умолчанию) или false [включено или выключено автоопределение]
  • speed: скорость в Мбит/с
  • duplex: half или full

Обратите внимание, что настройки speed и duplex требуются, когда автоопределение отключено (autoneg: false).

type: bridge, type: bond, type: team

Типы устройств bridge, bond, team работают аналогично. Обратите внимание, что team не поддерживается в ядрах RHEL6 и был устаревшим в RHEL 9.

Для портов должны быть установлены свойства port_type и controller. Обратите внимание, что порты не должны иметь настроек ip, что означает, что активным портам не будут назначены IP-адреса.

controller ссылается на name профиля в плейбуке Ansible. Это ни интерфейсное имя, ни идентификатор соединения NetworkManager.

  • Для NetworkManager controller будет преобразован в connection.uuid соответствующего профиля.

  • Для initscripts controller ищется как DEVICE в соответствующем файле ifcfg.

Так как controller ссылается на другие профили из того же или другого плейбука, порядок списка connections имеет значение. Профили, на которые ссылаются другие профили, должны указываться первыми. Также --check игнорирует значение controller и предполагает, что он будет присутствовать во время реального запуска. Это значит, что при наличии неверного controller --check может сигнализировать об успешном завершении, но фактический запуск плейбука завершится ошибкой.

Если просто отключить профиль controller, то портовые профили будут отключены автоматически. Если отключить соединение на некоторых или всех портах, профиль контроллера останется активным.

Тип team использует roundrobin как конфигурацию runner. На данный момент дальнейшая конфигурация не поддерживается.

type: vlan

Аналогично controller, parent ссылается на профиль соединения в ansible роли. ID vlan может быть указан с помощью вложенной настройки vlan, допустимое значение ID vlan варьируется от 0 до 4094. Вот как указать ID vlan:

type: vlan
vlan:
  id: 6

type: macvlan

Аналогично controller и vlan, parent ссылается на профиль соединения в ansible роли.

type: infiniband

Для соединения infiniband в настоящее время поддерживается только для провайдера nm, и поддерживаются следующие опции:

  • p_key: P_Key infiniband для использования с устройством. Когда она не указана, соединение создается в физических infiniband тканях. В противном случае это 16-битное неотрицательное целое число, и будет создано соединение ipoib (IP через Infiniband), высокий бит должен быть установлен, если это P_Key «полного членства». Специальные значения p_key 0x0000 и 0x8000 недоступны, так как ядро их не поддерживает.
  • transport_mode: Режим работы соединения ipoib (IP через Infiniband). Возможные режимы: datagram (по умолчанию) и connected.

Примечание: Если p_key указан, то interface_name должен быть не установлен.

type: wireless

Тип wireless поддерживает WPA-PSK (password) аутентификацию, WPA-EAP (802.1x) аутентификацию, WPA3-Personal SAE (пароль) аутентификацию и Enhanced Open (OWE).

Только nm (NetworkManager) является поддерживаемым network_provider для этого типа.

Если используется WPA-EAP, необходимо определить настройки ieee802_1x в опции ieee802_1x.

Поддерживаемые следующие опции:

  • ssid: SSID беспроводной сети (обязательно)

  • key_mgmt (обязательно)

    Любой ключ из следующего списка ключей:

    • owe
    • sae
    • wpa-eap
    • wpa-psk
  • password: пароль для сети (обязан быть указан, если используется wpa-psk или sae)

type: dummy

Условный интерфейс сети, nm (NetworkManager) является единственным поддерживаемым network_provider для этого типа.

autoconnect

По умолчанию профили создаются с включенным автоподключением.

  • Для NetworkManager это соответствует свойству connection.autoconnect.

  • Для initscripts это соответствует свойству ONBOOT.

mac

MAC-адрес является необязательным и ограничивает использование профиля только на устройствах с данным MAC-адресом. mac разрешен только для типа ethernet или infiniband, чтобы сопоставить ненастоящее устройство с профилем. Значение MAC-адреса нужно указать в шестнадцатеричном формате с использованием двоеточий (например: mac: "00:00:5e:00:53:5d"). Чтобы избежать разбора YAML, MAC-адреса как целых чисел в секстильной системе (основание 60), рекомендуется всегда заключать значение в двойные кавычки, и иногда это необходимо.

  • Для NetworkManager mac является постоянным MAC-адресом, ethernet.mac-address.

  • Для initscripts mac — это текущий сконфигурированный MAC-адрес устройства (HWADDR).

cloned_mac

MAC-адрес cloned_mac является необязательным и позволяет указать стратегию получения стандартного mac или установить свой собственный mac. Значение адреса cloned_mac должно быть указано в шестнадцатеричном формате, как и свойство mac. Кроме явного указания значения как MAC-адреса с шестнадцатеричным обозначением, поддерживаются также следующие специальные значения:

  • default: соблюдать стандартное поведение в NetworkManager
  • permanent: использовать постоянный MAC-адрес устройства
  • preserve: не менять MAC-адрес устройства при активации
  • random: генерировать случайное значение при каждом подключении
  • stable: генерировать стабильный, хэшированный MAC-адрес

mtu

Опция mtu обозначает максимальную передаваемую единицу для профиля устройства. Максимальное значение зависит от устройства. Для виртуальных устройств максимальное значение опции mtu зависит от основного устройства.

interface_name

Для типов ethernet и infiniband опция interface_name ограничивает профиль к данному интерфейсу по имени. Этот аргумент является необязательным, и по умолчанию используется имя профиля, если не указан MAC-адрес с помощью ключа mac. Указание пустой строки ("") означает, что профиль не ограничивается сетевым интерфейсом.

Примечание: С упорным именованием интерфейсов интерфейс предсказуем в зависимости от конфигурации оборудования. В противном случае адрес mac может быть опцией.

Для виртуальных интерфейсных типов, таких как мосты, interface_name - это имя создаваемого интерфейса. В случае отсутствия interface_name используется имя профиля.

Примечание: name (имя профиля) и interface_name (имя устройства) могут отличаться, или профиль может не быть привязан к интерфейсу вообще.

match

Настройки для указания устройств или систем, соответствующих профилю. В настоящее время реализована только настройка path.

Настройки поддерживают список шаблонов, которые поддерживают следующие модификаторы и подстановочные знаки:

Специальные модификаторы для настроек match:

  • |, элемент является альтернативой, совпадение оценивается как истинное, если хотя бы один из альтернатив совпадает (логическое ИЛИ). По умолчанию элемент является альтернативой. Это означает, что элемент foo ведет себя так же, как |foo.

  • &, элемент обязательный, совпадение оценивается как истинное, если все элементы совпадают (логическое И).

  • !, элемент также может быть инвертирован с помощью восклицательного знака (!) между символом «проводническим» (или амперсантом) и перед шаблоном. Обратите внимание, что !foo является сокращением для обязательного сопоставления &!foo.

  • \, обратный слеш может использоваться в начале элемента (после опциональных специальных символов) для экранирования начала шаблона. Например, &\!a является обязательным совпадением для дословного выражения !a.

Шаблонные знаки для настроек match: В общем работающие как оболочка glob.

  • *, соответствует нулю или более любым символам.
  • ?, соответствует любому одному символу.
  • [fo] - соответствует любому одному символу f или o - также поддерживает диапазоны - [0-9] будет соответствовать любому одному цифровому символу.

path

Настройка path - это список шаблонов для сравнения с ID_PATH свойством udev устройств. Свойство ID_PATH udev представляет собой постоянный путь устройства. Он состоит из строки подсистемы (pci, usb, platform и т. д.) и уникального идентификатора, специфичного для подсистемы. ID_PATH устройства можно получить с помощью команды udevadm info /sys/class/net/$dev | grep ID_PATH= или посмотрев на свойство path, экспортируемое NetworkManager (nmcli -f general.path device show $dev). Настройка path является необязательной и ограничивает профиль, чтобы активироваться только на устройствах с совпадающим ID_PATH. Настройка path поддерживается только для ethernet или infiniband профилей. Она поддерживает модификаторы и подстановочные знаки, как описано для настроек match.

zone

Опция zone устанавливает зону firewalld для интерфейса.

Порты к мостам, связям или командам не могут указывать зону.

ip

Конфигурация IP поддерживает следующие опции:

  • address Ручное назначение может быть указано через список адресов по параметру address.

  • auto_gateway

    Если включено, будет настроен маршрут по умолчанию с использованием стандартного шлюза. Если отключено, маршрут по умолчанию будет удален.

    Если эта переменная не указана, роль будет использовать стандартное поведение выбранного network_provider.

    Установка этой опции в false эквивалентно:

    • DEFROUTE = no в initscripts, или
    • ipv4.never-default/ipv6.never-default yes в nmcli
  • dhcp4, auto6 и ipv6_disabled

    Также можно указать ручное назначение, установив либо dhcp4, либо auto6. Ключ dhcp4 используется для DHCPv4, а auto6 для автоматической конфигурации адресов (SLAAC). Обратите внимание, что ключи dhcp4 и auto6 можно опустить, и стандартный ключ зависит от наличия ручных адресов. ipv6_disabled можно установить для отключения ipv6 для соединения.

  • dhcp4_send_hostname

    Если dhcp4 включен, можно настроить, будет ли в запрос DHCPv4 включено имя хоста через опцию dhcp4_send_hostname. Обратите внимание, что dhcp4_send_hostname поддерживается только провайдером nm и соответствует свойству ipv4.dhcp-send-hostname.

  • dns

    Ручная конфигурация DNS может быть указана через список адресов, указанных в параметре dns.

  • dns_search

    Ручная конфигурация DNS может быть указана через список доменов для поиска, указанных в параметре dns_search.

  • dns_options

    dns_options поддерживается только для провайдера NetworkManager. Ручная конфигурация DNS с помощью списка опций DNS может быть дана через dns_options. Список поддерживаемых опций DNS для IPv4 серверов имен описан в man 5 resolv.conf. В настоящее время список поддерживаемых опций DNS включает:

    • attempts:n
    • debug
    • edns0
    • inet6
    • ip6-bytestring
    • ip6-dotint
    • ndots:n
    • no-aaaa
    • no-check-names
    • no-ip6-dotint
    • no-reload
    • no-tld-query
    • rotate
    • single-request
    • single-request-reopen
    • timeout:n
    • trust-ad
    • use-vc

    Примечание: Настройка "trust-ad" соблюдается только если профиль вносит серверы имен в resolv.conf, и если все вносимые профили имеют включенную "trust-ad". При использовании кэшированного DNS плагина (dnsmasq или systemd-resolved в NetworkManager.conf) настройки "edns0" и "trust-ad" добавляются автоматически.

  • dns_priority

    Приоритет DNS-серверов. Относительный приоритет для DNS-серверов, указанных этой настройкой. Значение по умолчанию - 0, более низкое числовое значение имеет более высокий приоритет. Допустимое значение dns_priority варьируется от -2147483648 до 2147483647. Отрицательные значения имеют особый эффект исключения других конфигураций с более высоким числовым приоритетом; поэтому при наличии хотя бы одного отрицательного приоритета будут использоваться только DNS-серверы из соединений с наименьшим приоритетом.

  • gateway4 и gateway6

    Шлюз по умолчанию для IPv4 (gateway4) или IPv6 (gateway6) пакетов.

  • ipv4_ignore_auto_dns и ipv6_ignore_auto_dns

    Если включено, автоматически сконфигурированные серверы имен и домены поиска (через DHCPv4, DHCPv6 и т. д.) для IPv4 или IPv6 игнорируются, используются только серверы имен и домены поиска, указанные в свойствах dns и dns_search. Настройки различаются по семействам адресов. Переменные не поддерживаются провайдером initscripts.

    Если переменные не указаны, роль будет использовать стандартное поведение провайдера nm.

  • route_metric4 и route_metric6

    Для NetworkManager route_metric4 и route_metric6 соответствуют свойствам ipv4.route-metric и ipv6.route-metric соответственно. При указании определяет метрику маршрута для маршрутов, присвоенных DHCP и маршрута по умолчанию, а значит, приоритет для нескольких интерфейсов. Для initscripts route_metric4 указывает метрику для маршрута по умолчанию, а route_metric6 не поддерживается.

  • route

    Конфигурация статического маршрута может быть указана через список маршрутов, указанных в параметре route. Значение по умолчанию - пустой список. Каждый маршрут - это словарь с следующими записями: gateway, metric, network, prefix, src, table и type. network и prefix указывают на целевую сеть. src указывает на IP-адрес источника для маршрута. table поддерживает как числовую, так и именованную таблицу. Чтобы указать именованную таблицу, пользователи должны убедиться, что именованная таблица правильно определена в /etc/iproute2/rt_tables или /etc/iproute2/rt_tables.d/*.conf.
    Опциональный ключ type поддерживает значения blackhole, prohibit и unreachable. См. man 8 ip-route для получения их определения. Маршруты с этими типами не поддерживают шлюз. Если тип не указан, маршрут считается одноадресным. Обратите внимание, что нотация CIDR или нотация сетевой маски не поддерживаются для ключа network.

  • routing_rule

    Политики маршрутизации могут быть указаны через список правил, данные в опции routing_rule, которые позволяют маршрутизовать пакеты по другим полям пакетов, кроме адреса назначения. Значение по умолчанию - пустой список. Каждое правило - это словарь со следующими записями:

    • priority - Приоритет правила. Допустимый приоритет варьируется от 0 до 4294967295. Большее число означает более низкий приоритет.
    • action - Действие правила. Возможные значения: to-table (по умолчанию), blackhole, prohibit, unreachable.
    • dport- Диапазон порта назначения (например, 1000 - 2000). Допустимое значение порта назначения для диапазонов старт и окончание варьируется от 0 до 65534. Старт не может быть больше конца.
    • family - IP-семейство правила. Возможные значения: ipv4 и ipv6.
    • from - Адрес источника пакета для сопоставления (например, 192.168.100.58/24).
    • fwmark - Значение fwmark пакета для сопоставления.
    • fwmask - Значение fwmask пакета для сопоставления.
    • iif - Выбрать входящее имя интерфейса для сопоставления.
    • invert - Инвертировать выбранное совпадение правила. Возможные значения булевы: true и false (по умолчанию). Если значение равно true, это эквивалентно сопоставлению любого пакета, который не удовлетворяет выбранному совпадению правила.
    • ipproto - Установить значение IP-протокола для сопоставления, допустимое значение варьируется от 1 до 255.
    • oif - Выбрать выходящее имя интерфейса для сопоставления.
    • sport - Диапазон порта источника (например, 1000 - 2000). Допустимое значение порта источника для диапазонов старт и окончание варьируется от 0 до 65534. Старт не может быть больше конца.
    • suppress_prefixlength - Отклонить маршрутизационные решения, которые имеют префикс длиной указанной или менее.
    • table - Таблица маршрутизации для поиска действия to-table. table поддерживает как числовую таблицу, так и именованную таблицу. Чтобы указать именованную таблицу, пользователи должны убедиться, что именованная таблица правильно определена в /etc/iproute2/rt_tables или /etc/iproute2/rt_tables.d/*.conf.
    • to - Адрес назначения пакета для сопоставления (например, 192.168.100.58/24).
    • tos - Установить значение tos для сопоставления.
    • uid - Диапазон uid для сопоставления (например, 1000 - 2000). Допустимый uid для диапазонов старт и окончание варьируется от 0 до 4294967295. Старт не может быть больше конца.
  • route_append_only

    Опция route_append_only позволяет добавлять только новые маршруты к существующим маршрутам на системе.

    Если булева опция route_append_only установлена в true, указанные маршруты будут добавлены к существующим маршрутам. Если route_append_only установлено в false (по умолчанию), текущие маршруты заменяются. Обратите внимание, что установка route_append_only в true без установки route имеет эффект сохранения текущих статических маршрутов.

  • rule_append_only

    Булева опция rule_append_only позволяет сохранить текущие маршрутизационные правила.

Примечание: Когда route_append_only или rule_append_only не указаны, роль сети удаляет текущие маршруты или маршрутизационные правила.

Примечание: Порты к мостам, связям или командам не могут указывать параметры ip.

ethtool

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

Конфигурация ethtool поддерживает следующие опции:

  • ring

Изменяет параметры rx/tx ring указанного сетевого устройства. Список поддерживаемых параметров ring:

  • rx - Изменяет количество записей кольца для Rx кольца.
  • rx-jumbo - Изменяет количество записей кольца для Rx Jumbo кольца.
  • rx-mini - Изменяет количество записей кольца для Rx Mini кольца.
  • tx - Изменяет количество записей кольца для Tx кольца.
  ethtool:
    features:
      esp_hw_offload: true|false  # необязательный
      esp_tx_csum_hw_offload: true|false  # необязательный
      fcoe_mtu: true|false  # необязательный
      gro: true|false  # необязательный
      gso: true|false  # необязательный
      highdma: true|false  # необязательный
      hw_tc_offload: true|false  # необязательный
      l2_fwd_offload: true|false  # необязательный
      loopback: true|false  # необязательный
      lro: true|false  # необязательный
      ntuple: true|false  # необязательный
      rx: true|false  # необязательный
      rx_all: true|false  # необязательный
      rx_fcs: true|false  # необязательный
      rx_gro_hw: true|false  # необязательный
      rx_udp_tunnel_port_offload: true|false  # необязательный
      rx_vlan_filter: true|false  # необязательный
      rx_vlan_stag_filter: true|false  # необязательный
      rx_vlan_stag_hw_parse: true|false  # необязательный
      rxhash: true|false  # необязательный
      rxvlan: true|false  # необязательный
      sg: true|false  # необязательный
      tls_hw_record: true|false  # необязательный
      tls_hw_tx_offload: true|false  # необязательный
      tso: true|false  # необязательный
      tx: true|false  # необязательный
      tx_checksum_fcoe_crc: true|false  # необязательный
      tx_checksum_ip_generic: true|false  # необязательный
      tx_checksum_ipv4: true|false  # необязательный
      tx_checksum_ipv6: true|false  # необязательный
      tx_checksum_sctp: true|false  # необязательный
      tx_esp_segmentation: true|false  # необязательный
      tx_fcoe_segmentation: true|false  # необязательный
      tx_gre_csum_segmentation: true|false  # необязательный
      tx_gre_segmentation: true|false  # необязательный
      tx_gso_partial: true|false  # необязательный
      tx_gso_robust: true|false  # необязательный
      tx_ipxip4_segmentation: true|false  # необязательный
      tx_ipxip6_segmentation: true|false  # необязательный
      tx_nocache_copy: true|false  # необязательный
      tx_scatter_gather: true|false  # необязательный
      tx_scatter_gather_fraglist: true|false  # необязательный
      tx_sctp_segmentation: true|false  # необязательный
      tx_tcp_ecn_segmentation: true|false  # необязательный
      tx_tcp_mangleid_segmentation: true|false  # необязательный
      tx_tcp_segmentation: true|false  # необязательный
      tx_tcp6_segmentation: true|false  # необязательный
      tx_udp_segmentation: true|false  # необязательный
      tx_udp_tnl_csum_segmentation: true|false  # необязательный
      tx_udp_tnl_segmentation: true|false  # необязательный
      tx_vlan_stag_hw_insert: true|false  # необязательный
      txvlan: true|false  # необязательный
    coalesce:
      adaptive_rx: true|false  # необязательный
      adaptive_tx: true|false  # необязательный
      pkt_rate_high: 0  # необязательный минимальное=0 максимальное=0xffffffff
      pkt_rate_low: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_frames: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_frames_high: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_frames_irq: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_frames_low: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_usecs: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_usecs_high: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_usecs_irq: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_usecs_low: 0  # необязательный минимальное=0 максимальное=0xffffffff
      sample_interval: 0  # необязательный минимальное=0 максимальное=0xffffffff
      stats_block_usecs: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_frames: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_frames_high: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_frames_irq: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_frames_low: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_usecs: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_usecs_high: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_usecs_irq: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx_usecs_low: 0  # необязательный минимальное=0 максимальное=0xffffffff
    ring:
      rx: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_jumbo: 0  # необязательный минимальное=0 максимальное=0xffffffff
      rx_mini: 0  # необязательный минимальное=0 максимальное=0xffffffff
      tx: 0  # необязательный минимальное=0 максимальное=0xffffffff

ieee802_1x

Настраивает аутентификацию 802.1x для интерфейса.

В настоящее время единственным поддерживаемым провайдером является NetworkManager и единственным поддерживаемым методом EAP является EAP-TLS.

SSL-сертификаты и ключи должны быть развернуты на хосте до выполнения роли.

  • eap

    Допустимый метод EAP, который следует использовать при аутентификации в сети с помощью 802.1x.

    В настоящее время tls является значением по умолчанию и единственным принимаемым значением.

  • identity (обязательно)

    Идентификационная строка для методов аутентификации EAP.

  • private_key (обязательно)

    Абсолютный путь к закрытому ключу клиента в формате PEM или PKCS#12, используемому для аутентификации 802.1x.

  • private_key_password

    Пароль для закрытого ключа, указанного в private_key.

  • private_key_password_flags

    Список флагов для настройки того, как управляется пароль закрытого ключа.

    Может быть указано несколько флагов.

    Допустимые флаги:

    • none
    • agent-owned
    • not-saved
    • not-required

    См. документацию NetworkManager о "Типах флагов секретов" для получения дополнительных сведений (man 5 nm-settings).

  • client_cert (обязательно)

    Абсолютный путь к сертификату клиента в формате PEM, используемому для аутентификации 802.1x.

  • ca_cert

    Абсолютный путь к корневому сертификату PEM, используемому для проверки сервера EAP.

  • ca_path

    Абсолютный путь к каталогу, содержащему дополнительные сертификаты ca, закодированные в формате pem, используемые для проверки сервера EAP. Может использоваться вместо или дополнительно к ca_cert. Не может использоваться, если включены system_ca_certs.

  • system_ca_certs

    Если установлено в true, NetworkManager будет использовать доверенные сертификаты корневых удостоверяющих центров системы для проверки сервера EAP.

  • domain_suffix_match

    Если установлено, NetworkManager будет проверять, соответствует ли имя домена сертификата сервера EAP данному значению.

bond

Настройка bond конфигурирует параметры связанных интерфейсов (тип bond). См. документацию ядра о связывании или документацию вашего дистрибутива nmcli для допустимых значений. Поддерживает следующие опции:

  • mode

    Режим связывания. Возможные значения: balance-rr (по умолчанию), active-backup, balance-xor, broadcast, 802.3ad, balance-tlb или balance-alb.

  • ad_actor_sys_prio

    В режиме связывания 802.3ad это задает приоритет системы. Допустимый диапазон — от 1 до 65535.

  • ad_actor_system

    В режиме связывания 802.3ad это задает mac-адрес системы для участника в обмене протокольными пакетами (LACPDUs).

  • ad_select

    Эта опция указывает логику выбора агрегации 802.3ad, которую следует использовать. Возможные значения: stable, bandwidth, count.

  • ad_user_port_key

    В режиме связывания 802.3ad это определяет верхние 10 бит ключа порта. Допустимый диапазон для значения: от 0 до 1023.

  • all_ports_active

    all_slaves_active в ядре и NetworkManager. Булевое значение false удаляет дублированные фреймы (полученные на неактивных портах) а булевое значение true передает дублированные фреймы.

  • arp_all_targets

    Эта опция определяет количество arp_ip_targets, которые должны быть доступны, чтобы ARP-монитор мог считать порт активным. Возможные значения: any или all.

  • arp_interval

    Эта опция определяет частоту мониторинга ссылки ARP в миллисекундах. Значение 0 отключает мониторинг ARP.

  • arp_validate

    В любом режиме, поддерживающем мониторинг ARP, эта опция указывает, следует ли проверять ARP-запросы и ответы. Или для целей мониторинга ссылки, следует ли фильтровать (игнорировать) не-ARP-трафик. Возможные значения: none, active, backup, all, filter, filter_active, filter_backup.

  • arp_ip_target

    Когда arp_interval включен, эта опция определяет IP-адреса для использования в качестве аудиторов мониторинга ARP.

  • downdelay

    Время ожидания (в миллисекундах) перед отключением порта после того, как была обнаружена сбой связи.

  • fail_over_mac

    Эта опция указывает политику выбора MAC-адреса для интерфейса связи в режиме active-backup. Возможные значения: none (по умолчанию), active, follow.

  • lacp_rate

    В режиме связывания 802.3ad эта опция определяет скорость, с которой мы просим подключенного устройства передавать пакеты LACPDU. Возможные значения: slow, fast.

  • lp_interval

    Эта опция указывает количество секунд между инстанциями, когда драйвер связи отправляет пакеты обучения в каждое парное устройство.

  • miimon

    Устанавливает интервал мониторинга MII ссылки (в миллисекундах).

  • min_links

    Эта опция определяет минимальное количество активных ссылок, которое должно быть активным перед утверждением носителя.

  • num_grat_arp

    Эта опция определяет количество уведомлений для парных устройств (gratuitous ARP), которые будут выдаваться после события переключения. Допустимый диапазон для значения: от 0 до 255.

  • packets_per_port

    В режиме связывания balance-rr эта опция определяет количество пакетов, разрешенных для порта в сетевой передаче, прежде чем перейти к следующему. Допустимый диапазон для значения: от 0 до 65535.

  • peer_notif_delay

    Эта опция определяет задержку (в миллисекундах) между каждым уведомлением для парных устройств, которые выдаются после события переключения.

  • primary

    Эта опция определяет основное устройство.

  • primary_reselect

    Эта опция указывает политику повторного выбора для основного порта. Возможные значения: always, better, failure.

  • resend_igmp

    Эта опция определяет количество отчетов о членстве IGMP, которые должны быть выданы после события переключения. Допустимый диапазон для значения: от 0 до 255.

  • tlb_dynamic_lb

    Эта опция указывает, включена ли динамическая перестановка потоков в режиме tlb. Булевое значение true включает перемешивание потока, а булевое значение false отключает его.

  • updelay

    Эта опция определяет время (в миллисекундах), которое нужно подождать перед включением порта после восстановления связи.

  • use_carrier

    Эта опция указывает, должен ли miimon использовать MII или ETHTOOL ioctl, чтобы определить статус связи. Булевое значение true включает использо

Установить
ansible-galaxy install linux-system-roles/network
Лицензия
bsd-3-clause
Загрузки
245180
Владелец