linux-system-roles.network
linux-system-roles/netzwerk
Überblick
Die netzwerk
-Rolle ermöglicht es Benutzern, das Netzwerk auf den Zielmaschinen zu konfigurieren. Diese Rolle kann verwendet werden, um Folgendes zu konfigurieren:
- Ethernet-Schnittstellen
- Brückenschnittstellen
- Bonded-Schnittstellen
- VLAN-Schnittstellen
- MacVLAN-Schnittstellen
- Infiniband-Schnittstellen
- Drahtlose (WiFi) Schnittstellen
- IP-Konfiguration
- 802.1x Authentifizierung
Einführung
Die netzwerk
-Rolle unterstützt zwei Provider: nm
und initscripts
. nm
wird standardmäßig seit RHEL7 verwendet und initscripts
in RHEL6. Der initscripts
-Provider erfordert das Paket network-scripts
, das in RHEL8 veraltet ist und in RHEL9 entfernt wurde. Diese Provider können pro Host über die Variable network_provider
konfiguriert werden. In Abwesenheit einer expliziten Konfiguration wird es basierend auf der Distribution automatisch erkannt. Beachten Sie jedoch, dass entweder nm
oder initscripts
nicht an eine bestimmte Distribution gebunden ist. Die netzwerk
-Rolle funktioniert überall, wo die erforderliche API verfügbar ist. Das bedeutet, dass nm
mindestens API-Version 1.2 von NetworkManager benötigt, und bestimmte von nm
unterstützte Einstellungen benötigen ebenfalls eine höhere API-Version von NetworkManager.
Die netzwerk
-Rolle unterstützt zwei Module: netzwerk_connections
und netzwerk_state
.
Für jeden Host kann eine Liste von Netzwerprofilen über die Variable netzwerk_connections
konfiguriert werden.
Für
initscripts
entsprechen die Profile ifcfg-Dateien im Verzeichnis/etc/sysconfig/network-scripts/
, und diese ifcfg-Dateien enthalten die ZeileNM_CONTROLLED=no
.Bei
nm
entsprechen die Profile Verbindungprofile, die von NetworkManager verwaltet werden, und nur die im Keyfile-Format von NetworkManager unterstützten Profile sind ab RHEL9 im Verzeichnis/etc/NetworkManager/system-connections/
zulässig.
Für jeden Host kann die Netzwerkkonfigurationszustandskonfiguration auch direkt über die Variable netzwerk_state
auf die Schnittstelle angewendet werden, und nur der nm
-Provider unterstützt die Verwendung der Variable netzwerk_state
.
Beachten Sie, dass die netzwerk
-Rolle sowohl auf die Verbindungsprofile der Geräte (über die Variable netzwerk_connections
) als auch direkt auf die Geräte (über die Variable netzwerk_state
) wirkt. Wenn die Verbindungsprofile über die Rolle konfiguriert werden, wird standardmäßig der Profilname als Schnittstellenname verwendet. Es ist auch möglich, generische Profile zu erstellen, z.B. ein Profil mit einer bestimmten IP-Konfiguration zu erstellen, ohne das Profil zu aktivieren. Um die Konfiguration auf die tatsächliche Netzwerkschnittstelle anzuwenden, verwenden Sie die nmcli
-Befehle auf dem Zielsystem.
Warnung: Die netzwerk
-Rolle aktualisiert oder erstellt alle Verbindungsprofile auf dem Zielsystem, wie in der Variable netzwerk_connections
angegeben. Daher entfernt die netzwerk
-Rolle Optionen aus den angegebenen Profilen, wenn die Optionen nur auf dem System vorhanden sind, aber nicht in der Variable netzwerk_connections
. Ausnahmen sind unten aufgeführt. Eine teilweise Netzwerkkonfiguration kann jedoch erreicht werden, indem die Netzwerkkonfigurationszustandskonfiguration in der Variable netzwerk_state
angegeben wird.
Anforderungen
Siehe unten
Sammlung Anforderungen
Die Rolle benötigt externe Sammlungen nur für die Verwaltung von rpm-ostree
-Knoten. Bitte führen Sie den folgenden Befehl aus, um sie zu installieren, wenn Sie rpm-ostree
-Knoten verwalten müssen:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variablen
Die netzwerk
-Rolle wird über Variablen konfiguriert, die mit netzwerk_
als Namenspräfix beginnen. Liste der Variablen:
netzwerk_provider
- Die Variablenetzwerk_provider
ermöglicht es, einen bestimmten Provider (nm
oderinitscripts
) festzulegen. Wenn Sie es auf{{ network_provider_os_default }}
setzen, wird der Provider basierend auf dem Betriebssystem festgelegt. Dies ist normalerweisenm
, es sei denn, es handelt sich um RHEL 6 oder CentOS 6-Systeme. Das Ändern des Providers für ein bestehendes Profil wird nicht unterstützt. Um die Provider zu wechseln, wird empfohlen, zuerst die Profile mit dem alten Provider zu entfernen und dann neue Profile mit dem neuen Provider zu erstellen.netzwerk_connections
- Die Verbindungsprofile werden alsnetzwerk_connections
konfiguriert, was eine Liste von Wörterbüchern ist, die spezifische Optionen enthalten.netzwerk_allow_restart
- Standardmäßig auffalse
. Um nach der Installation Plugins von NetworkManager zu laden, muss NetworkManager neu gestartet werden. Zum Beispiel, wenn eine drahtlose Verbindung konfiguriert ist und NetworkManager-wifi nicht installiert ist, muss NetworkManager neu gestartet werden, bevor die Verbindung konfiguriert werden kann. Der Neustart kann zu einem Verlust der Konnektivität führen, deshalb erlaubt die Rolle dies nicht ohne ausdrückliche Zustimmung. Der Benutzer kann dem zustimmen, indem ernetzwerk_allow_restart
auftrue
setzt. Das Setzen vonnetzwerk_allow_restart
auffalse
verhindert, dass die Rolle NetworkManager neu startet.netzwerk_state
- Die Netzwerkkonfigurationseinstellungen können im verwalteten Host konfiguriert werden, und das Format sowie die Syntax der Konfiguration sollten mit den nmstate-Beispielen (YAML) übereinstimmen.
Beispiele für Variablen
Einstellen der Variablen
netzwerk_provider: nm
netzwerk_connections:
- name: eth0
#...
netzwerk_allow_restart: true
netzwerk_provider: nm
netzwerk_state:
interfaces:
- name: eth0
#...
routes:
config:
#...
dns-resolver:
config:
#...
Optionen von netzwerk_connections
Die Variable netzwerk_connections
ist eine Liste von Wörterbüchern, die die folgenden Optionen enthalten. Liste der Optionen:
name
(normalerweise erforderlich)
Die name
-Option identifiziert das Verbindungsprofil, das konfiguriert werden soll. Es ist nicht der Name der Netzwerkschnittstelle, auf die das Profil angewendet wird, obwohl wir das Profil mit einer Schnittstelle verknüpfen und ihnen den gleichen Namen geben können. Beachten Sie, dass Sie mehrere Profile für dasselbe Gerät haben können, aber jedes Mal kann nur ein Profil auf dem Gerät aktiv sein. Für NetworkManager kann eine Verbindung nur auf einem Gerät aktiv sein.
Für
NetworkManager
entspricht diename
-Option derconnection.id
Eigenschaftenoption. Obwohl NetworkManager mehrere Verbindungen mit derselbenconnection.id
unterstützt, kann dienetzwerk
-Rolle ein Duplikatname
nicht verarbeiten. Mehrfaches Angeben einesname
bezieht sich auf dasselbe Verbindungsprofil.Für
initscripts
bestimmt diename
-Option den ifcfg-Dateinamen/etc/sysconfig/network-scripts/ifcfg-$NAME
. Beachten Sie, dass dername
nicht dasDEVICE
angibt, sondern einen Dateinamen. Folglich ist'/'
kein gültiges Zeichen für denname
.
Sie können auch das gleiche Verbindungsprofil mehrmals verwenden. Daher ist es möglich, ein Profil zu erstellen und es getrennt zu aktivieren.
Hinweis: Die netzwerk
-Rolle ändert nur die Profile, die in der Variable netzwerk_connections
angegeben sind. Wenn also nur die Ports eines Profils angegeben sind, die vom Controller entfernt werden sollen und der Controller nicht angegeben ist, bleibt das Controllerprofil auf dem System. Dies kann passieren, wenn beispielsweise alle Ports von einer Bond-Schnittstelle entfernt werden.
Hinweis: Um alle Profile auf einem System zu entfernen, die nicht in der Variable netzwerk_connections
angegeben sind, fügen Sie einen Eintrag ohne Namen und persistent_state: absent
hinzu. Dies entfernt alle verbleibenden Profile:
netzwerk_connections:
- name: eth0 # Profile, die im System beibehalten/configuriert werden sollen
[...]
- persistent_state: absent # Alle anderen Profile entfernen
state
Die state
-Option identifiziert, was der Laufzeitstatus jedes Verbindungsprofils ist. Die state
-Option (optional) kann auf die folgenden Werte gesetzt werden:
up
- das Verbindungsprofil ist aktiviertdown
- das Verbindungsprofil ist deaktiviert
state: up
Für
NetworkManager
entspricht diesnmcli connection id {{name}} up
.Für
initscripts
entspricht diesifup {{name}}
.
Wenn die state
-Option auf up
gesetzt ist, können Sie auch die wait
-Option (optional) angeben:
wait: 0
- initiiert nur die Aktivierung, wartet jedoch nicht darauf, dass das Gerät vollständig verbunden ist. Die Verbindung wird im Hintergrund abgeschlossen, z. B. nachdem ein DHCP-Lease erhalten wurde.wait: <seconds>
ist ein Timeout, das es Ihnen ermöglicht zu entscheiden, wie lange Sie dem Gerät Zeit geben, um sich zu aktivieren. Der Standardwert verwendet einen geeigneten Timeout. Beachten Sie, dass diewait
-Option nur von NetworkManager unterstützt wird.
Beachten Sie, dass state: up
immer das Profil reaktiviert und möglicherweise die Netzwerkeinstellungen ändert, selbst wenn das Profil zuvor bereits aktiv war. Folglich verändert state: up
immer das System.
state: down
Für
NetworkManager
entspricht esnmcli connection id {{name}} down
.Für
initscripts
entspricht es dem Aufrufifdown {{name}}
.
Sie können ein Verbindungsprofil deaktivieren, selbst wenn es derzeit nicht aktiv ist. Folglich ändert state: down
immer das System.
Beachten Sie, dass, wenn die state
-Option nicht gesetzt ist, der Laufzeitstatus des Verbindungsprofils nicht geändert wird.
persistent_state
Die persistent_state
-Option identifiziert, ob ein Verbindungsprofil persistent (auf der Festplatte gespeichert) ist. Die persistent_state
-Option kann auf die folgenden Werte gesetzt werden:
persistent_state: present
(Standard)
Beachten Sie, dass, wenn persistent_state
present
ist und das Verbindungsprofil die type
-Option enthält, das Profil erstellt oder aktualisiert wird. Wenn das Verbindungsprofil unvollständig ist (keine type
-Option), ist das Verhalten undefiniert. Der Wert present
führt auch nicht direkt zu einer Änderung der Netzwerkkonfiguration. Wenn die state
-Option nicht auf up
gesetzt ist, wird das Profil nur erstellt oder geändert, nicht aktiviert.
Für NetworkManager wird das neue Verbindungsprofil standardmäßig mit der autoconnect
-Option aktiviert. Daher kann NetworkManager das neue Profil auf einem derzeit nicht verbundenen Gerät aktivieren. (rh#1401515).
persistent_state: absent
Der Wert absent
stellt sicher, dass das Profil nicht auf dem Zielhost vorhanden ist. Wenn ein Profil mit dem angegebenen name
existiert, wird es gelöscht. In diesem Fall:
NetworkManager
löscht alle Verbindungsprofile mit dem entsprechendenconnection.id
. Das Löschen eines Profils ändert normalerweise nicht die aktuelle Netzwerkkonfiguration, es sei denn, das Profil war derzeit aktiv auf einem Gerät. Wenn das derzeit aktive Verbindungsprofil gelöscht wird, trennt dies das Gerät. Dadurch kann das Gerät eine andere Verbindung automatisch herstellen (für weitere Details siehe rh#1401515).initscripts
löscht in den meisten Fällen die ifcfg-Datei, ohne Einfluss auf den aktuellen Laufzeitstatus des Systems, es sei denn, eine Komponente überwacht das Sysconfig-Verzeichnis.
Hinweis: Für Profile, die nur eine state
-Option enthalten, aktiviert oder deaktiviert die netzwerk
-Rolle nur die Verbindung, ohne ihre Konfiguration zu ändern.
type
Die type
-Option kann auf die folgenden Werte gesetzt werden:
ethernet
bridge
bond
team
vlan
macvlan
infiniband
wireless
dummy
type: ethernet
Wenn der Typ ethernet
ist, kann es ein zusätzliches ethernet
-Wörterbuch mit den folgenden Elementen (Optionen) geben: autoneg
, speed
und duplex
, die den Einstellungen des ethtool
-Werkzeugs mit demselben Namen entsprechen.
autoneg
:true
(Standard) oderfalse
[wenn die automatische Aushandlung aktiviert oder deaktiviert ist]speed
: Geschwindigkeit in Mbit/sduplex
:half
oderfull
Beachten Sie, dass die Werte speed
und duplex
erforderlich sind, wenn die automatische Aushandlung deaktiviert ist (autoneg: false
).
type: bridge
, type: bond
, type: team
Die Gerätetypen bridge
, bond
, team
funktionieren ähnlich. Beachten Sie, dass team
in RHEL6-Kernen nicht unterstützt wird und in RHEL 9 veraltet ist.
Für Ports müssen die Eigenschaften port_type
und controller
festgelegt werden. Beachten Sie, dass Ports keine ip
-Einstellungen haben sollten, was bedeutet, dass die aktiven Ports keine IP-Adressen zugewiesen bekommen.
Der controller
bezieht sich auf den name
eines Profils im Ansible-Playbook. Es ist weder ein Schnittstellenname noch eine Verbindung-id von NetworkManager.
Für NetworkManager wird
controller
in dieconnection.uuid
des entsprechenden Profils umgewandelt.Für initscripts wird der Controller als
DEVICE
aus der entsprechenden ifcfg-Datei nachgeschlagen.
Da der controller
auf andere Profile derselben oder einer anderen Rolle verweist, spielt die Reihenfolge der connections
-Liste eine Rolle. Profile, die von anderen Profilen referenziert werden, müssen zuerst angegeben werden. Außerdem ignoriert --check
den Wert von controller
und geht davon aus, dass er während einer echten Ausführung vorhanden ist. Das bedeutet, dass, im Falle eines ungültigen controller
, --check
möglicherweise auf Erfolg signalisiert, aber der tatsächliche Play-Lauf fehlschlägt.
Wenn nur das controller
-Profil deaktiviert wird, werden die Portprofile automatisch heruntergefahren. Wenn die Verbindung für einige oder alle Ports heruntergefahren wird, bleibt das Controllerprofil aktiv.
Der team
-Typ verwendet roundrobin
als runner
-Konfiguration. Momentan werden keine weiteren Konfigurationen unterstützt.
type: vlan
Ähnlich wie controller
verweist parent
auf das Verbindungsprofil in der Ansible-Rolle. Die VLAN-ID kann durch Verwendung der eingebetteten VLAN-Einstellung angegeben werden, wobei der gültige VLAN-ID-Wert von 0 bis 4094 reicht. Hier ist, wie die VLAN-ID angegeben werden kann:
type: vlan
vlan:
id: 6
type: macvlan
Ähnlich wie controller
und vlan
verweist parent
auf das Verbindungsprofil in der Ansible-Rolle.
type: infiniband
Für die Infiniband-Verbindung wird derzeit nur der nm-Provider unterstützt, und die folgenden Optionen werden unterstützt:
p_key
: Der P_Key für die Infiniband-Verbindung, der für das Gerät verwendet werden soll. Wenn dies nicht angegeben ist, wird die Verbindung auf den physischen Infiniband-Fabrics erstellt. Andernfalls ist es ein 16-Bit-Unsignierter ganzzahliger Wert, und die ipoib (IP über Infiniband) Verbindung wird erstellt, wobei das höchste Bit gesetzt werden sollte, wenn es sich um einen "vollständigen Mitgliedschaft" P_Key handelt. Die speziellen Wertep_key
von 0x0000 und 0x8000 sind ungültig, da der Kernel diese nicht unterstützt.transport_mode
: Der Betriebsmodus der ipoib (IP über Infiniband)-Verbindung. Die möglichen Modi sinddatagram
(Standard) undconnected
.
Hinweis: Wenn der p_key
angegeben ist, muss der interface_name
nicht gesetzt werden.
type: wireless
Der wireless
-Typ unterstützt WPA-PSK (Passwort) Authentifizierung, WPA-EAP (802.1x) Authentifizierung, WPA3-Personal SAE (Passwort) Authentifizierung und Enhanced Open (OWE).
nm
(NetworkManager) ist der einzige unterstützte netzwerk_provider
für diesen Typ.
Wenn WPA-EAP verwendet wird, müssen die ieee802_1x-Einstellungen im ieee802_1x Optionen definiert werden.
Die folgenden Optionen werden unterstützt:
ssid
: Die SSID des drahtlosen Netzwerks (erforderlich)key_mgmt
(erforderlich)Jeder Schlüssel aus der folgenden Schlüsselliste:
owe
sae
wpa-eap
wpa-psk
password
: Passwort für das Netzwerk (erforderlich, wennwpa-psk
odersae
verwendet wird)
type: dummy
Dummy-Netzwerkschnittstelle, nm
(NetworkManager) ist der einzige unterstützte netzwerk_provider
für diesen Typ.
autoconnect
Standardmäßig werden Profile mit aktiviertem autoconnect erstellt.
Für
NetworkManager
entspricht dies derconnection.autoconnect
-Eigenschaft.Für
initscripts
entspricht dies derONBOOT
-Eigenschaft.
mac
Die mac
-Adresse ist optional und beschränkt das Profil, nur auf Geräten mit der angegebenen MAC-Adresse verwendbar. mac
ist nur für den type
ethernet
oder infiniband
zulässig, um ein nicht virtuelles Gerät mit dem Profil übereinstimmen. Der Wert der mac
-Adresse muss in hexadezimaler Notation mit Doppelpunkten angegeben werden (z.B. mac: "00:00:5e:00:53:5d"
). Um zu vermeiden, dass YAML Adressen als Ganzzahlen im Sexagesimalformat (Basis 60) interpretiert, wird empfohlen, den Wert immer in Anführungszeichen zu setzen.
Für
NetworkManager
istmac
die permanente MAC-Adresse,ethernet.mac-address
.Für
initscripts
istmac
die aktuell konfigurierte MAC-Adresse des Geräts (HWADDR
).
cloned_mac
Die cloned_mac
-Adresse ist optional und erlaubt es, die Strategie zur Erlangung der Standard-MAC- oder Festlegung einer eigenen MAC anzugeben. Der Wert der cloned_mac
-Adresse muss in hexadezimaler Notation wie die mac
-Eigenschaft angegeben werden. Neben dem ausdrücklich festgelegten Wert als MAC-Adresse in hexadezimaler Notation werden auch die folgenden speziellen Werte unterstützt:
default
: das Standardverhalten in NetworkManager berücksichtigenpermanent
: verwenden Sie die permanente MAC-Adresse des Gerätspreserve
: ändern Sie die MAC-Adresse des Geräts bei Aktivierung nichtrandom
: generieren Sie einen zufälligen Wert bei jeder Verbindungstable
: generieren Sie eine stabile, gehashte MAC-Adresse
mtu
Die mtu
-Option gibt die maximale Übertragungseinheit für das Gerät des Profils an. Der maximal zulässige Wert hängt vom Gerät ab. Bei virtuellen Geräten hängt der maximal zulässige Wert der mtu
-Option vom zugrunde liegenden Gerät ab.
interface_name
Für die Typen ethernet
und infiniband
schränkt die interface_name
-Option das Profil auf die angegebene Schnittstelle nach Name ein. Dieses Argument ist optional, und standardmäßig wird der Profilname verwendet, es sei denn, eine MAC-Adresse wird mit dem mac
-Schlüssel angegeben. Das Angeben einer leeren Zeichenfolge (""
) bedeutet, dass das Profil nicht auf eine Netzwerkschnittstelle beschränkt ist.
Hinweis: Mit persistenter Schnittstellennamensgebung ist die Schnittstelle basierend auf der Hardware-Konfiguration vorhersagbar. Andernfalls könnte die mac
-Adresse eine Option sein.
Für virtuelle Schnittstellentypen wie Brücken ist der interface_name
der Name der erstellten Schnittstelle. Im Falle eines fehlenden interface_name
wird der Name des Profils verwendet.
Hinweis: Der name
(der Profilname) und der interface_name
(der Geräte-Name) können unterschiedlich sein oder das Profil ist überhaupt nicht an eine Schnittstelle gebunden.
match
Einstellungen zur Spezifizierung von Geräten oder Systemen, die ein Profil entsprechen. Derzeit wird nur die path
-Einstellung implementiert.
Die Einstellungen unterstützen eine Liste von Mustern, die die folgenden Modifikatoren und Wildcards unterstützen:
Spezielle Modifikatoren für match
-Einstellungen:
|
, das Element ist ein alternatives Element, die Übereinstimmung wird als wahr ausgewertet, wenn mindestens eines der Alternativen übereinstimmt (logisches ODER). Standardmäßig ist ein Element ein alternatives Element. Das bedeutet, dass ein Elementfoo
sich gleich verhält wie|foo
&
, das Element ist obligatorisch, die Übereinstimmung wird als wahr bewertet, wenn alle Elemente übereinstimmen (logisches UND).!
, ein Element kann auch mit einem Ausrufezeichen (!
) invertiert werden, während zwischen dem Pipe-Zeichen (oder dem Ampersand) und dem Muster verwendet wird. Beachten Sie, dass!foo
eine Abkürzung für die obligatorische Übereinstimmung&!foo
ist.\
, ein Backslash kann am Anfang des Elements (nach den optionalen Sonderzeichen) verwendet werden, um den Beginn des Musters zu maskieren. Zum Beispiel ist&\!a
eine obligatorische Übereinstimmung für wörtlich!a
.
Wildcard-Muster für match
-Einstellungen:
Im Allgemeinen funktionieren diese wie Shell-Gobs.
*
, entspricht null oder mehr beliebigen Zeichen?
, entspricht jedem einzelnen Zeichen[fo]
- entspricht einem einzelnenf
odero
Zeichen - unterstützt auch Bereiche -[0-9]
entspricht jedem einzelnen Ziffernzeichen
path
Die path
-Einstellung ist eine Liste von Mustern, die gegen die ID_PATH
udev-Eigenschaft von Geräten übereinstimmen. Die ID_PATH
-udev-Eigenschaft stellt den festen Pfad eines Geräts dar. Sie besteht aus einer Subsystemzeichenfolge (pci, usb, plattform usw.) und einem subsystem-spezifischen Identifikator. Der ID_PATH
eines Geräts kann mit dem Befehl udevadm info /sys/class/net/$dev | grep ID_PATH=
abgerufen werden oder durch einen Blick auf die path
-Eigenschaft, die von NetworkManager exportiert wird (nmcli -f general.path device show $dev
). Die path
-Einstellung ist optional und schränkt das Profil auf aktive Schnittstellen nur mit einem passenden ID_PATH
ein. Die path
-Einstellung wird nur für Ethernet- oder Infiniband-Profile unterstützt. Es unterstützt Modifikatoren und Wildcards, wie sie für match-Einstellungen beschrieben sind.
zone
Die zone
-Option legt die Firewalld-Zone für die Schnittstelle fest.
Ports zu Brücken-, Bond- oder Teamgeräten können keine Zone angeben.
ip
Die IP-Konfiguration unterstützt die folgenden Optionen:
address
Manuelle Adressierung kann über eine Liste von Adressen unter deraddress
-Option angegeben werden.auto_gateway
Wenn aktiviert, wird eine Standardroute unter Verwendung des Standard-Gateways konfiguriert. Wenn deaktiviert, wird die Standardroute entfernt.
Wenn diese Variable nicht angegeben ist, verwendet die Rolle das Standardverhalten des ausgewählten
netzwerk_provider
.Das Setzen dieser Option auf
false
entspricht:DEFROUTE = no
in initscripts, oderipv4.never-default/ipv6.never-default yes
in nmcli.
dhcp4
,auto6
undipv6_disabled
Auch die manuelle Adressierung kann angegeben werden, indem entweder
dhcp4
oderauto6
festgelegt wird. Derdhcp4
-Schlüssel steht für DHCPv4 undauto6
für Stateful Address Auto Configuration (SLAAC). Beachten Sie, dass die Schlüsseldhcp4
undauto6
weggelassen werden können und der Standardwert von der Anwesenheit manueller Adressen abhängt.ipv6_disabled
kann festgelegt werden, um ipv6 für die Verbindung zu deaktivieren.dhcp4_send_hostname
Wenn
dhcp4
aktiviert ist, kann konfiguriert werden, ob die DHCPv4-Anfrage den Hostnamen über diedhcp4_send_hostname
-Option enthält. Beachten Sie, dassdhcp4_send_hostname
nur vomnm
-Provider unterstützt wird und deripv4.dhcp-send-hostname
Eigenschaft entspricht.dns
Manuelle DNS-Konfiguration kann über eine Liste von Adressen, die in der
dns
-Option angegeben sind, festgelegt werden.dns_search
Manuelle DNS-Konfiguration kann über eine Liste von Domänen, die in der
dns_search
-Option angegeben sind, festgelegt werden.dns_options
dns_options
wird nur für den NetworkManager-Provider unterstützt. Eine manuelle DNS-Konfiguration über eine Liste von DNS-Optionen kann indns_options
angegeben werden. Die Liste der unterstützten DNS-Optionen für IPv4-Namensserver wird in man 5 resolv.conf beschrieben. Derzeit werden folgende DNS-Optionen unterstützt: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
Hinweis: Die Einstellung "trust-ad" wird nur beachtet, wenn das Profil Namensserver zu resolv.conf beiträgt und alle beitragenden Profile "trust-ad" aktiviert haben. Wenn ein Caching-DNS-Plugin (dnsmasq oder systemd-resolved in NetworkManager.conf) verwendet wird, werden dann "edns0" und "trust-ad" automatisch hinzugefügt.
dns_priority
Priorität der DNS-Server. Die relative Priorität für die von dieser Einstellung angegebenen DNS-Server. Der Standardwert beträgt 0, ein niedrigerer numerischer Wert hat eine höhere Priorität. Der gültige Wert von
dns_priority
reicht von -2147483648 bis 2147483647. Negative Werte haben die spezielle Wirkung, andere Konfigurationen mit einem höheren numerischen Prioritätswert auszuschließen; Legt fest, dass bei Vorliegen von mindestens einer negativen Priorität nur die DNS-Server aus Verbindung mit dem niedrigsten Prioritätswert verwendet werden.gateway4
undgateway6
Das Standardgateway für IPv4 (
gateway4
) oder IPv6 (gateway6
)-Pakete.ipv4_ignore_auto_dns
undipv6_ignore_auto_dns
Wenn aktiviert, werden die automatisch konfigurierten Nameserver und Suchdomänen (über DHCPv4, DHCPv6, Modem usw.) für IPv4 oder IPv6 ignoriert; nur die in den
dns
- unddns_search
-Eigenschaften angegebenen Namensserver und Suchdomänen werden verwendet. Die Einstellungen unterscheiden sich nach Adressfamilien. Die Variablen werden vom initscripts-Provider nicht unterstützt.Wenn die Variablen nicht angegeben sind, wird die Rolle das Standardverhalten des nm-Providers nutzen.
route_metric4
undroute_metric6
Für
NetworkManager
entsprechenroute_metric4
undroute_metric6
denipv4.route-metric
undipv6.route-metric
Eigenschaften respektive. Wenn angegeben, bestimmt es das Routen-Metrik für von DHCP zugewiesene Routen und das Standardgateway und damit die Priorität für mehrere Interfaces. Fürinitscripts
legtroute_metric4
die Metrik für die Standardroute fest, undroute_metric6
wird nicht unterstützt.route
Statische Routen können über eine Liste von Routen, die in der
route
-Option angegeben sind, konfiguriert werden. Der Standardwert ist eine leere Liste. Jede Route ist ein Wörterbuch mit den folgenden Einträgen:gateway
,metric
,network
,prefix
,src
,table
undtype
.network
undprefix
geben das Zielnetzwerk an.src
gibt die Quell-IP-Adresse für eine Route an.table
unterstützt sowohl die numerische als auch die benannte Tabelle. Um die benannte Tabelle anzugeben, müssen die Benutzer sicherstellen, dass die benannte Tabelle ordnungsgemäß in/etc/iproute2/rt_tables
oder/etc/iproute2/rt_tables.d/*.conf
definiert ist. Der optionaletype
-Schlüssel unterstützt die Werteblackhole
,prohibit
undunreachable
. Siehe man 8 ip-route für ihre Definition. Routen mit diesen Typen unterstützen kein Gateway. Wenn der Typ nicht angeben wird, wird die Route als unicast Route betrachtet. Beachten Sie, dass die classless inter-domain routing(CIDR)-Notation oder die Netzwerk-Maskennotation für dennetwork
-Schlüssel nicht unterstützt wird.routing_rule
Die policyrouting-Regeln können über eine Liste von Regeln, die in der
routing_rule
-Option angegeben sind, konfiguriert werden, die es ermöglichen, die Pakete nach anderen Paketen zu routen als der Zieladresse. Der Standardwert ist eine leere Liste. Jede Regel ist ein Wörterbuch mit den folgenden Einträgen:priority
- Die Priorität der Regel. Eine gültige Priorität reicht von 0 bis 4294967295. Eine höhere Zahl bedeutet eine niedrigere Priorität.action
- Die Aktion der Regel. Die möglichen Werte sindto-table
(Standard),blackhole
,prohibit
,unreachable
.dport
- Der Bereich des Zielport (z.B.1000 - 2000
). Ein gültiger dport-Wert für beide Start- und Endwerte reicht von 0 bis 65534. Der Startwert darf nicht größer als der Endwert sein.family
- Die IP-Familie der Regel. Die möglichen Werte sindipv4
undipv6
.from
- Die Quelladresse des Pakets, die übereinstimmen soll (z.B.192.168.100.58/24
).fwmark
- Der fwmark-Wert des Pakets, um Übereinstimmungen zu erzielen.fwmask
- Der fwmask-Wert des Pakets, um Übereinstimmungen zu erzielen.iif
- Wählen Sie den eingehenden Schnittstellennamen zum Übereinstimmen.invert
- Invertieren der ausgewählten Übereinstimmung der Regel. Die möglichen Werte sind boolesche Wertetrue
undfalse
(Standard). Wenn der Werttrue
ist, entspricht dies der Übereinstimmung mit jedem Paket, das nicht die ausgewählte Übereinstimmung der Regel erfüllt.ipproto
- Wählt den IP-Protokollwert zum Übereinstimmen; der gültige Wert reicht von 1 bis 255.oif
- Wählt den ausgehenden Schnittstellennamen zur Übereinstimmung.sport
- Der Bereich des Quellport (z.B.1000 - 2000
). Ein gültiger sport-Wert für beide Start- und Endwerte reicht von 0 bis 65534. Der Startwert darf nicht größer als der Endwert sein.suppress_prefixlength
- Lehnt Routingentscheidungen ab, die die angegebene oder kürzere Präfixlänge aufweisen.table
- Die Routen-Tabelle, die für dieto-table
-Aktion nachgeschlagen werden soll.table
unterstützt sowohl die numerische als auch die benannte Tabelle. Um die benannte Tabelle anzugeben, müssen die Benutzer sicherstellen, dass die benannte Tabelle ordnungsgemäß in/etc/iproute2/rt_tables
oder/etc/iproute2/rt_tables.d/*.conf
definiert ist.to
- Die Zieladresse des Pakets, die übereinstimmen soll (z.B.192.168.100.58/24
).tos
- Wählen Sie den tos-Wert, um übereinzustimmen.uid
- Der Bereich der uid, um Übereinstimmungen zu erzielen (z.B.1000 - 2000
). Ein gültiger uid-Wert für beide Start- und Endwerte reicht von 0 bis 4294967295. Der Startwert darf nicht größer als der Endwert sein.
route_append_only
Die
route_append_only
-Option erlaubt es nur, neue Routen zu den vorhandenen Routen im System hinzuzufügen.Wenn die boolesche Option
route_append_only
auftrue
gesetzt ist, werden die angegebenen Routen zum aktuellen Routen hinzugefügt. Wennroute_append_only
auffalse
(Standard) gesetzt ist, werden die aktuellen Routen ersetzt. Beachten Sie, dass das Setzen vonroute_append_only
auftrue
ohneroute
anzugeben, den Effekt hat, die aktuellen statischen Routen beizubehalten.rule_append_only
Die
rule_append_only
-boolesche Option ermöglicht es, die aktuellen Routingregeln zu erhalten.
Hinweis: Wenn route_append_only
oder rule_append_only
nicht angegeben sind, löscht die netzwerk
-Rolle die aktuellen Routen oder Routingregeln.
Hinweis: Ports zu Brücken-, Bond- oder Teamgeräten können keine ip
-Einstellungen angeben.
ethtool
Die ethtool-Einstellungen ermöglichen es, verschiedene Funktionen ein- oder auszuschalten. Die Namen entsprechen den Namen, die vom ethtool
-Werkzeug verwendet werden. Je nach tatsächlichem Kernel und Gerät wird möglicherweise die Änderung einiger Optionen nicht unterstützt.
Die ethtool-Konfiguration unterstützt die folgenden Optionen:
ring
Ändert die
rx
/tx
ring
-Parameter des angegebenen Netzwerkgeräts. Die Liste der unterstütztenring
-Parameter ist:rx
- Ändert die Anzahl der Ring-Einträge für den Rx-Ring.rx-jumbo
- Ändert die Anzahl der Ring-Einträge für den Rx-Jumbo-Ring.rx-mini
- Ändert die Anzahl der Ring-Einträge für den Rx-Mini-Ring.tx
- Ändert die Anzahl der Ring-Einträge für den Tx-Ring.
ethtool:
features:
esp_hw_offload: true|false # optional
esp_tx_csum_hw_offload: true|false # optional
fcoe_mtu: true|false # optional
gro: true|false # optional
gso: true|false # optional
highdma: true|false # optional
hw_tc_offload: true|false # optional
l2_fwd_offload: true|false # optional
loopback: true|false # optional
lro: true|false # optional
ntuple: true|false # optional
rx: true|false # optional
rx_all: true|false # optional
rx_fcs: true|false # optional
rx_gro_hw: true|false # optional
rx_udp_tunnel_port_offload: true|false # optional
rx_vlan_filter: true|false # optional
rx_vlan_stag_filter: true|false # optional
rx_vlan_stag_hw_parse: true|false # optional
rxhash: true|false # optional
rxvlan: true|false # optional
sg: true|false # optional
tls_hw_record: true|false # optional
tls_hw_tx_offload: true|false # optional
tso: true|false # optional
tx: true|false # optional
tx_checksum_fcoe_crc: true|false # optional
tx_checksum_ip_generic: true|false # optional
tx_checksum_ipv4: true|false # optional
tx_checksum_ipv6: true|false # optional
tx_checksum_sctp: true|false # optional
tx_esp_segmentation: true|false # optional
tx_fcoe_segmentation: true|false # optional
tx_gre_csum_segmentation: true|false # optional
tx_gre_segmentation: true|false # optional
tx_gso_partial: true|false # optional
tx_gso_robust: true|false # optional
tx_ipxip4_segmentation: true|false # optional
tx_ipxip6_segmentation: true|false # optional
tx_nocache_copy: true|false # optional
tx_scatter_gather: true|false # optional
tx_scatter_gather_fraglist: true|false # optional
tx_sctp_segmentation: true|false # optional
tx_tcp_ecn_segmentation: true|false # optional
tx_tcp_mangleid_segmentation: true|false # optional
tx_tcp_segmentation: true|false # optional
tx_tcp6_segmentation: true|false # optional
tx_udp_segmentation: true|false # optional
tx_udp_tnl_csum_segmentation: true|false # optional
tx_udp_tnl_segmentation: true|false # optional
tx_vlan_stag_hw_insert: true|false # optional
txvlan: true|false # optional
coalesce:
adaptive_rx: true|false # optional
adaptive_tx: true|false # optional
pkt_rate_high: 0 # optional minimum=0 maximum=0xffffffff
pkt_rate_low: 0 # optional minimum=0 maximum=0xffffffff
rx_frames: 0 # optional minimum=0 maximum=0xffffffff
rx_frames_high: 0 # optional minimum=0 maximum=0xffffffff
rx_frames_irq: 0 # optional minimum=0 maximum=0xffffffff
rx_frames_low: 0 # optional minimum=0 maximum=0xffffffff
rx_usecs: 0 # optional minimum=0 maximum=0xffffffff
rx_usecs_high: 0 # optional minimum=0 maximum=0xffffffff
rx_usecs_irq: 0 # optional minimum=0 maximum=0xffffffff
rx_usecs_low: 0 # optional minimum=0 maximum=0xffffffff
sample_interval: 0 # optional minimum=0 maximum=0xffffffff
stats_block_usecs: 0 # optional minimum=0 maximum=0xffffffff
tx_frames: 0 # optional minimum=0 maximum=0xffffffff
tx_frames_high: 0 # optional minimum=0 maximum=0xffffffff
tx_frames_irq: 0 # optional minimum=0 maximum=0xffffffff
tx_frames_low: 0 # optional minimum=0 maximum=0xffffffff
tx_usecs: 0 # optional minimum=0 maximum=0xffffffff
tx_usecs_high: 0 # optional minimum=0 maximum=0xffffffff
tx_usecs_irq: 0 # optional minimum=0 maximum=0xffffffff
tx_usecs_low: 0 # optional minimum=0 maximum=0xffffffff
ring:
rx: 0 # optional minimum=0 maximum=0xffffffff
rx_jumbo: 0 # optional minimum=0 maximum=0xffffffff
rx_mini: 0 # optional minimum=0 maximum=0xffffffff
tx: 0 # optional minimum=0 maximum=0xffffffff
ieee802_1x
Konfiguriert die 802.1x-Authentifizierung für eine Schnittstelle.
Derzeit ist NetworkManager der einzige unterstützte Provider, und EAP-TLS ist die einzige unterstützte EAP-Methode.
SSL-Zertifikate und Schlüssel müssen auf dem Host bereitgestellt werden, bevor die Rolle ausgeführt wird.
eap
Die erlaubte EAP-Methode, die bei der Authentifizierung im Netzwerk mit 802.1x verwendet wird.
Derzeit ist
tls
der Standard- und einzige akzeptierte Wert.identity
(erforderlich)Identitätszeichenfolge für EAP-Authentifizierungsmethoden.
private_key
(erforderlich)Absoluter Pfad zum privaten Schlüssel des Clients, der für die 802.1x-Authentifizierung verwendet wird (PEM- oder PKCS#12-kodiert).
private_key_password
Passwort für den privaten Schlüssel, der in
private_key
angegeben ist.private_key_password_flags
Liste von Flags, um zu konfigurieren, wie das Passwort für den privaten Schlüssel verwaltet wird.
Mehrere Flags können angegeben werden.
Gültige Flags sind:
none
agent-owned
not-saved
not-required
Siehe die offizielle NetworkManager-Dokumentation zu "Secret flag types" für weitere Details (
man 5 nm-settings
).client_cert
(erforderlich)Absoluter Pfad zum PEM-kodierten Zertifikat des Clients, das für die 802.1x-Authentifizierung verwendet wird.
ca_cert
Absoluter Pfad zum PEM-kodierten Zertifikat der Zertifizierungsstelle, das verwendet wird, um den EAP-Server zu verifizieren.
ca_path
Absoluter Pfad zum Verzeichnis, das zusätzliche PEM-kodierte CA-Zertifikate enthält, die zur Überprüfung des EAP-Servers verwendet werden. Kann anstelle von oder zusätzlich zu ca_cert verwendet werden. Kann nicht verwendet werden, wenn system_ca_certs aktiviert ist.
system_ca_certs
Wenn auf
true
gesetzt, verwendet NetworkManager die vertrauenswürdigen CA-Zertifikate des Systems zur Verifizierung des EAP-Servers.domain_suffix_match
Wenn festgelegt, sorgt NetworkManager dafür, dass der Domainname des EAP-Serverzertifikats mit diesem String übereinstimmt.
bond
Die bond
-Einstellung konfiguriert die Optionen von bondierten Schnittstellen (Typ bond
). Siehe die Kernel-Dokumentation für Bonding oder die Dokumentation von nmcli
Ihrer Distribution für gültige Werte. Es unterstützt die folgenden Optionen:
mode
Bonding-Modus. Die möglichen Werte sind
balance-rr
(Standard),active-backup
,balance-xor
,broadcast
,802.3ad
,balance-tlb
oderbalance-alb
.ad_actor_sys_prio
Im Bonding-Modus
802.3ad
gibt dies die Systempriorität an. Der gültige Bereich ist 1 - 65535.ad_actor_system
Im Bonding-Modus
802.3ad
gibt dies die MAC-Adresse des Systems für den Akteur in Protokoll-Paket-Austausch (LACPDUs) an.ad_select
Diese Option gibt die Aggregationsauswahl-Logik
802.3ad
an. Die möglichen Werte sind:stable
,bandwidth
,count
.ad_user_port_key
Im Bonding-Modus
802.3ad
definiert dies die oberen 10 Bits des Portschlüssels. Der zulässige Wertebereich liegt zwischen 0 - 1023.all_ports_active
all_slaves_active
im Kernel und NetworkManager. Der boolesche Wert false
entfernt die doppelten Frames (die auf inaktiven Ports empfangen wurden), und der boolesche Wert true
liefert die doppelten Frames.
arp_all_targets
Diese Option gibt an, wie viele
arp_ip_targets
erreichbar sein müssen, damit der ARP-Überwachungsdienst einen Port als aktiv betrachtet. Die möglichen Werte sindany
oderall
.arp_interval
Diese Option gibt die ARP-Link-Überwachungsfrequenz in Millisekunden an. Ein Wert von 0 deaktiviert die ARP-Überwachung.
arp_validate
In allen Modi, die ARP-Überwachung unterstützen, gibt diese Option an, ob ARP-Proben und -Antworten validiert werden sollen. Oder für die Zwecke der Linküberwachung wird hier entschieden, ob nicht-ARP-Verkehr gefiltert (außer Acht gelassen) werden soll. Die möglichen Werte sind:
none
,active
,backup
,all
,filter
,filter_active
,filter_backup
.arp_ip_target
Wenn
arp_interval
aktiviert ist, gibt diese Option die IP-Adressen an, die als ARP-Überwachungsziel verwendet werden sollen.downdelay
Die Zeit, die gewartet werden soll (in Millisekunden), bevor ein Port nach dem Erkennen eines Linkfehlers deaktiviert wird.
fail_over_mac
Diese Option gibt die Richtlinie an, um die MAC-Adresse für das Bond-Interface im aktiven Backup-Modus auszuwählen. Die möglichen Werte sind:
none
(Standard),active
,follow
.lacp_rate
Im Bonding-Modus
802.3ad
definiert diese Option die Rate, mit der wir von unserem Linkpartner verlangen, LACPDU-Pakete zu übermitteln. Die möglichen Werte sind:slow
,fast
.lp_interval
Diese Option gibt die Anzahl der Sekunden an, zwischen den Instanzen, in denen der Bonding-Treiber Lernpakete an jeden Port-Partner-Switch sendet.
miimon
Legt das MII-Link-Überwachungsintervall (in Millisekunden) fest.
min_links
Diese Option gibt die minimale Anzahl von Links an, die aktiv sein müssen, bevor das Trägersignal gesetzt wird.
num_grat_arp
Diese Option gibt die Anzahl der Benachrichtigungen für Partner (gratuitous ARPs) an, die nach einem Failover-Ereignis gesendet werden sollen. Für den zulässigen Wert reicht der Bereich von 0 bis 255.
packets_per_port
Im Bonding-Modus
balance-rr
gibt diese Option die Anzahl der Pakete an, die für ein Port in der Netzwerkübertragung erlaubt sind, bevor auf das nächste gewechselt wird. Der zulässige Wertebereich liegt zwischen 0 - 65535.peer_notif_delay
Diese Option gibt die Verzögerung (in Millisekunden) zwischen jeder Partnerbenachrichtigung an, wenn diese nach einem Failover-Ereignis ausgegeben wird.
primary
Diese Option definiert das primäre Gerät.
primary_reselect
Diese Option gibt die Resektionen für den primären Port an. Die möglichen Werte sind:
always
,better
,failure
.resend_igmp
Diese Option gibt die Anzahl der IGMP-Mitgliedschaftsberichte an, die nach einem Failover-Ereignis gesendet werden sollen. Der zulässige Wertebereich liegt zwischen 0 und 255.
tlb_dynamic_lb
Diese Option gibt an, ob dynamisches Shuffling von Flows im TLB-Modus aktiviert ist. Der boolesche Wert
true
aktiviert das Flow-Shuffling, während der boolesche Wertfalse
es deaktiviert.updelay
Diese Option gibt die Zeit (in Millisekunden) an, die gewartet wird, bevor ein Port aktiviert wird, nachdem eine Linkwiederherstellung erkannt wurde.
use_carrier
Diese Option gibt an, ob MII oder ETHTOOL-Ioctls anstelle von netif_carrier_ok() verwendet werden sollen, um den Linkstatus zu bestimmen. Der boolesche Wert
true
ermöglicht die Verwendung von netif_carrier_ok(), während der boolesche Wertfalse
MII oder ETHTOOL-Ioctls verwendet.xmit_hash_policy
Diese Option gibt die Übertragungs-Hash-Richtlinie an, die für die Portauswahl verwendet werden soll, die möglichen Werte sind:
layer2
,layer3+4
,layer2+3
,encap2+3
,encap3+4
,vlan+srcmac
.
Beispiele für Optionen
Das gleiche Verbindungsprofil mehrmals einstellen:
netzwerk_connections:
- name: Wired0
type: ethernet
interface_name: eth0
ip:
dhcp4: true
- name: Wired0
state: up
Aktivieren eines bestehenden Verbindungsprofils:
netzwerk_connections:
- name: eth0
state: up
Deaktivieren eines bestehenden Verbindungsprofils:
netzwerk_connections:
- name: eth0
state: down
Erstellen eines persistenten Verbindungsprofils:
netzwerk_connections:
- name: eth0
#persistent_state: present # Standard
type: ethernet
autoconnect: true
mac: "00:00:5e:00:53:5d"
ip:
dhcp4: true
Angeben eines verbindenden Profils für ein Ethernet-Gerät mit der ID_PATH
:
netzwerk_connections:
- name: eth0
type: ethernet
# Für PCI-Geräte hat der Pfad die Form "pci-$domain:$bus:$device.$function"
# Das Profil entspricht nur der Schnittstelle an der PCI-Adresse pci-0000:00:03.0
match:
path:
- pci-0000:00:03.0
ip:
address:
- 192.0.2.3/24
- name: eth0
type: ethernet
# Angabe eines verbindenden Profils für ein Ethernet-Gerät nur mit der PCI-Adresse
# pci-0000:00:01.0 oder pci-0000:00:03.0
match:
path:
- pci-0000:00:0[1-3].0
- &!pci-0000:00:02.0
ip:
address:
- 192.0.2.3/24
Löschen eines Verbindungsprofils mit dem Namen eth0
(sofern vorhanden):
netzwerk_connections:
- name: eth0
persistent_state: absent
Konfigurieren der Ethernet-Link-Einstellungen:
netzwerk_connections:
- name: eth0
type: ethernet
ethernet:
autoneg: false
speed: 1000
duplex: full
Erstellen einer Brückenverbindung:
netzwerk_connections:
- name: br0
type: bridge
#interface_name: br0 # standardmäßig der Verbindungsname
Konfigurieren einer Brückenverbindung:
netzwerk_connections:
- name: internal-br0
interface_name: br0
type: bridge
ip:
dhcp4: false
auto6: false
Festlegen von controller
und port_type
:
netzwerk_connections:
- name: br0-bond0
type: bond
interface_name: bond0
controller: internal-br0
port_type: bridge
- name: br0-bond0-eth1
type: ethernet
interface_name: eth1
controller: br0-bond0
port_type: bond
Konfigurieren von VLANs:
netzwerk_connections:
- name: eth1-profil
autoconnect: false
type: ethernet
interface_name: eth1
ip:
dhcp4: false
auto6: false
- name: eth1.6
autoconnect: false
type: vlan
parent: eth1-profil
vlan:
id: 6
ip:
address:
- 192.0.2.5/24
auto6: false
Konfigurieren von MacVLAN:
netzwerk_connections:
- name: eth0-profil
type: ethernet
interface_name: eth0
ip:
address:
- 192.168.0.1/24
- name: veth0
type: macvlan
parent: eth0-profil
macvlan:
mode: bridge
promiscuous: true
tap: false
ip:
address:
- 192.168.1.1/24
Konfigurieren einer drahtlosen Verbindung:
netzwerk_connections:
- name: wlan0
type: wireless
wireless:
ssid: "Mein WPA2-PSK-Netzwerk"
key_mgmt: "wpa-psk"
# Empfehlung, das drahtlose Passwort in einem Tresor zu verschlüsseln
# siehe https://docs.ansible.com/ansible/latest/user_guide/vault.html
password: "p@55w0rD"
Festlegen der IP-Konfiguration:
netzwerk_connections:
- name: eth0
type: ethernet
ip:
route_metric4: 100
dhcp4: false
#dhcp4_send_hostname: false
gateway4: 192.0.2.1
dns:
- 192.0.2.2
- 198.51.100.5
dns_search:
- example.com
- subdomain.example.com
dns_options:
- rotate
- timeout:1
route_metric6: -1
auto6: false
gateway6: 2001:db8::1
address:
- 192.0.2.3/24
- 198.51.100.3/26
- 2001:db8::80/7
route:
- network: 198.51.100.128
prefix: 26
gateway: 198.51.100.1
metric: 2
- network: 198.51.100.64
prefix: 26
gateway: 198.51.100.6
metric: 4
route_append_only: false
rule_append_only: true
Konfigurieren von 802.1x:
netzwerk_connections:
- name: eth0
type: ethernet
ieee802_1x:
identity: meinhost
eap: tls
private_key: /etc/pki/tls/client.key
# Empfehlung, das Passwort für den privaten Schlüssel in einem Tresor zu verschlüsseln
# siehe https://docs.ansible.com/ansible/latest/user_guide/vault.html
private_key_password: "p@55w0rD"
client_cert: /etc/pki/tls/client.pem
ca_cert: /etc/pki/tls/cacert.pem
domain_suffix_match: example.com
Konfigurieren von Enhanced Open(OWE):
netzwerk_connections:
- name: wlan0
type: wireless
wireless:
ssid: "WIFI_SSID"
key_mgmt: "owe"
Beispiele für die Anwendung der Netzwerkkonfigurationszustandskonfiguration
Konfigurieren der IP-Adressen:
netzwerk_state:
interfaces:
- name: ethtest0
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.168.122.250
prefix-length: 24
dhcp: false
ipv6:
enabled: true
address:
- ip: 2001:db8::1:1
prefix-length: 64
autoconf: false
dhcp: false
- name: ethtest1
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.168.100.192
prefix-length: 24
auto-dns: false
dhcp: false
ipv6:
enabled: true
address:
- ip: 2001:db8::2:1
prefix-length: 64
autoconf: false
dhcp: false
Konfigurieren der Route:
netzwerk_state:
interfaces:
- name: eth1
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.0.2.251
prefix-length: 24
dhcp: false
routes:
config:
- destination: 198.51.100.0/24
metric: 150
next-hop-address: 192.0.2.251
next-hop-interface: eth1
table-id: 254
Konfigurieren der DNS-Suche und -Server:
netzwerk_state:
dns-resolver:
config:
search:
- example.com
- example.org
server:
- 2001:4860:4860::8888
- 8.8.8.8
Ungültige und falsche Konfiguration
Die netzwerk
-Rolle lehnt ungültige Konfigurationen ab. Es wird empfohlen, die Rolle zunächst mit --check
zu testen. Es gibt keinen Schutz gegen falsche (aber gültige) Konfigurationen. Überprüfen Sie Ihre Konfiguration, bevor Sie sie anwenden.
Internes Modul von netzwerk_connections
Das interne Modul netzwerk_connections
ist für die interne Verwendung oder Integrationstests gedacht und nicht für den direkten externen Zugang oder die Nutzung. Wenn dieses interne Modul in Integrationstests verwendet wird, werden die Aufgaben, die in tasks/main.yaml
angegeben sind, übersprungen, wodurch die Testausführung beschleunigt wird.
Kompatibilität
Die netzwerk
-Rolle unterstützt dasselbe Konfigurationsschema für beide Provider (nm
und initscripts
). Das bedeutet, Sie können dasselbe Playbook mit NetworkManager und initscripts verwenden. Beachten Sie jedoch, dass nicht jede Option von jedem Provider genau gleich verarbeitet wird. Führen Sie zuerst einen Testlauf mit --check
durch.
Es wird nicht unterstützt, eine Konfiguration für einen Provider zu erstellen und zu erwarten, dass ein anderer Provider sie verarbeitet. Zum Beispiel ist das Erstellen von Profilen mit dem initscripts
-Provider und anschließendem Aktivieren von NetworkManager nicht garantiert, dass es automatisch funktioniert. Möglicherweise müssen Sie die Konfiguration anpassen, sodass sie von einem anderen Provider verwendet werden kann.
Zum Beispiel ist es akzeptabel, einen RHEL6-Host mit initscripts
zu konfigurieren und auf RHEL7 zu aktualisieren, während initscripts
in RHEL7 weiterhin verwendet werden. Was jedoch nicht garantiert ist, ist auf RHEL7 zu aktualisieren, initscripts
zu deaktivieren und zu erwarten, dass NetworkManager automatisch die Konfiguration übernimmt.
Je nach Konfiguration von NetworkManager werden Verbindungen möglicherweise auch als ifcfg-Dateien gespeichert, aber es ist nicht garantiert, dass diese ifcfg-Dateien von den reinen initscripts verarbeitet werden können, nachdem der NetworkManager-Dienst deaktiviert wurde.
Die netzwerk
-Rolle unterstützt außerdem die Konfiguration in bestimmten Ansible-Distributionen, die die Rolle wie RHEL behandeln, z. B. AlmaLinux, CentOS, OracleLinux, Rocky.
Einschränkungen
Da Ansible normalerweise über das Netzwerk arbeitet, z. B. über SSH, gibt es einige Einschränkungen zu beachten:
Die netzwerk
-Rolle unterstützt keine Bootstrap-Netzwerkkonfiguration. Eine Option kann ansible-pull sein. Eine andere Möglichkeit könnte sein, den Host zu Beginn während der Installation (ISO-basiert, kickstart usw.) automatisch zu konfigurieren, sodass der Host mit einem Management-LAN oder VLAN verbunden ist. Es hängt stark von Ihrer Umgebung ab.
Für den initscripts
-Provider bedeutet das Bereitstellen eines Profils lediglich, die ifcfg-Dateien zu erstellen. Nichts passiert automatisch, bis das Play ifup
oder ifdown
über die up
- oder down
Zustände ausgibt -- es sei denn, es gibt andere Komponenten, die von den ifcfg-Dateien abhängen und auf Änderungen reagieren.
Der initscripts
-Provider erfordert, dass die verschiedenen Profile in der richtigen Reihenfolge vorhanden sind, wenn sie voneinander abhängen. Zum Beispiel muss das Bonding-Controller-Gerät vor den Portgeräten angegeben werden.
Wenn ein Profil für NetworkManager entfernt wird, nimmt dies auch die Verbindung herunter und entfernt möglicherweise virtuelle Schnittstellen. Beim initscripts
-Provider ändert das Entfernen eines Profils nicht seinen aktuellen Laufzeitstatus (dies ist auch eine zukünftige Funktion für NetworkManager).
Für NetworkManager kann das Ändern einer Verbindung mit aktivierter automatischer Verbindung dazu führen, dass ein neues Profil auf einer zuvor nicht verbundenen Schnittstelle aktiviert wird. Außerdem führt das Löschen einer derzeit aktiven Verbindung von NetworkManager dazu, dass die Schnittstelle entfernt wird. Daher sollte die Reihenfolge der Schritte eingehalten werden, und bei der sorgfältigen Handhabung der autoconnect-Eigenschaft könnte es notwendig sein. Dies sollte in der RFE von NetworkManager rh#1401515 verbessert werden.
Es scheint schwierig zu sein, die Netzwerkkonfiguration des Zielhosts zu ändern, sodass die derzeitige SSH-Verbindung von Ansible unterbrochen wird. Wenn Sie das tun möchten, könnte ansible-pull eine Lösung sein. Alternativ könnte eine Kombination aus async
/poll
und dem Ändern des ansible_host
während des Plays erforderlich sein.
TODO Die aktuelle Rolle unterstützt noch nicht, das Play einfach in einen Vorkonfigurationsschritt und einen zweiten Schritt zum Aktivieren der neuen Konfiguration aufzuteilen.
Im Allgemeinen müssen Sie, um das Play erfolgreich auszuführen, zunächst bestimmen, welche Konfiguration aktiv ist, und dann eine sorgfältige Abfolge von Schritten planen, um die neue Konfiguration zu ändern. Die tatsächliche Lösung hängt stark von Ihrer Umgebung ab.
Behebung möglicher Probleme
Wenn bei der Konfiguration des Netzwerks aus der Ferne etwas schiefgeht, müssen Sie möglicherweise physischen Zugang zur Maschine erhalten, um sich zu erholen.
TODO NetworkManager unterstützt eine Checkpoint/Rollback-Funktion. Zu Beginn des Plays könnten wir einen Checkpoint erstellen, und wenn wir aufgrund eines Fehlers die Konnektivität verlieren, würde NetworkManager nach einer Zeitüberschreitung automatisch zurücksetzen. Die Einschränkung besteht darin, dass dies nur mit NetworkManager funktioniert und es unklar ist, ob ein Rollback zu einer funktionierenden Konfiguration führen wird.
Wollen Sie beitragen? Werfen Sie einen Blick auf unsere Beitragsrichtlinien!
rpm-ostree
Siehe README-ostree.md
Configure networking
ansible-galaxy install linux-system-roles.network