Per Server Cloud e Server Virtuale

In questo articolo ti spieghiamo come configurare indirizzi IPv4 e IPv6 pubblici aggiuntivi su un Server Cloud o Server Virtuale su cui sono installati Ubuntu 22.04 e netplan.

La configurazione di rete nelle immagini di IONOS per Ubuntu 20.04 e Ubuntu 22.04 viene eseguita tramite netplan. La configurazione non viene più controllata dal file /etc/network/interfaces, ma dai file con estensione .yaml, che si trovano nella directory /etc/netplan. Se ci sono più file in questa directory, vengono caricati in ordine lessicale.

Nota bene

Gli articoli seguenti spiegano come stabilire una connessione di rete crittografata al tuo server tramite Secure Shell (SSH):

Computer con sistemi operativi Windows

Computer con sistemi operativi Linux

Importante

Queste istruzioni sono valide solo per i Server Cloud e i Server Virtuali con Ubuntu 22.04. Per aggiungere indirizzi IPv4 e IPv6 su un Server Dedicato, consulta i seguenti articoli:

Aggiungere un indirizzo IPv4 pubblico su un Server Dedicato (Ubuntu 20.04).

Aggiungere un indirizzo IPv6 pubblico su un Server Dedicato (Ubuntu 20.04)

Per configurare degli indirizzi IPv4 e IPv6 su un Server Cloud o su un Server Virtuale su cui è installato Ubuntu 18.04, Ubuntu 20.04, Debian 10, 11 o Debian 12, consulta il seguente articolo:

Aggiungere un indirizzo IPv4 e/o IPv6 pubblico su un Server Cloud o un Server Virtuale (Ubuntu 18.04, Ubuntu 20.04, Debian 10,11 e 12)

Come configurare indirizzi IPv4 e IPv6 pubblici aggiuntivi su Ubuntu 22.04:

Requisiti
  • Hai assegnato uno o più indirizzi IPv4 e/o IPv6 pubblici aggiuntivi al tuo server nel Cloud Pannel.

  • Hai effettuato l'accesso al server.

  • Hai annotato gli indirizzi IPv4 e IPv6 del server.

Verificare se netplan viene già utilizzato per la configurazione di rete

Per verificare se il tuo server utilizza già netplan per la configurazione della rete, inserisci il seguente comando:

  • Per controllare se il pacchetto netplan.io è già installato sul tuo sistema Ubuntu o Debian, digita il seguente comando:

    [root@localhost ~]# dpkg -l | grep netplan.io

    Se il pacchetto netplan.io è installato, otterrai ad esempio le seguenti informazioni:

    root@localhost:~# dpkg -l | grep netplan.io
    ii  netplan.io 0.105-0ubuntu2~22.04.3 amd64 YAML network configuration abstraction for various backends

  • Passa alla directory /etc/netplan.

    [root@localhost ~]# cd /etc/netplan

  • Controlla che non ci sia già un file di configurazione in questa directory. Per farlo, inserisci il seguente comando:

    [root@localhost ~]# ls

Nota bene

Se la directory /etc/netplan non esiste, significa che netplan non è stato installato. In questo caso, non installare netplan, ma segui la procedura descritta nel seguente articolo:

Aggiungere un indirizzo IPv4 e/o IPv6 pubblico su un Server Cloud o un Server Virtuale (Ubuntu 18.04, Ubuntu 20.04, Debian 10,11 e 12)

Individuare l'interfaccia di rete

Individua il nome del file dell'interfaccia di rete. Per farlo, immetti il seguente comando:

[root@localhost ~]# ip addr

In questo esempio, il nome dell'interfaccia di rete è ens192:

root@localhost:~# ip addr
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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:08:a5:c6 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 217.160.141.60/32 metric 100 scope global dynamic ens192
    inet6 2001:8d8:1801:5d2::1/64 scope global dynamic noprefixroute
       valid_lft 3443sec preferred_lft 3443sec
    inet6 fe80::250:56ff:fe08:a5c6/64 scope link
       valid_lft forever preferred_lft forever

Visualizzare i server DNS predefiniti

  • Per visualizzare i server DNS utilizzati, inserisci i seguenti comandi:

    [root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv

    [root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers6 -Lv

    I server DNS utilizzati vengono visualizzati alla fine dell'output. Esempio:

    [root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
    * Trying 169.254.169.254...
    * TCP_NODELAY set
    * Connected to 169.254.169.254 (169.254.169.254) porta 80 (#0)
    > GET /latest/meta_data/dns/nameservers HTTP/1.1
    > Host: 169.254.169.254
    > User-Agent: curl/7.61.1
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Date: Thu, 08 Sep 2022 12:19:36 GMT
    < Server: Apache
    < Strict-Transport-Security: max-age=63072000; includeSubDomains
    < Vary: Accept-Encoding
    < Access-Control-Allow-Origin: *
    < Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, X-USER, Content-Type, X-API-TOKEN, Authorization
    < Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
    < Access-Control-Expose-Headers: Error-Msg
    < Cache-control: no-cache, no-store, max-age=0
    < Access-Control-Allow-Origin: *
    < Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, Content-Type, X-API-TOKEN, Authorisation
    < Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
    < Access-Control-Expose-Headers: Error-Msg
    < Transfer-Encoding: chunked
    < Content-Type: text/plain;charset=UTF-8
    <
    212.227.123.16,212.227.123.17
    * Connection #0 to host 169.254.169.254 left intact

  • Nell'esempio precedente, i server DNS vengono riportati sopra la riga * Connection #0 to host 169.254.169.254 left intact.

  • Se il server DNS per IPv6 non viene visualizzato, inserisci il seguente comando:

    [root@localhost ~]# resolvectl --no-pager |grep Server

    Esempio :

    root@localhost:/etc/netplan# resolvectl --no-pager |grep Server
    Current DNS Server: 212.227.123.16
           DNS Servers: 212.227.123.16 212.227.123.17 2001:8d8:fe:53:72ec::1

     

Visualizzare il gateway per IPv4 e IPv6

  • Per visualizzare il gateway predefinito dell'interfaccia attiva, inserisci i seguenti comandi:

    IPv4:

    [root@localhost ~]# ip route show default 

    IPv6:

    [root@localhost ~]# ip -6 route show default

  • Prendi nota degli indirizzi IP dei gateway. Li trovi elencati subito dopo la sezione "default via".
    Esempio:


IPv4 Gateway

root@localhost:~# ip route show default
default via 10.255.255.1 dev ens192 proto dhcp src 217.160.141.60
metric 100

IPv6 Gateway

root@localhost:~# ip -6 route show | grep 'default'
default via fe80::1 dev ens192 proto ra metric 100 expires 4sec
pref high

In questo esempio, fe80::1 è il gateway IPv6.

Aggiungere indirizzi IPv4 e IPv6

  • Controlla se esiste già un file di configurazione in questa directory. Per farlo, inserisci il seguente comando:

    [root@localhost ~]# ls /etc/netplan

Importante

Se la cartella contiene il file 00-Public_network.yaml, non rinominarlo, poiché questo file è necessario per la rete pubblica.

  • Se esiste un file di configurazione in questa directory, rinominalo. Per farlo, inserisci il seguente comando e sostituisci il segnaposto.

    [root@localhost ~]# mv VECCHIO_FILE_CONFIGURAZIONE.yaml
    VECCHIO_FILE_CONFIGURAZIONE.yaml.old

  • Crea il file /etc/netplan/01-netcfg.yaml con l'editor vi. Per farlo, inserisci il seguente comando:

    [root@localhost ~]# vi /etc/netplan/01-netcfg.yaml

Nota bene
  • L'editor vi ha una modalità di inserimento e una modalità di comando. Puoi accedere alla modalità di inserimento premendo il tasto [i]. In questa modalità, i caratteri digitati vengono inseriti immediatamente nel testo. Per accedere alla modalità di comando, premi il tasto [ESC]. Quando utilizzi la modalità di comando, i caratteri digitati vengono interpretati come comandi.

  • Per uscire da vi e salvare il file, immetti il comando :wq e premi Invio.

  • Aggiungi le seguenti informazioni:

    network:
      version: 2
      renderer: networkd
      ethernets:
        NETWORKINTERFACE:
          addresses:
            - INDIRIZZO-IPv4-PRINCIPALE/32
            - INDIRIZZO-IPv4-AGGIUNTIVO_1/32
            - INDIRIZZO-IPv6-PRINCIPALE/64
            - INDIRIZZO-IPv6-AGGIUNTIVO_1/64  
          gateway4: GATEWAY PER IPv4
          nameservers:
            addresses:
              - INDIRIZZO-IP DEL NAME SERVER_1
              - INDIRIZZO-IP DEL NAME SERVER_2  
          routes:
            - to: default
              via: GATEWAY PER IPv4
            - to: default
              via: GATEWAY PER IPv6

    Esempio:

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens192:
          addresses:
            - 85.215.105.86/32
            - 85.215.109.181/32
            - 2a01:239:0:805d::1/64
            - 2a01:239:0:805d::2/64
          gateway4: 10.255.255.1
          nameservers:
            addresses:
              - 212.227.123.16
              - 212.227.123.17
          routes:
            - to: default
              via: 10.255.255.1
            - to: default
              via: fe80::1

  • Sostituisci il segnaposto NETWORKINTERFACE con l'interfaccia di rete individuata. Nell'esempio precedente si tratta dell'interfaccia di rete ens192. Inserisci quindi l'indirizzo IPv4 principale e gli indirizzi IPv4 aggiuntivi, così come l'indirizzo IPv6 principale e gli indirizzi IPv6 aggiuntivi. Per farlo, sostituisci i relativi segnaposto.

Importante
  • Le indentazioni appartengono alla sintassi del formato YAML. Assicurati sempre che siano riportate correttamente. In caso contrario, la configurazione non verrà riconosciuta come valida e il server potrebbe non essere più accessibile.

  • Utilizza sempre la barra spaziatrice per le indentazioni.

  • Sostituisci il segnaposto GATEWAY PER IPv4 con il gateway IPv4 individuato.

  • Sostituisci i segnaposto INDIRIZZO IP DEL NAME SERVER_1 e INDIRIZZO IP DEL NAME SERVER_2 con i name server individuati in precedenza.

  • Sostituisci il segnaposto GATEWAY PER IPv6 per con il gateway IPv6 individuato.

  • Per uscire da vi e salvare il file, immetti il comando :wq e premi Invio.

  • Per cambiare i permessi del file 01-netcfg.yaml in modo che il file possa essere letto e modificato solo dall'account root, digita il seguente comando:

    root@localhost:~# sudo chmod 600 /etc/netplan/01-netcfg.yaml

  • Per verificare il file di configurazione, immetti il seguente comando:

    root@localhost:~# netplan --debug apply

Importante

Le modifiche che hai apportato al file /etc/netplan/01-netcfg.yaml vengono mantenute e dovrai quindi modificarle autonomamente se non dovessero risultare corrette. In caso contrario, il sistema operativo cercherà di caricarle una volta riavviato il server.

Nota bene

Se dopo aver immesso il comando netplan --debug apply viene visualizzato un messaggio di errore simile a quello riportato di seguito, ciò significa che c'è un problema di indentazione nel file /etc/netplan/01-netcfg.yaml:

root@localhost:# netplan --debug apply
** (generate:1617): DEBUG: 16:52:11.664: starting new processing pass
/etc/netplan/01-netcfg.yaml:2:10: Invalid YAML: mapping values are not allowed in this context:
  version: 2

In questo caso, correggi l'indentazione e riprova. 

  • Per evitare conflitti, dovrai disinstallare ifupdowm. Per disinstallare ifupdown e gli altri pacchetti dipendenti, e per cancellare i file di configurazione e/o di dati di ifupdown, inserisci il seguente comando:  

    root@localhost:~# sudo apt-get autoremove --purge ifupdown

  • Riavvia il server per applicare le modifiche. Per farlo, immetti il seguente comando:

     root@localhost:~# systemctl reboot

  • Per verificare se l'indirizzo aggiuntivo IPv4 è stato configurato correttamente, inserisci il seguente comando:

     root@localhost:~# ip addr

     

Nota bene

Se il server non dovesse più essere accessibile per un errore di configurazione, puoi correggere la configurazione usando la console KVM. Il seguente articolo ti spiega come fare: 

Utilizzare la console KVM per accedere ad un server (Server Cloud e Server Virtuale Cloud)