jueves, 15 de octubre de 2015

Configuración de red en CentOS 7

Configuración de red en CentOS 7

Para configurar la red en CentOS 7 hay dos formas: utilizano asistente gráfico, o bien utilizando la línea de comandos.
Configurar la red a través de un asistente
Lo primero es ejecutar el comando nmcli d para la identificación rápida de las interfaces de red instaladas en el sistema


[milton@localhost ~]$ nmcli d
DISPOSITIVO  TIPO      ESTADO       CONNECTION
enp0s3       ethernet  conectado    enp0s3    
lo           loopback  sin gestión  --    

Al ejecutar este comando, podemos ver que tenemos una interfaz de red llamada "enp0s3".
A partir de aquí, los pasos son los siguientes:
Configuración por DHCP
  1. Ejecutar el comando nmtui y aparecerá un asistente dando varias opciones. Elegimos la opción "Edit a connection".


  1. A continuación, podremos ver los nombres de todas la interfaces. En nuestro caso, solamente hay una. Seleccionarla.
  2. Seleccionar la opción "Automatically connect"
  3. Hacer clic en "Ok" para cerrar el asistente.
  4. Reiniciar el servicio de red mediante el comando siguiente:

# systemctl restart network

  

NOTA: Si después de reiniciar el servicio de red comprobamos que no se ha actualizado la configuración de red, entonces reiniciaremos la interfaz. Por ejemplo, si la interfaz se llamase "eth0", “enp0s3” entonces los comandos a ejecutar serían los siguientes:

# ifdown eth0
# ifup eth0

# ifup enp0s3
# ifdown enp0s3

Actividad 1. Configura la interfaz de red de tu sistema por DHCP, empleando la interfaz gráfica. Después reinicia el servicio de red y comprueba que se ha asignado una dirección a tu interfaz.


# systemctl restart network


Jan  7 14:01:09 localhost NetworkManager: DHCPREQUEST on enp0s3 to 255.255.255.255 port 67 (xid=0x297925c2)
Jan  7 14:01:09 localhost NetworkManager: DHCPACK from 10.0.2.2 (xid=0x297925c2)
Jan  7 14:01:09 localhost dhclient[9318]: bound to 10.0.2.15 -- renewal in 39804 seconds.
Jan  7 14:01:09 localhost NetworkManager: bound to 10.0.2.15 -- renewal in 39804 seconds.
Jan  7 14:01:09 localhost NetworkManager[650]:  (enp0s3): DHCPv4 state changed preinit -> reboot
Jan  7 14:01:09 localhost NetworkManager[650]:    address 10.0.2.15
Jan  7 14:01:09 localhost NetworkManager[650]:    plen 24 (255.255.255.0)
Jan  7 14:01:09 localhost NetworkManager[650]:    gateway 10.0.2.2
Jan  7 14:01:09 localhost NetworkManager[650]:    server identifier 10.0.2.2
Jan  7 14:01:09 localhost NetworkManager[650]:    lease time 86400
Jan  7 14:01:09 localhost NetworkManager[650]:    nameserver '10.0.2.3'
Jan  7 14:01:09 localhost NetworkManager[650]:  Activation (enp0s3) Stage 5 of 5 (IPv4 Configure Commit) scheduled...

Configuración estática
  1. Ejecutar el comando nmtui y aparecerá un asistente dando varias opciones. Elegimos la opción "Edit a connection".


  1. A continuación, podremos ver los nombres de todas la interfaces. En nuestro caso, solamente hay una. Seleccionarla.

  1. Elegir la configuración manual en la sección "IPv4 CONFIGURATION".

  1. Insertar una dirección IP, una subred, un gateway y DNS.
  2. Seleccionar "Automatically connect".
  3. Presionar Ok y cerrar el asistente.
  4. Finalmente reiniciar el servicio de red con el siguiente comando:


# systemctl restart network

Actividad 2. Elige un direccionamiento IP adecuado para el segmento en el que se encuentra tu sistema. Después, configura la red de forma manual, y comprueba que tienes acceso a la red haciendo ping a tu puerta de enlace.

Configuración de red desde la línea de comandos
Configurar la red desde la línea de comandos supone conocer bien el archivo

de configuración de la interfaz de red. Dicho archivo
es /etc/sysconfig/network-scripts/ifcfg-enp0s3 (en mi caso). El contenido puede ser algo parecido a lo siguiente:

# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 


HWADDR="08:00:27:F7:77:FF"
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="00a49dbf-26ca-4fbf-8be0-7e1ca6e5645e"
ONBOOT="yes"

Para configurar por DHCP
Para configurar la interfaz por DHCP, es preciso fijarse en las opciones BOOTPROTO y ONBOOT. Deben quedar del siguiente modo:


BOOTPROTO=”dhcp”
ONBOOT=”yes”

Después reiniciamos el servicio de red:


# systemctl restart network

Actividad 3. Asegúrate de que la interfaz de red está configurada por DHCP consultado el archivo correspondiente a la interfaz en el directorio /etc/sysconfig/network-scripts. Abre dicho archivo, y si la configuración no es por DHCP, entonces modifícalo para lo sea. Después reinicia el servicio.
Para configuración estática
De nuevo debemos encontrar las opciones BOOTPROTO y ONBOOT. Deben quedar del siguiente modo:


BOOTPROTO=static
ONBOOT=yes

A continuación debemos añadir las opciones IPADDRNETMASKGATEWAY y DNS1, como en el siguiente ejemplo:


IPADDR=192.168.1.40
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=80.58.61.250

Finalmente reiniciamos el servicio de red:


# systemctl restart network

Actividad 4. Asegúrate de que interfaz de red está configurada manualmente consultado el archivo correspondiente a la interfaz en el directorio /etc/sysconfig/network-scripts. Abre dicho archivo, y si la configuración no es estática, entonces modifícalo para lo sea. Después reinicia el servicio.

Nombrado de las interfaces de red

Tradicionalmente, las interfaces de red han sido nombradas como eth[0123...]. El inconveniente que tienen estos nombres es que no necesariamente tienen que ver con la tecnología del hardware instalado. Esto supone un problema en cuanto a averiguar que interfaz de red es cual cuando hay más de un tipo de hardware instalado. CentOS/RHEL 6 introdujo un nuevo esquema de nombrado, que con CentOS/RHEL 7 se aplica por defecto. Este esquema de nombrado determina el nombre de las interfaces de red con la idea de diferenciar fácilmente las interfaces, y que permanezcan consistentes en los diferentes arranques*
Las convenciones de nombrado son las siguientes:
Los dos primeros caracteres del nombre de la interfaz
  • en -- ethernet
  • sl -- línea serie
  • wl -- wlan
  • ww -- wwan
El resto del nombre de la interfaz:
  • o<número> - Número de interfaz integrada en la placa base.
  • s<número_ranura>[f<función>][d<id_dispositivo>] - Número de ranura de conexión en caliente.
  • x<MAC> - Direción MAC
  • p<bus>s<ranura>[f<función>][d<dev_id>] - Ubicación PCI
  • p<bus>s<ranura>[f<función>][u<puerto>][...][c<config>][i<interfaz>] - cadena de nombre de puerto USB


El inconveniente de este esquema de nombrado, es que a veces se vuelve más difícil de leer que los nombres tradicionales. Por ello puede aparecer el deseo o necesidad de cambiar el nombre de una interfaz, aplicando el esquema de nombrado tradicional.
Nombres de interfaces persistentes con reglas de nombrado UDEV
A continuación veremos cómo se utilizan las reglas UDEV de nombrado persistente de interfaces. Entender esto es necesario para poder renombrar las interfaces, tal y como se explica más adelante. Se puede consultar este punto en nombres-ifaces-persistentes.php
Cambiando el nombre de la interfaz
En primer lugar vamos a desactivar el esquema de nombrado predecible de CentOS/RHEL 7. Para ello, debemos pasar el parámetro net.ifnames=0 al kernel durante el arranque. Para hacer esto, editamos el archivo /etc/default/grub y añadimos la cadena "net.ifnames=0" en la línea correspondiente a GRUB_CMDLINE_LINUX. Debe quedar como se muestra a continuación:


GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=es crashkernel=auto  vconsole.font=latarcyrheb-sun16 net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Para que esta nueva configuración tenga efecto en el próximo reinicio, recreamos el archivo grub.cfg:


 # grub2-mkconfig -o /boot/grub2/grub.cfg

Posteriormente, creamos una regla de nombrado de red en el archivo /etc/udev/rules.d/70-persistent-net.rules, añadiendo la siguiente línea:


SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:5b:39:e6:aa:df", ATTR{type}=="1", KERNEL=="eth*", NAME="redlocal0"

Para terminar, supongamos que el script de configuración de CentOS se llamaba ifcfg-enp0s8. Entonces, si hemos llamado a nuestra interfaz "redlocal0", lo que haremos será renombrar dhcio archivo a ifcfg-redlocal0. Además, debemos editar dicho archivo y modificar los parámetros NAME y DEVICE. Es decir, internamente el archivo (ahora renombrado a) ifcfg-redlocal0 contendrá algo como lo siguiente:


HWADDR="08:00:27:F7:77:FF"
DEVICE="redlocal0"
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="redlocal0"
UUID="00a49dbf-26ca-4fbf-8be0-7e1ca6e5645e"
ONBOOT="yes"

Finalmente, reiniciamos el sistema y el nombre de la interfaz debería haber cambiado.
Una vez cambiado el nombre de la interfaz
Es importante tener en cuenta que si el nombre anterior de la interfaz se emplea en algún archivo de configuración, debería ser actualizado al nuevo nombre. De este modo, el script para la interfaz en /etc/sysconfig/network-scripts/ debería ser modificado en este sentido.




No hay comentarios.:

Publicar un comentario