network
linux-system-roles/network
Обзор
Роль 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
: соблюдать стандартное поведение в NetworkManagerpermanent
: использовать постоянный 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
включает использо
Configure networking
ansible-galaxy install linux-system-roles/network