Configuración de la red host
Opciones de Configuración de Red Host
Antecedentes
A menos que configurado de otra manera, Fedora CoreOS (FCOS) intentará usar DHCP en cada interfaz con un cable conectado. Sin embargo, si necesita usar direccionamiento estático o redes más complejas (VLAN, enlaces, puentes, equipos, etc.), puede hacerlo de varias maneras, que se resumen a continuación. Independientemente de la forma en que elija configurar la red, todo se convierte en configuración para NetworkManager, que se presenta en forma de archivos de claves de NetworkManager. Puede encontrar más información sobre el formato de los archivos de claves en aquí. Puede encontrar más información sobre las opciones de subsección para los archivos de claves en aquí.
Opciones de Configuración
Las máquinas FCOS se configuran principalmente mediante Ignition, que se ejecuta desde initramfs durante el primer arranque. Según la plataforma, la máquina podría necesitar acceso a la red para acceder a recursos remotos, ya sea mediante la propia configuración de Ignition o mediante recursos remotos especificados en ella.
La red solo será iniciada en el initramfs si determina ser solicitado, o si explícitamente solicitado por el usuario con rd.neednet=1.
|
La necesidad o no de que una máquina utilice la red en initramfs puede determinar cómo el usuario configurará la red para la máquina. Las opciones para configurar la red para la máquina son:
-
vía argumento kernel
-
estos son procesados por los módulos dracut en el initramfs en el primer arranque
-
-
mediante personalización de imágenes en vivo
-
al empotrar la configuración de la red en la ISO viva o la imagen PXE
-
-
a través de
coreos-installer install --copy-network-
al propagar la configuración de la red del entorno de instalación
-
-
por medio de Afterburn
-
aplicando configuración de red inyectada por varias plataformas
-
-
por medio de Ignition
-
al establecer archivos que luego NetworkManager utiliza al iniciarse
-
| Si necesita conectividad de red para extraer su configuración de Ignition, o si su Ignition tiene referencias remotas, no podrá proporcionar su configuración de red a través de Ignition. |
| Si proporciona la configuración de red de varias maneras (es decir, mediante argumentos del kernel y mediante Ignition), prevalecerá la configuración proporcionada mediante Ignition y será la que se aplique a la raíz real de la máquina. No se admite proporcionar la mitad de la configuración mediante argumentos del kernel y la otra mitad mediante Ignition. |
Ahora cubriremos cada una de estas opciones.
vía Argumentos del Kernel
En el primer arranque de una máquina, el usuario puede proporcionar argumentos del kernel que definen la configuración de red. Estos argumentos se definen principalmente en la página de manual de dracut.cmdline. Existen diferentes maneras de aplicar estos argumentos del kernel en el primer arranque.
-
En la forma más genérica, puede detener una instancia en el indicador de GRUB en el primer arranque (arranque de Ignition) y agregarlos al conjunto existente de argumentos del kernel.
-
Para una instalación completa en la que se automatiza la instalación mediante argumentos del kernel agregados (es decir,
coreos.inst.install_dev=), también puede agregar argumentos de red allí y se aplicarán al arranque de la instalación y también al primer arranque (arranque de Ignition) de la máquina instalada. -
Para un arranque de PXE puede añadir argumentos del kernel de red para su conjunto existente de argumentos del kernel en su configuración de PXE.
Un conjunto de ejemplo de argumentos del kernel para configurar estáticamente una dirección IP para ens2 similar a:
ip=10.10.10.10::10.10.10.1:255.255.255.0:monombrehost:ens2:none:8.8.8.8
La sintaxis es un poco difícil de manejar. Una manera fácil de trabajar con ella es escribir un pequeño script que rellene los elementos por ti. Para el ejemplo anterior, algo como esto debería funcionar:
ip='10.10.10.10'
gateway='10.10.10.1'
netmask='255.255.255.0'
hostname='minombrehost'
interface='ens2'
nameserver='8.8.8.8'
echo "ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver}"
mediante personalización de imágenes en vivo
coreos-installer permite integrar directamente los archivos de claves de NetworkManager directamente en una ISO viva o una imagen PXE utilizando la opción --network-keyfile en coreos-installer iso customize o coreos-installer pxe customize. La configuración se aplica interno al initramfs antes de ejecutar Ignition. Si además utilizas la opción --installer-config o cualquiera de las opciones --dest-* para configurar instalación automática, o la opción --copy-network cuando instales manualmente, la configuración de la red será reenviada al sistema instalado.
Para obtener más detalles sobre cómo incorporar la configuración de red en una imagen en vivo, consulte la referencia de imagen ISO/PXE en vivo.
a través de coreos-installer install --copy-network
Para los flujos de trabajo de instalación manual desde cero, puede que no sea recomendable utilizar argumentos del kernel dracut para configurar la red:
-
la sintaxis no es muy amigable con el usuario
-
manipular los argumentos del kernel mediante el indicador de GRUB puede resultar complicado
La opción --copy-network de coreos-installer install copiará los archivos del directorio /etc/NetworkManager/system-connections/ al sistema instalado. Para una instalación interactiva, esto concede al usuario completar la configuración de red de diversas maneras antes de realizar la instalación:
-
utilizando el comando
nmcli -
utilizando la interfaz TUI
nmtui -
escribiendo archivos directamente
-
utilizando otra herramienta de elección
También concede al usuario realizar la detección de hardware en el nodo (es decir, «¿cuáles son los nombres de mis interfaces?»). Para ver un ejemplo de este flujo de trabajo, consulte el esta demostración, que lo muestra en detalle.
por medio de Afterburn
En determinadas plataformas, Afterburn inyectará la configuración de red, ya sea configurada por el usuario o por la plataforma, durante el initramfs.
Actualmente, esto solo se utiliza en VMWare. La implementación concede a los usuarios especificar la configuración de red en forma de argumentos de red dracut sin tener que detener el arranque de la máquina e introducir manualmente dichos argumentos.
Consulte la documentación de Afterburn para más información.
por medio de Ignition
| Si necesita una red para obtener su configuración de Ignition y su entorno requiere una red más compleja que la predeterminada de DHCP para obtener la configuración de Ignition, entonces deberá usar otro método distinto de Ignition para configurar la red. |
La configuración de red se puede realizar escribiendo los archivos descritos en una configuración de Ignition. Estos son archivos de clave de NetworkManager, que se escriben en /etc/NetworkManager/system-connections/ y que indican a NetworkManager qué hacer.
Cualquier configuración proporcionada mediante Ignition tendrá mayor prioridad que cualquier otro método de configuración de red para una instancia de Fedora CoreOS. Si especifica la configuración de red mediante Ignition, evite usar otros mecanismos para configurar la red.
Un ejemplo de configuración Butane para el mismo ejemplo de red estática que mostramos anteriormente es:
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=ens2
type=ethernet
interface-name=ens2
[ipv4]
address1=10.10.10.10/24,10.10.10.1
dns=8.8.8.8;
dns-search=
may-fail=false
method=manual
Ejemplos de Configuración de Red Host
En esta sección, repasaremos ejemplos comunes de configuración de diferentes tipos de dispositivos de red utilizando argumentos del kernel de Dracut y archivos de claves de NetworkManager a través de Ignition/Butane.
Ejemplos en esta sección que utilicen una IP estática asumirá estos valores a no ser que inició:
ip='10.10.10.10'
gateway='10.10.10.1'
netmask='255.255.255.0'
prefix='24'
hostname='myhostname'
interface='ens2'
nameserver='8.8.8.8'
bondname='bond0'
teamname='team0'
bridgename='br0'
subnic1='ens2'
subnic2='ens3'
vlanid='100'
| FCOS utiliza nombres de interfaz predecibles de predeterminado. Asegúrese de usar el nombre de interfaz correcto para su hardware. |
Generando Cerrojos de NetworkManager utilizando nm-initrd-generator
NetworkManager incluye una herramienta, nm-initrd-generator, que puede generar archivos de claves a partir de la sintaxis de argumentos del kernel de Dracut. Esta podría ser una buena manera de convertir argumentos del kernel a archivos de claves o simplemente generar rápidamente algunos archivos de claves con una pequeña cantidad de información y luego ajustar la configuración con más detalle.
Aquí hay un ejemplo de generación de cerrojos para un vínculo por medio de nm-initrd-generator:
$ kargs="ip=bond0:dhcp bond=bond0:ens2,ens3:mode=active-backup,miimon=100 nameserver=8.8.8.8"
$ /usr/libexec/nm-initrd-generator -s -- $kargs
*** Conexión 'bond0' ***
[connection]
id=bond0
uuid=643c17b5-b364-4137-b273-33f450a45476
type=bond
interface-name=bond0
multi-connect=1
permissions=
[ethernet]
mac-address-blacklist=
[bond]
miimon=100
mode=active-backup
[ipv4]
dns=8.8.8.8;
dns-search=
may-fail=false
method=auto
[ipv6]
addr-gen-mode=eui64
dns-search=
method=auto
[proxy]
*** Conexión 'ens3' ***
[connection]
id=ens3
uuid=b42cc917-fd87-47df-9ac2-34622ecddd8c
type=ethernet
interface-name=ens3
master=643c17b5-b364-4137-b273-33f450a45476
multi-connect=1
permissions=
slave-type=bond
[ethernet]
mac-address-blacklist=
*** Conexión 'ens2' ***
[connection]
id=ens2
uuid=e111bb4e-3ee3-4612-afc2-1d2dfff97671
type=ethernet
interface-name=ens2
master=643c17b5-b364-4137-b273-33f450a45476
multi-connect=1
permissions=
slave-type=bond
[ethernet]
mac-address-blacklist=
Esto ejecuta tres cerrojos generados. Uno para bond0, uno para ens3, y uno para ens2- Puede tomar la salida generadas, y más ajustes o cambias ajustes existentes, y después entregar los archivos a través de Ignition.
Configuración de una IP Estática
Argumentos del Kernel Dracut
ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver}
ip=10.10.10.10::10.10.10.1:255.255.255.0:monombrehost:ens2:none:8.8.8.8
Configuración de butano
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/${interface}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${interface}
type=ethernet
interface-name=${interface}
[ipv4]
address1=${ip}/${prefix},${gateway}
dhcp-hostname=${hostname}
dns=${nameserver};
dns-search=
may-fail=false
method=manual
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=ens2
type=ethernet
interface-name=ens2
[ipv4]
address1=10.10.10.10/24,10.10.10.1
dhcp-hostname=myhostname
dns=8.8.8.8;
dns-search=
may-fail=false
method=manual
Configurar un Vínculo (IP Estática)
Argumentos del Kernel Dracut
ip=${ip}::${gateway}:${netmask}:${hostname}:${bondname}:none:${nameserver}
bond=${bondname}:${subnic1},${subnic2}:mode=active-backup,miimon=100
ip=10.10.10.10::10.10.10.1:255.255.255.0:myhostname:bond0:none:8.8.8.8
bond=bond0:ens2,ens3:mode=active-backup,miimon=100
Configuración de butano
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/${bondname}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}
type=bond
interface-name=${bondname}
[bond]
miimon=100
mode=active-backup
[ipv4]
address1=${ip}/${prefix},${gateway}
dhcp-hostname=${hostname}
dns=${nameserver};
dns-search=
may-fail=false
method=manual
- path: /etc/NetworkManager/system-connections/${bondname}-slave-${subnic1}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}-slave-${subnic1}
type=ethernet
interface-name=${subnic1}
master=${bondname}
slave-type=bond
- path: /etc/NetworkManager/system-connections/${bondname}-slave-${subnic2}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}-slave-${subnic2}
type=ethernet
interface-name=${subnic2}
master=${bondname}
slave-type=bond
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/bond0.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0
type=bond
interface-name=bond0
[bond]
miimon=100
mode=active-backup
[ipv4]
address1=10.10.10.10/24,10.10.10.1
dhcp-hostname=myhostname
dns=8.8.8.8;
dns-search=
may-fail=false
method=manual
- path: /etc/NetworkManager/system-connections/bond0-slave-ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0-slave-ens2
type=ethernet
interface-name=ens2
master=bond0
slave-type=bond
- path: /etc/NetworkManager/system-connections/bond0-slave-ens3.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0-slave-ens3
type=ethernet
interface-name=ens3
master=bond0
slave-type=bond
Configurar un Puente (DHCP)
Argumentos del Kernel Dracut
ip=${bridgename}:dhcp
bridge=${bridgename}:${subnic1},${subnic2}
ip=br0:dhcp
bridge=br0:ens2,ens3
Configuración de butano
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/${bridgename}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bridgename}
type=bridge
interface-name=${bridgename}
[bridge]
[ipv4]
dns-search=
may-fail=false
method=auto
- path: /etc/NetworkManager/system-connections/${bridgename}-slave-${subnic1}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bridgename}-slave-${subnic1}
type=ethernet
interface-name=${subnic1}
master=${bridgename}
slave-type=bridge
[bridge-port]
- path: /etc/NetworkManager/system-connections/${bridgename}-slave-${subnic2}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bridgename}-slave-${subnic2}
type=ethernet
interface-name=${subnic2}
master=${bridgename}
slave-type=bridge
[bridge-port]
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/br0.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=br0
type=bridge
interface-name=br0
[bridge]
[ipv4]
dns-search=
may-fail=false
method=auto
- path: /etc/NetworkManager/system-connections/br0-slave-ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=br0-slave-ens2
type=ethernet
interface-name=ens2
master=br0
slave-type=bridge
[bridge-port]
- path: /etc/NetworkManager/system-connections/br0-slave-ens3.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=br0-slave-ens3
type=ethernet
interface-name=ens3
master=br0
slave-type=bridge
[bridge-port]
Configuración de un Equipo (DHCP)
Argumentos del Kernel Dracut
ip=${teamname}:dhcp
team=${teamname}:${subnic1},${subnic2}
ip=team0:dhcp
team=team0:ens2,ens3
Configuración de butano
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/${teamname}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${teamname}
type=team
interface-name=${teamname}
[team]
config={"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}
[ipv4]
dns-search=
may-fail=false
method=auto
- path: /etc/NetworkManager/system-connections/${teamname}-slave-${subnic1}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${teamname}-slave-${subnic1}
type=ethernet
interface-name=${subnic1}
master=${teamname}
slave-type=team
[team-port]
config={"prio": 100}
- path: /etc/NetworkManager/system-connections/${teamname}-slave-${subnic2}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${teamname}-slave-${subnic2}
type=ethernet
interface-name=${subnic2}
master=${teamname}
slave-type=team
[team-port]
config={"prio": 100}
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/team0.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=team0
type=team
interface-name=team0
[team]
config={"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}
[ipv4]
dns-search=
may-fail=false
method=auto
- path: /etc/NetworkManager/system-connections/team0-slave-ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=team0-slave-ens2
type=ethernet
interface-name=ens2
master=team0
slave-type=team
[team-port]
config={"prio": 100}
- path: /etc/NetworkManager/system-connections/team0-slave-ens3.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=team0-slave-ens3
type=ethernet
interface-name=ens3
master=team0
slave-type=team
[team-port]
config={"prio": 100}
Configurar un Vlan (IP Estática)
Argumentos del Kernel Dracut
ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}.${vlanid}:none:${nameserver}
vlan=${interface}.${vlanid}:${interface}
ip=10.10.10.10::10.10.10.1:255.255.255.0:myhostname:ens2.100:none:8.8.8.8
vlan=ens2.100:ens2
Configuración de butano
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/${interface}.${vlanid}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${interface}.${vlanid}
type=vlan
interface-name=${interface}.${vlanid}
[vlan]
egress-priority-map=
flags=1
id=${vlanid}
ingress-priority-map=
parent=${interface}
[ipv4]
address1=${ip}/${prefix},${gateway}
dhcp-hostname=${hostname}
dns=${nameserver};
dns-search=
may-fail=false
method=manual
- path: /etc/NetworkManager/system-connections/${interface}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${interface}
type=ethernet
interface-name=${interface}
[ipv4]
dns-search=
method=disabled
[ipv6]
addr-gen-mode=eui64
dns-search=
method=disabled
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/ens2.100.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=ens2.100
type=vlan
interface-name=ens2.100
[vlan]
egress-priority-map=
flags=1
id=100
ingress-priority-map=
parent=ens2
[ipv4]
address1=10.10.10.10/24,10.10.10.1
dhcp-hostname=myhostname
dns=8.8.8.8;
dns-search=
may-fail=false
method=manual
- path: /etc/NetworkManager/system-connections/ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=ens2
type=ethernet
interface-name=ens2
[ipv4]
dns-search=
method=disabled
[ipv6]
addr-gen-mode=eui64
dns-search=
method=disabled
Configurar un Vlan sobre un Vínculo (DHCP)
Argumentos del Kernel Dracut
ip=${bondname}.${vlanid}:dhcp
bond=${bondname}:${subnic1},${subnic2}:mode=active-backup,miimon=100
vlan=${bondname}.${vlanid}:${bondname}
ip=bond0.100:dhcp
bond=bond0:ens2,ens3:mode=active-backup,miimon=100
vlan=bond0.100:bond0
Configuración de butano
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/${bondname}.${vlanid}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}.${vlanid}
type=vlan
interface-name=${bondname}.${vlanid}
[vlan]
egress-priority-map=
flags=1
id=${vlanid}
ingress-priority-map=
parent=${bondname}
[ipv4]
dns-search=
may-fail=false
method=auto
- path: /etc/NetworkManager/system-connections/${bondname}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}
type=bond
interface-name=${bondname}
[bond]
miimon=100
mode=active-backup
[ipv4]
method=disabled
[ipv6]
method=disabled
- path: /etc/NetworkManager/system-connections/${bondname}-slave-${subnic1}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}-slave-${subnic1}
type=ethernet
interface-name=${subnic1}
master=${bondname}
slave-type=bond
- path: /etc/NetworkManager/system-connections/${bondname}-slave-${subnic2}.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=${bondname}-slave-${subnic2}
type=ethernet
interface-name=${subnic2}
master=${bondname}
slave-type=bond
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/system-connections/bond0.100.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0.100
type=vlan
interface-name=bond0.100
[vlan]
egress-priority-map=
flags=1
id=100
ingress-priority-map=
parent=bond0
[ipv4]
dns-search=
may-fail=false
method=auto
- path: /etc/NetworkManager/system-connections/bond0.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0
type=bond
interface-name=bond0
[bond]
miimon=100
mode=active-backup
[ipv4]
method=disabled
[ipv6]
method=disabled
- path: /etc/NetworkManager/system-connections/bond0-slave-ens2.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0-slave-ens2
type=ethernet
interface-name=ens2
master=bond0
slave-type=bond
- path: /etc/NetworkManager/system-connections/bond0-slave-ens3.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=bond0-slave-ens3
type=ethernet
interface-name=ens3
master=bond0
slave-type=bond
Inhabilitar Configuración Automática de Dispositivos Ethernet
De forma predeterminada, FCOS intentará auto-configurar (DHCP/SLAAC) en cada interfaz con un cable conectado. En algunos entornos de red, esto puede no ser recomendable. Es posible cambiar este comportamiento de NetworkManager mediante un archivo de configuración:
variant: fcos
version: 1.7.0
storage:
files:
- path: /etc/NetworkManager/conf.d/noauto.conf
mode: 0644
contents:
inline: |
[main]
# No realice la configuración automática (DHCP/SLAAC) en dispositivos Ethernet
# sin otras conexiones coincidentes.
no-auto-default=*
| Si la configuración automática de dispositivos Ethernet de NetworkManager está deshabilitada y no se proporciona ninguna otra configuración de red, el sistema se iniciará sin acceso a la red. |
Want to help? Learn how to contribute to Fedora Docs ›