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:
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
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
Publicar un comentario