Cómo cambiar la IP en Zentyal

En esta entrada vamos a explicar cómo cambiar la IP de un servidor Zentyal.

Consideraciones generales

Si queremos cambiar la IP del servidor Zentyal, es necesario tener en cuenta qué módulos tenemos habilitados. Si no tenemos los módulos de DNS [1] y Controlador de Dominio [2] habilitados, simplemente tendremos que cambiar la IP en el módulo de Red desde el panel de administración web. Si por el contrario, tenemos los módulos mencionados instalados y habilitados, tendremos que realizar una serie de acciones adicionales para minimizar posibles incidencias.

[1]DNS: https://doc.zentyal.org/es/dns.html
[2]Controlador de Dominio: https://doc.zentyal.org/es/directory.html

Sin los módulos DNS y Controlador de Dominio

Este es el caso más sencillo de todos, al no tener los los módulos DNS y Controlador de Dominio habilitados.

Entorno del laboratorio

El entorno del laboratorio sobre el que haremos las pruebas tiene las siguientes características:

  • Módulos instalados → Red, Cortafuegos, Logs, NTP.
  • Interfaz de red: eth0 → 10.0.2.15
  • Interfaz de red: eth1
  • Dirección IP actual eth1: 192.168.10.1
  • Dirección IP deseada eth1: 192.168.10.10

Cambio de IP

  1. Nos logeamos en el panel de administración de Zentyal, vamos a: Red -> Interfaces y seleccionaremos la interfaz de red que queremos cambiar:
Configuracion inicial de la interfaz eth1
  1. Modificamos la IP y guardamos cambios:
Configuracion de la interfaz eth1
  1. Una vez que se hayan guardado los cambios, comprobamos desde la línea de comandos que el cambio se ha realizado correctamente:

    Comprobación de la IP:

    sudo ip -4 addr show dev eth1
    

    Resultados:

    eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.10.10/24 brd 192.168.10.255 scope global eth1
    valid_lft forever preferred_lft forever
    

Truco

En caso de que la IP no haya cambiado o que la interfaz esté caída, tendremos que revisar el archivo de log: /var/log/zentyal/zentyal.log

Con el Controlador de Dominio

Este cambio es más complejo, ya que requiere realizar varias acciones previas y posteriores al cambio de IP.

Advertencia

Las acciones requeridas causarán una pérdida temporal de los módulos DNS y Controlador de Dominio.

Entorno del laboratorio

El entorno del laboratorio sobre el que haremos las pruebas tiene las siguientes características:

  • Módulos instalados: Red, Cortafuegos, Logs, DNS, Controlador de Dominio, Correo, Webmail.
  • Interfaz de red: eth0 → 10.0.2.15
  • Interfaz de red: eth1
  • Dirección IP actual eth1: 192.168.10.1
  • Dirección IP deseada eth1: 192.168.10.10
  • Usuario administrador del Dominio: administrator

Registros DNS que deberán cambiar desde la IP 192.168.10.1:

Configuración de DNS
Registro DNS para el hostname

Cambio de IP

  1. Nos logeamos en el panel de administración de Zentyal, vamos a: Habilitar módulos, seleccionaremos el módulo de DNS para deshabilitarlo temporalmente:
Deshabilitar modulo DNS
  1. Guardamos cambios.
  2. Vamos a Red -> Interfaces y seleccionaremos la interfaz de red que queremos cambiar:
Configuración inicial de la interfaz eth1
  1. Modificamos la IP y guardamos cambios:
Configuración de la interfaz eth1
  1. Comprobamos los registros DNS para el dominio y el hostname del servidor del módulo DNS desde DNS -> Dominio:

    Registros DNS que han debido cambiar a 192.168.10.10:

Configuración de DNS
Registro DNS para el hostname
  1. Guardamos cambios en caso de haber modificado algún registro del paso anterior.
  2. Habilitamos el módulo DNS desde Habilitar módulos y guardamos cambios:
Habilitar modulo DNS
  1. Realizamos las siguientes confirmaciones:

    Confirmamos que el módulo DNS se haya iniciado correctamente:

    sudo zs dns status
    

    Resultados:

    Zentyal: status module dns:                     [ RUNNING ]
    

    Confirmamos que el módulo DNS está escuchando en la nueva IP

    sudo ss -tuln | egrep :53
    

    Resultados:

    udp   UNCONN 0      0      192.168.10.10:53         0.0.0.0:*
    udp   UNCONN 0      0      192.168.10.10:53         0.0.0.0:*
    udp   UNCONN 0      0          10.0.2.15:53         0.0.0.0:*
    udp   UNCONN 0      0          10.0.2.15:53         0.0.0.0:*
    udp   UNCONN 0      0          127.0.1.1:53         0.0.0.0:*
    udp   UNCONN 0      0          127.0.1.1:53         0.0.0.0:*
    udp   UNCONN 0      0          127.0.0.1:53         0.0.0.0:*
    udp   UNCONN 0      0          127.0.0.1:53         0.0.0.0:*
    tcp   LISTEN 0      10         10.0.2.15:53         0.0.0.0:*
    tcp   LISTEN 0      10         10.0.2.15:53         0.0.0.0:*
    tcp   LISTEN 0      10     192.168.10.10:53         0.0.0.0:*
    tcp   LISTEN 0      10     192.168.10.10:53         0.0.0.0:*
    tcp   LISTEN 0      10         127.0.0.1:53         0.0.0.0:*
    tcp   LISTEN 0      10         127.0.0.1:53         0.0.0.0:*
    tcp   LISTEN 0      10         127.0.1.1:53         0.0.0.0:*
    tcp   LISTEN 0      10         127.0.1.1:53         0.0.0.0:*
    

    Confirmamos que los registros DNS modificados se están resolviendo con la nueva IP:

    dig zentyal-domain.lan A
    dig zentyal.zentyal-domain.lan A
    

    Resultados:

    ### dig zentyal-domain.lan A
    ; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> zentyal-domain.lan
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65394
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ; COOKIE: 1e744af8175ad1cb0100000066a7868b2996b70fcfade79c (good)
    ;; QUESTION SECTION:
    ;zentyal-domain.lan.            IN      A
    
    ;; ANSWER SECTION:
    zentyal-domain.lan.     259200  IN      A       10.0.2.15
    zentyal-domain.lan.     259200  IN      A       192.168.10.10
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
    ;; WHEN: Mon Jul 29 14:09:47 CEST 2024
    ;; MSG SIZE  rcvd: 107
    
    ### dig zentyal.zentyal-domain.lan A
    ; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> zentyal.zentyal-domain.lan
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34095
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ; COOKIE: c1bebc39bdea7b6e0100000066a786ad659f6c0641b09fa1 (good)
    ;; QUESTION SECTION:
    ;zentyal.zentyal-domain.lan.    IN      A
    
    ;; ANSWER SECTION:
    zentyal.zentyal-domain.lan. 259200 IN   A       10.0.2.15
    zentyal.zentyal-domain.lan. 259200 IN   A       192.168.10.10
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
    ;; WHEN: Mon Jul 29 14:10:21 CEST 2024
    ;; MSG SIZE  rcvd: 115
    

Truco

Si hay algún dato que creemos incorrecto, tendremos que revisar los archivos de log: /var/log/zentyal/zentyal.log y /var/log/syslog

  1. Habilitamos el módulo de Controlador de Dominio desde Habilitar módulos y guardamos los cambios.
Habilitar modulo Controlador de Dominio
  1. Realizamos las siguientes confirmaciones:

    Confirmamos que el módulo Controlador de Dominio se haya iniciado correctamente y que el módulo DNS sigue activo:

    sudo zs dns status
    sudo zs samba status
    

    Resultados:

    Zentyal: status module dns:                     [ RUNNING ]
    Zentyal: status module samba:                   [ RUNNING ]
    

    Confirmamos que ambos módulos están escuchando en la nueva IP:

    sudo ss -tuln | egrep ':(53|139)'
    

    Resultados:

    udp   UNCONN 0      0        192.168.10.10:53         0.0.0.0:*
    udp   UNCONN 0      0        192.168.10.10:53         0.0.0.0:*
    udp   UNCONN 0      0            10.0.2.15:53         0.0.0.0:*
    udp   UNCONN 0      0            10.0.2.15:53         0.0.0.0:*
    udp   UNCONN 0      0            127.0.1.1:53         0.0.0.0:*
    udp   UNCONN 0      0            127.0.1.1:53         0.0.0.0:*
    udp   UNCONN 0      0            127.0.0.1:53         0.0.0.0:*
    udp   UNCONN 0      0            127.0.0.1:53         0.0.0.0:*
    tcp   LISTEN 0      10       192.168.10.10:53         0.0.0.0:*
    tcp   LISTEN 0      10       192.168.10.10:53         0.0.0.0:*
    tcp   LISTEN 0      50           127.0.1.1:139        0.0.0.0:*
    tcp   LISTEN 0      10           127.0.1.1:53         0.0.0.0:*
    tcp   LISTEN 0      10           127.0.1.1:53         0.0.0.0:*
    tcp   LISTEN 0      50       192.168.10.10:139        0.0.0.0:*
    tcp   LISTEN 0      50           127.0.0.1:139        0.0.0.0:*
    tcp   LISTEN 0      10           127.0.0.1:53         0.0.0.0:*
    tcp   LISTEN 0      10           127.0.0.1:53         0.0.0.0:*
    tcp   LISTEN 0      50           10.0.2.15:139        0.0.0.0:*
    tcp   LISTEN 0      10           10.0.2.15:53         0.0.0.0:*
    tcp   LISTEN 0      10           10.0.2.15:53         0.0.0.0:*
    

    Consultamos vía samba-tool que los registros DNS han sido correctamente modificados:

    sudo samba-tool dns query 127.0.0.1 zentyal-domain.lan @ ALL -Uadministrator
    

    Resultados:

    Name=, Records=4, Children=0
            SOA: serial=34, refresh=900, retry=600, expire=86400, minttl=3600, ns=zentyal.zentyal-domain.lan., email=hostmaster.zentyal-domain.lan. (flags=600000f0, serial=33, ttl=3600)
            NS: zentyal.zentyal-domain.lan. (flags=600000f0, serial=33, ttl=259200)
            A: 10.0.2.15 (flags=600000f0, serial=33, ttl=259200)
            A: 192.168.10.10 (flags=600000f0, serial=33, ttl=259200)
    Name=_kerberos, Records=1, Children=0
            TXT: "zentyal-domain.lan" (flags=f0, serial=9, ttl=259200)
    Name=_msdcs, Records=0, Children=0
    Name=_sites, Records=0, Children=1
    Name=_tcp, Records=0, Children=5
    Name=_udp, Records=0, Children=3
    Name=DomainDnsZones, Records=0, Children=2
    Name=ForestDnsZones, Records=0, Children=2
    Name=zentyal, Records=2, Children=0
            A: 192.168.10.10 (flags=f0, serial=33, ttl=259200)
            A: 10.0.2.15 (flags=f0, serial=33, ttl=259200)
    

    El dominio resuelve con la nueva IP:

    dig @192.168.10.10 zentyal-domain.lan A
    dig @192.168.10.10 zentyal.zentyal-domain.lan A
    

    Resultados:

    ### dig @192.168.10.10 zentyal-domain.lan A
    ; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> @192.168.10.10 zentyal-domain.lan A
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2226
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ; COOKIE: 45d7a294d52b11f50100000066b1e1cd7c93a16e2ed5352f (good)
    ;; QUESTION SECTION:
    ;zentyal-domain.lan.            IN      A
    
    ;; ANSWER SECTION:
    zentyal-domain.lan.     259200  IN      A       192.168.10.10
    zentyal-domain.lan.     259200  IN      A       10.0.2.15
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.10.10#53(192.168.10.10) (UDP)
    ;; WHEN: Tue Aug 06 10:41:49 CEST 2024
    ;; MSG SIZE  rcvd: 107
    
    ### dig @192.168.10.10 zentyal.zentyal-domain.lan A
    ; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> @192.168.10.10 zentyal.zentyal-domain.lan A
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15546
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ; COOKIE: 329dc989a3157ed80100000066b1e1cd6c163a08fca116b1 (good)
    ;; QUESTION SECTION:
    ;zentyal.zentyal-domain.lan.    IN      A
    
    ;; ANSWER SECTION:
    zentyal.zentyal-domain.lan. 259200 IN   A       192.168.10.10
    zentyal.zentyal-domain.lan. 259200 IN   A       10.0.2.15
    
    ;; Query time: 4 msec
    ;; SERVER: 192.168.10.10#53(192.168.10.10) (UDP)
    ;; WHEN: Tue Aug 06 10:41:49 CEST 2024
    ;; MSG SIZE  rcvd: 115
    

    En caso de que los registros DNS no hayan actualizado correctamente, tendremos que usar la línea de comandos para modificarlos como se detalla en este enlace [3] :

    # Registro para el dominio
    sudo samba-tool dns update 127.0.0.1 zentyal-domain.lan @ A 192.168.10.1 192.168.10.10 -Uadministrator
    
    # Registro para el hostname
    sudo samba-tool dns update 127.0.0.1 zentyal-domain.lan zentyal A 192.168.10.1 192.168.10.10 -Uadministrator
    

    Comprobamos nuevamente los cambios:

    sudo samba-tool dns query 127.0.0.1 zentyal-domain.lan zentyal A -Uadministrator
    dig @192.168.10.10 zentyal-domain.lan A
    dig @192.168.10.10 zentyal.zentyal-domain.lan A
    
[3]Cambio de IP manualmente vía CLI: https://wiki.samba.org/index.php/DNS_Administration#Updating_existing_records