En este artículo, consideraremos cómo configurar la red en Linux. CentOS / RHEL 7/8 y establecer interfaces de red utilizando archivos de configuración, descubrir herramientas básicas de configuración de red, etc. Es un tema relevante, ya que la configuración de cualquier servidor parte de la configuración de red en él.
Este artículo trata los aspectos de la configuración de red en RHEL / CentOS 7 usando el estándar la red Servicio. También estudiaremos cómo utilizar un NetworkManager (NM) en CentOS / RHEL 8 para configurar la red.
Nomenclatura de dispositivos de interfaz de red en RHEL / CentOS
El esquema tradicional de nomenclatura de interfaces de red en Linux asigna nombres como eth0, eth1, etc. Sin embargo, estos nombres no están estrechamente vinculados a las interfaces y, después de reiniciar, varias interfaces pueden obtener nombres diferentes. Puede causar algunos problemas, por ejemplo, cuando configura un firewall a través de firewalld o iptables. Debido a esto, a partir de RedHat 7 y CentOS 7, se decidió asignar nombres de interfaz de red en función de la jerarquía de diferentes esquemas de nombres. De forma predeterminada, systemd aplicará esquemas de nomenclatura, eligiendo a su vez el primero que haya estado disponible y sea aplicable. Los nombres de los dispositivos de red se asignan automáticamente y permanecen sin cambios incluso si se agrega o cambia hardware. Por otro lado, dichos nombres de interfaz son menos legibles, por ejemplo, enp5s0 o ens3 versus lo tradicional eth0 o eth1.
Puede volver al nombre predeterminado de la interfaz de Linux realizando las siguientes acciones.
Editar / etc / default / grub:
# nano /etc/default/grub
Agregue lo siguiente al GRUB_CMDLINE_LINUX línea:
net.ifnames=0 biosdevname=0
A continuación, se muestra un ejemplo de la línea GRUB completa:
GRUB_CMDLINE_LINUX="consoleblank=0 fsck.repair=yes crashkernel=auto nompath selinux=0 rhgb quiet net.ifnames=0 biosdevname=0"
Actualiza tu configuración de grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Cambie el nombre del archivo de configuración de la interfaz de red:
# mv /etc/sysconfig/network-scripts/ifcfg-ens3 /etc/sysconfig/network-scripts/ifcfg-eth0
Y cambia el DISPOSITIVO valor:
Guarde el archivo, reinicie su host y asegúrese de que se hayan aplicado los cambios:
# ip a
La interfaz se llama eth0 ahora.
Configuración de red inicial durante la instalación de CentOS / RHEL
Inicialmente, durante la instalación de CentOS Linux, puede configurar su interfaz de red en modo gráfico haciendo clic en "Red y nombre de host”En el menú. Aquí usted especifica el nombre de su servidor, agrega la dirección IP y la puerta de enlace, DNS, etc. Consulte la guía detallada sobre la configuración de la red en este paso siguiendo el enlace anterior.
¿Cómo editar el archivo de configuración de la interfaz de red en CentOS / RHEL?
Vamos a mostrar la lista de interfaces de red disponibles en el host LInux.
# ip a
Los archivos de configuración de red de su host Linux se almacenan en / etc / sysconfig / network-scripts. El demonio NetworkManager crea estos archivos para cada interfaz de red. En nuestro caso, el archivo de configuración se llama ifcfg-eth0 (es posible que tenga un nombre diferente según el esquema de nombres de la interfaz de red).
Estudiemos los principales parámetros:
DEVICE
- el nombre del adaptador de red que coincide con su nombre en el sistema (es eth0 en nuestro ejemplo)BOOTPROTO
es cómo se asigna una dirección IP (estático es un valor introducido manualmente, DHCP significa que la dirección IP se asigna automáticamente)IPADDR
- una dirección IPNETMASK
- una máscara de redGATEWAY
- una puerta de enlace predeterminadaDNS1
es el servidor DNS primarioDNS2
es un servidor DNS alternativoONBOOT
es el método para iniciar su interfaz de red (sí - automático, No - manual)UUID
es el identificador único de su interfaz de red. Puede generarlo usted mismo utilizando el uuidgen mandoIPV4_FAILURE_FATAL
desactiva la interfaz de red IPv4 si tiene una configuración incorrecta (sí - desactiva, No - deja habilitado)IPV6_FAILURE_FATAL
deshabilita la interfaz de red IPv6 si tiene una configuración incorrecta (sí - desactiva, No - deja habilitado)IPV6_AUTOCONF
permite o niega la autoconfiguración de IPv6IPV6_INIT
habilita el uso de direcciones IPv6 (sí - Se utiliza direccionamiento IPv6, No - no se utiliza direccionamiento)PEERROUTES
establece la prioridad de la configuración de la puerta de enlace predeterminada cuando se utiliza DHCPIPV6_PEERROUTES
establece la prioridad de la configuración de la puerta de enlace predeterminada cuando se usa DHCP para IPv6
Configuremos la interfaz de red en función de esta información.
¿Cómo configurar una dirección IP estática en CentOS / RHEL?
Abra el archivo de configuración de red para editarlo:
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
En este ejemplo, he especificado una dirección IP estática, una máscara de subred, una puerta de enlace y varios servidores DNS. Habilite el arranque automático de la interfaz:
ONBOOT=”yes”
Una vez que haya realizado los cambios, reinicie su la red Servicio. Si está bien, verá la siguiente lista:
# service network restart
Restarting network (via systemctl): [ OK ]
Además, puede volver a cargar todos los perfiles de conexión:
# nmcli connection reload
¿Cómo obtener una dirección IP dinámica de DHCP?
Si su servidor debe obtener una dirección IP dinámica del servidor DHCP en su red, abra el archivo de configuración de la interfaz y cambie la configuración:
Hemos eliminado todos los parámetros relacionados con las direcciones IP y la máscara, y hemos cambiado la forma en que se asigna la dirección IP a DHCP (BOOTPROTO = ”dhcp”). Después de realizar todos los cambios, no olvide volver a cargar el servicio de red.
¿Cómo deshabilitar IPv6 en RHEL / CentOS?
Para cuando se escribió el artículo, ipv6 no estaba activo y, a menudo, los administradores prefieren usar ipv4, si es posible. Entonces, si no está utilizando el protocolo IPv6, desactívelo en su servidor. Si está seguro de que ninguno de sus servicios está configurado para funcionar con ipv6, puede continuar con la configuración de la interfaz de red. De lo contrario, es mejor comenzar con un cheque. Debe verificar qué servicios están usando IPv6 y deshabilitar el protocolo en la configuración del servicio. Ejecute este comando:
# netstat -tulnp
Tengo un servidor de prueba, entonces ipv6 se usa solo para sshd y cronyd. Puede ser detectado por “:::”.
Para evitar problemas después de deshabilitar ipv6 en la configuración de red, deshabilite el protocolo para los servicios que los usan en su servidor. Por ejemplo, abra el archivo de configuración sshd:
# mcedit /etc/ssh/sshd_config
Y descomenta estas líneas:
#AddressFamily any #ListenAddress 0.0.0.0
Luego reinicia el servicio:
# service sshd restart
Como se puede ver, ipv6 no está disponible para sshd ahora. Haga lo mismo con otros servicios.
Desactivemos el protocolo ipv6 en la configuración de red. Abierto /etc/sysctl.conf:
# nano /etc/sysctl.conf
Y agregue las siguientes líneas allí:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Guarde el archivo y aplique los cambios usando:
# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Entonces abre / etc / sysconfig / network. Agréguele esta configuración:
NETWORKING_IPV6=no IPV6INIT=no
Elimine la siguiente línea del archivo de interfaz de configuración de red / etc / sysconfig / network-scripts / ifcfg-eth0:
IPV6INIT="yes"
Y finalmente, no permita el uso de ipv6 en grub:
# nano /etc/default/grub
Agregue lo siguiente al final de la línea GRUB_CMDLINE_LINUX:
ipv6.disable=1
Después de realizar todos los cambios, guarde el archivo y actualice grub:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Reinicie su servidor y verifique su configuración de red:
# ifconfig
La ipv6 el protocolo está deshabilitado en su servidor.
Configuración de servidores de nombres DNS en CentOS / RHEL
Puede configurar servidores de nombres DNS para su host usando /etc/resolv.conf o especificarlos en la configuración de la interfaz de red. Al configurar la configuración estática para la interfaz de red de Linux, ya hemos especificado los servidores DNS utilizando los siguientes parámetros:
DNS1= DNS2= DNS3=
Configure los servidores DNS que necesita y reinicie el la red Servicio.
Los servidores de nombres DNS se registran automáticamente en /etc/resolv.conf tomándolos del archivo de configuración de red. Si no especificó servidores DNS durante la configuración de la red, hágalo manualmente en /etc/resolv.conf:
nameserver 1.1.1.1 nameserver 8.8.8.8 nameserver 8.8.4.4
Cree varias direcciones IP para una sola interfaz de red en RHEL / CentOS
Si desea utilizar varias direcciones IP en su interfaz de red, puede configurarlo a través del alias de la interfaz o agregar una dirección IP adicional al archivo de configuración principal.
# nano /etc/sysconfig/network-scripts/ifcfg-eth0
Cámbielo así:
# Generated by parse-kickstart UUID="b8bccd4c-fb1b-4d36-9d45-044c7c0194eb" IPADDR1="*.*.*.*" IPADDR2="*.*.*.*" GATEWAY="*.*.*.*" NETMASK="255.255.255.0" BOOTPROTO="static" DEVICE="eth0" ONBOOT="yes" DNS1=1.1.1.1 DNS2=8.8.8.8 DNS3=8.8.4.4
Dónde:IPADDR1
- la primera dirección IPIPADDR2
- la segunda dirección IPGATEWAY
- la puerta de entrada principal
O crea un alias a su archivo de configuración principal:
# nano /etc/sysconfig/network-scripts/ifcfg-eth0:1
Y agregue algunas líneas aquí, pero no especifique la puerta de enlace:
Después de configurar todos los ajustes, reinicie su servicio de red:
# service network restart
Configurar el etiquetado de VLAN (802.1Q) en RHEL / CentOS
Hablamos más sobre la configuración de múltiples VLAN para una interfaz de red en CentOS / RHEL / Fedora en el artículo: Cómo configurar el etiquetado de VLAN 802.1Q en RHEL / CentOS Linux.
Configuración de múltiples interfaces de red en RHEL / CentOS
Si tiene varias interfaces de red en su servidor, puede especificar diferentes direcciones IP para ellas. Aprendamos a hacerlo. Si tiene más de una interfaz de red en su servidor, el "ip a”Debe mostrar esta información:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:52:42:54:2c:36 brd ff:ff:ff:ff:ff:ff inet 15.*.*.*/16 brd 15.*.*.255 scope global eth0 valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 52:52:42:54:2c:b8 brd ff:ff:ff:ff:ff:f
Para configurar la segunda interfaz, cree un archivo para ella:# nano /etc/sysconfig/network-scripts/ifcfg-eth1
Y agregue la siguiente configuración:
IPADDR="*.*.*.*" GATEWAY="*.*.*.*" NETMASK="255.255.255.0" BOOTPROTO="static" DEVICE="eth1" ONBOOT="yes"
Luego, debe configurar una puerta de enlace predeterminada en su servidor. Compruebe qué puerta de enlace está configurada ahora y cámbiela si es necesario:
# netstat -nr
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 15.*.*.1 0.0.0.0 UG 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 15.*.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 15.*.*.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
La interfaz eth1 es la puerta de enlace principal. Quiero usar eth0. Vamos a cambiarlo:
# route add default gw *.*.*.*
- reemplace la puerta de enlace con la especificada en eth0
# route delete default gw *.*.*.*
- eliminar la puerta de enlace eth1
Si desea mantener esta configuración después del reinicio del servidor, agregue estos comandos a rc.local (consulte el artículo ¿Cómo iniciar los servicios automáticamente al arrancar en RHEL / CentOS?).
Comandos de red útiles en RHEL / CentOS
ifdown eth1
- desactiva la interfaz de red especificadaifup eth1
- habilita la interfaz de red especificadaifconfig
- muestra la información sobre todas las interfaces de redifconfig -a | grep ether | gawk '{print $2}'
- es un comando para mostrar las direcciones MAC de una interfazip a | grep ether | gawk '{print $2}'
- lo mismo que el anterior usando ip aservice network restart
osystemctl restart network
- reinicia el servicio de red usando systemctlsystemctl restart NetworkManager.service
- reinicia NMip route
oip route show
- muestra la tabla de enrutamiento en Linuxping host
- hace ping al host especificadowhois domain
- muestra información whois sobre un dominiodig domain
- muestra información de DNS sobre un dominio
Herramientas de administración de red en RHEL / CentOS
Si un servidor ha estado funcionando durante algún tiempo o no ha sido configurado por usted, lo primero que debe hacer es saber qué interfaces hay en el servidor. Para hacerlo más conveniente, instale las herramientas necesarias del repositorio básico:
# yum install net-tools -y
Después de la instalación, puede usar ifconfig:
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 15.*.*.* netmask 255.255.255.0 broadcast 185.*.*.255
Como puede ver, el nombre de nuestra interfaz de red es eth0.
Si no ha instalado herramientas de red, puede ver sus interfaces usando el siguiente comando:
# ip a
La salida será casi la misma.
Administración de red mediante NetworkManager en CentOS / RHEL 8
En RHEL / CentOS 8, se recomienda usar solo Gerente de Redes para la configuración de la red. Este servicio administra las conexiones de red, controla la configuración y aplica cambios a los adaptadores de red.
Verificar Nuevo Méjico status, use este comando:
# systemctl status NetworkManager.service
CentOS ofrece usar la consola de comandos nmcli o una herramienta gráfica nmtui para configurar una red.
Para ir al modo de configuración de red, ingrese este comando:
# nmtui
Después de seleccionar el primer elemento, verá una ventana para elegir la interfaz de red para editar:
Seleccione una interfaz y edítela:
Puede editar el nombre de un dispositivo, una dirección IP, una puerta de enlace y servidores DNS. Además, puede cambiar la forma de asignar una dirección IP a DHCP en el menú interactivo de NM:
Cambio "manual" a "automático”:
Luego guarda los cambios. Usando nmtui puede hacer las mismas tareas de configuración en el modo gráfico como lo hace en los archivos de configuración. Si prefiere usar el símbolo del sistema para configurar interfaces, puede usar nmcli. Por ejemplo, los siguientes comandos cambiarán una dirección IP, una puerta de enlace y servidores DNS para eth1.
# nmcli con mod eth1 ipv4.addresses 192.168.11.24/24
# nmcli con mod eth1 ipv4.gateway 192.168.11.1
# nmcli con mod eth1 ipv4.dns "8.8.4.4"
Para aplicar los cambios, reinicie la interfaz:
# nmcli con up eth1
Si le resulta más conveniente trabajar con los archivos de configuración, instale un paquete especial scripts de red (por defecto, CentOS 8 no lo tiene) usando yum.
# yum install network-scripts -y
Upgraded: initscripts-10.00.1-1.el8_0.1.x86_64 Installed: network-scripts-10.00.1-1.el8_0.1.x86_64 network-scripts-team-1.27-10.el8.x86_64 Complete!
Después de la instalación, puede editar la configuración de red en los archivos de configuración como se describió anteriormente.