linux-system-roles.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 может принимать следующие значения:
ethernetbridgebondteamvlanmacvlaninfinibandwirelessdummy
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_key0x0000 и 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(обязательно)Любой ключ из следующего списка ключей:
owesaewpa-eapwpa-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), рекомендуется всегда заключать значение в двойные кавычки, и иногда это необходимо.
Для
NetworkManagermacявляется постоянным MAC-адресом,ethernet.mac-address.Для
initscriptsmac— это текущий сконфигурированный 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_optionsdns_optionsподдерживается только для провайдера NetworkManager. Ручная конфигурация DNS с помощью списка опций DNS может быть дана черезdns_options. Список поддерживаемых опций DNS для IPv4 серверов имен описан в man 5 resolv.conf. В настоящее время список поддерживаемых опций DNS включает:attempts:ndebugedns0inet6ip6-bytestringip6-dotintndots:nno-aaaano-check-namesno-ip6-dotintno-reloadno-tld-queryrotatesingle-requestsingle-request-reopentimeout:ntrust-aduse-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Для
NetworkManagerroute_metric4иroute_metric6соответствуют свойствамipv4.route-metricиipv6.route-metricсоответственно. При указании определяет метрику маршрута для маршрутов, присвоенных DHCP и маршрута по умолчанию, а значит, приоритет для нескольких интерфейсов. Дляinitscriptsroute_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Список флагов для настройки того, как управляется пароль закрытого ключа.
Может быть указано несколько флагов.
Допустимые флаги:
noneagent-ownednot-savednot-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_activeall_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