Ir al contenido principal

Netplan: Configurando las interfaces de red en Linux

Si has instalado Ubuntu 18.04 LTS y has tenido algún problema con la red, probablemente te hayas topado con Netplan, apareció ya en la versión 17.10. Es cierto, que si sólo has utilizado la versión Desktop posiblemente ni te hayas dado cuenta, ya que Netplan delega a NetworkManager el control de las interfaces de red (NIC) en esta versión. Pero si trabajas con servidores tienes que utilizar Netplan.

Netplan permite configurar fácilmente las NIC utilizando ficheros YAML. ¿Cómo? pues a partir de la información que se encuentra en estos ficheros, Netplan genera  la configuración necesaria para el backend que estemos utilizando, ya sea para NetworkManager o para systemd-network. De este modo, tenemos una configuración única en el fichero YAML y dependiendo del backend que vayamos a utilizar, Netplan generará una configuración u otra. Es dentro del fichero YAML donde indicamos el backend que vamos a utilizar por medio de la directiva renderer.

La configuración ahora se encuentra en /etc/netplan/ y en la versión Server de Ubuntu el fichero se denomina 01-netcfg.yaml. Si utilizamos la versión para Cloud el fichero recibe el nombre 50-cloud-init.yaml y para la versión Desktop, 01-network-manager-all.yaml.

La configuración más sencilla y la que se utiliza normalmente en las versiones Desktop delegando el control a NetworkManager es la siguinte:

network:
  version: 2
  renderer: NetworkManager

Las definiciones empiezan por network, a continuación viene el número de versión de Netplan, actualmente la 2. Como se comomento anteriormente, renderer le indica a Netplan que backend vamos a utilizar para que genere los ficheros de configuración correspondientes, en este caso utiliza NetworkManager. De este modo NetworkManager se encarga de gestionar todas las NIC del sistema.

Pero a la hora de trabajar con servidores nos interesa utilizar systemd-network. Para cambiarlo sustituimos en la directiva renderer la palabra NetworkManager por networkd. A continuación ya podemos empezar a definir nuestras NIC dentro de la sección ethernets. En el ejemplo siguiente se muestra el fichero de configuración de un servidor con dos NIC:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 10.0.0.25/24
      gateway4: 10.0.0.1
      nameservers:
        addresses: [10.0.0.254, 8.8.8.8]
    enp5s0:
      dhcp4: true

Por cada NIC que tengamos habrá una entrada con el nombre de la NIC correspondiente y bajo esa entrada especificaremos la configuración de la misma. En este ejemplo tenemos dos NIC, enp3s0 y enp5s0. La primera está configura manualmente y la segunda por DHCP. Las directivas con el sufijo 4 hacen referencia a IPv4, para referenciar a IPv6 lo sustituimos por 6.

En el caso de enp3s0, la dirección la especificamos bajo addresses, podemos utilizar cualquiera de las opciones de YAML  a la hora de enumerar elementos, en este caso he optado por utilizar el guión, - . Si tenemos más de una dirección IP, simplemente las enumeramos una tras otra. La puerta de enlace, o pasarela de la red viene especificada por gateway4. A la hora de especificar los servidores de nombre, DNS, se utiliza la sección nameservers. En este caso se indican dos servidores de nombres. La directiva addresses nos permite especificar las direcciones IP de los mismos. Esta vez he optado por utilizar los corchetes para la enumeración.

Una vez que modifiquemos el fichero de configuración tendremos que ejecutar:

# netplan try

Este comando comprobará que la configuración es correcta, y en caso afirmativo, nos pedirá que le confirmemos que queremos aplicarla.

Para aplicarla directamente, tan sólo tendremos que ejecutar:

# netplan apply

@josrrp












Comentarios

Entradas populares de este blog

Instalando Moodle con Docker

En este blog ya hemos hablado en varios artículos sobre la tecnología de contenedores, pero hasta ahora nos habíamos centrado en LXD . En este artículo vamos a explicar cómo podemos instalar Moodle en menos de un minuto (dependiendo de la velocidad de descarga que se tenga, se puede alargar un poco más) usando contenedores. Acerca de Moodle No voy a explicar que es Moodle ni como instalarlo desde cero, para eso existe en Internet multitud de tutoriales. Lo que sí quiero comentar es que para instalar Moodle hace falta un servidor web con PHP . Además requiere que PHP tenga instalado una serie de componentes adicionales. Por otro lado, necesitamos tener instalado en el servidor un sistema de gestión de bases de datos relacional, ya que Moodle almacena la información en él. Normalmente se utiliza MySQL , MariaDB o PostgreSQL . También debemos crear una base de datos específica para Moodle con su respectivo usuario. Durante la instalación Moodle creará las tablas necesari

Analizando el protocolo HTTP

El objetivo de este artículo es el de explicar de forma práctica el funcionamiento del protocolo HTTP y entender el intercambio de datos que se realiza entre los servidores y los clientes web. Por otro lado, cubre la necesidad de tener un texto en español que sirva de referencia a mis alumnos de Servicios en Red  a la hora de realizar la práctica de clase  HTTP-1 . La idea es ver de forma práctica el funcionamiento interno del protocolo HTTP . Para ello, vamos a utilizar un par de herramientas de la línea de comandos de Linux ( telnet y netcat ), con las que vamos a simular el comportamiento tanto del navegador como del servidor web. HTTP es un protocolo de la capa de aplicación, y como muchos otros protocolos de esta capa, está basado en texto. De hecho, los comandos que envía el navegador al servidor y sus respuestas se pueden leer perfectamente en inglés. Por defecto, HTTP utiliza el puerto 80 TCP y HTTPS  el puerto 443 TCP. Los ejemplos que vamos a ilustrar serán

ZFS, Primera parte

Cuando el año pasado instalé LXD y lo configuré por primera vez, me encontré que podía utilizar, de hecho se recomienda, el sistema de ficheros ZFS para albergar los contenedores. Posteriormente, cuando instalé Proxmox en el servidor de mi departamento, me encontré de nuevo con  ZFS . Anteriormente no le había prestado mucha atención a  ZF S , normalmente utilizo EXT4 o XFS , pero estaba claro que había una estrecha relación entre  ZFS  y los sistemas de virtualización. ZFS  es un sistema de ficheros desarrollado por Sun Microsystems  (creadores también del lenguaje de programación Java ), posteriormente la empresa fue adquirida por Oracle , actuales propietarios. OpenZFS  es la variante libre y posee una licencia de tipo  CDDL , que aunque es software libre, es incompatible con GPL . Por este motivo, el kernel de Linux no lo incorpora de serie. Sin embargo, los usuarios pueden instalarlo sin problemas ya que se encuentra en los repositorios de la mayoría de las distribucione