Configurazione e Troubleshooting di indirizzi IPv6

By | Novembre 9, 2018

In passato molti amministratori di sistema hanno semplicemente fatto ricorso alla disabilitazione di IPv6 piuttosto che configurarlo correttamente, continuando a fare affidamento sul vecchio IPv4 che ha funzionato bene per un tempo molto lungo. Poiché lo spazio degli indirizzi IPv4 si è esaurito, gli amministratori stanno iniziando lentamente a utilizzare IPv6 per necessità.

Qui tratteremo come configurare l’indirizzamento IPv6 in Linux e forniremo alcuni suggerimenti e consigli di base per la risoluzione dei problemi relativi alla rete IPv6.

Configurazione degli indirizzi IPv6

Gli indirizzi IPv6 possono essere configurati in alcuni modi aggiuntivi rispetto a IPv4, alcuni dei quali sono elencati di seguito.

Configurazione manuale: Questo è abbastanza simile al modo in cui IPv4 viene configurato manualmente, in sostanza modifichiamo manualmente un file di interfaccia nel formato /etc/sysconfig/network-scripts/ifcfg-<interface>.
DHCPv6: Dynamic Host Protocol versione 6 è simile a DHCP per IPv4 in quanto configurerà automaticamente la nostra interfaccia.
Autoconfigurazione dell’indirizzo stateless (SLAAC): funziona in modo simile a DHCP, tuttavia funziona ricevendo i messaggi pubblicitari del router da un router IPv6 locale sulla rete.

Qui ci concentreremo principalmente sulla configurazione di rete IPv6 manuale.

Configurazione manuale IPv6

Per prima cosa date un’occhiata alla directory /etc/sysconfig/network-scripts/per vedere se esiste già una configurazione IPv6 esistente per la particolare interfaccia in questione. Il nome del file sarà elencato come ifcfg-<interfaccia>, è possibile confermare i nomi dell’interfaccia eseguendo ‘ip a’ o deprecato ‘ifconfig‘. I nomi tipici possono includere eth0 o il formato più recente ‘eno *’ come eno16777736. Questo file può contenere sia la configurazione IPv4 che IPv6 per la stessa interfaccia.

Di seguito è riportata la configurazione del file CentOS 7 /etc/sysconfig/network-scripts/ifcfg-eno16777736, notare le impostazioni che iniziano con “IPV6”.

IPV6INIT = yes – È necessario quando si configura IPv6 sull’interfaccia.
IPV6ADDR = <indirizzo ipv6>: specifica un indirizzo IPv6 statico primario.
IPV6_DEFAULTGW = <indirizzo ipv6>% eno16777736 – Aggiunge una route predefinita attraverso l’interfaccia specificata.

Nota che se modifichi manualmente questi file, dovrai eseguire “nmcli con reload” per raccogliere le modifiche. In alternativa, possiamo apportare modifiche con il comando nmcli, che per ammissione richiede un po ‘di tempo per abituarsi, ma è piuttosto potente e il suo completamento automatico della scheda aiuta molto.

nmcli con mod eno16777736 ipv6.addresses 'fe80::20c:29ff:fe27:f2b6/64'
nmcli con mod eno16777736 ipv6.method manual

Il primo comando imposta l’indirizzo IPv6, mentre il secondo assicura che questo sia un indirizzo statico e non venga perso da DHCP o SLAAC.

Per ulteriori informazioni, tenere a mente la pagina man ‘nmcli-examples‘, in quanto vi sono numerosi esempi diversi documentati qui che è possibile utilizzare.

man nmcli-examples

Configurazione IPv6 automatica

La configurazione automatica degli indirizzi IPv6 può avvenire con DHCPv6 o SLAAC. Di seguito è riportata una configurazione predefinita di CentOS 7 con IPV6_AUTOCONF abilitato, che configura le impostazioni di rete utilizzando gli annunci del router SLAAC.

[root@centos7 network-scripts]# cat ifcfg-eno16777736
HWADDR=00:0C:29:AB:12:34
TYPE=Ethernet
BOOTPROTO=dhcp
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=0dbee9e5-2e7e-4c88-822b-869cfc9e2d54
ONBOOT=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

In alternativa, è possibile impostare IPV6_AUTOCONF su no e definire DHCPV6C = yes per utilizzare DHCPv6 anziché SLAAC. Quando si utilizza SLAAC o DHCPv6, gli elementi di configurazione manuale come IPV6ADDR e IPV6_DEFAULTGW possono essere rimossi poiché verranno configurati automaticamente.

Per ulteriori informazioni su queste variabili è possibile consultare la documentazione in /usr/share/doc/initscripts-*/sysconfig.txt

Applicazione delle modifiche di rete

Dopo aver apportato eventuali modifiche ai file in /etc/sysconfig/network-scripts/ la rete deve essere riavviata affinché abbiano effetto.

systemctl restart network

È anche possibile eseguire un riavvio del sistema, tuttavia ciò richiederà più tempo, ma porterà l’interfaccia con la nuova configurazione.
Risoluzione dei problemi di IPv6 di base

Ecco alcuni strumenti di base che è possibile utilizzare per eseguire la risoluzione dei problemi IPv6 di base, funzionano in modo abbastanza simile alle loro controparti IPv4.

Ping IPv6

Il comando ping6 funziona allo stesso modo del normale comando ping, tranne per il fatto che ping6 funziona con indirizzi IPv6. Questo può essere usato per inviare il traffico ICMP ad un indirizzo IPv6 e verificare la risposta, l’esempio seguente esegue il ping dell’indirizzo localhost IPv6.

[root@centos7 ~]# ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.039 ms
...

Possiamo anche eseguire il ping di un’interfaccia specificata, il comando seguente esegue il ping di tutto ciò che è collegato a eno1677736.

[root@ ~]# ping6 ff02::1%eno16777736
PING ff02::1%eno16777736(ff02::1) 56 data bytes
64 bytes from fe80::204:edff:feef:a770: icmp_seq=1 ttl=64 time=2.32 ms
64 bytes from fe80::204:edff:feef:a770: icmp_seq=2 ttl=64 time=0.640 ms

IPv6 Route

Il comando ‘ip -6 route show‘ può essere utilizzato per visualizzare il routing IPv6.

[root@centos7 ~]# ip -6 route show
unreachable ::/96 dev lo  metric 1024  error -101
unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101
unreachable 2002:a00::/24 dev lo  metric 1024  error -101
unreachable 2002:7f00::/24 dev lo  metric 1024  error -101
unreachable 2002:a9fe::/32 dev lo  metric 1024  error -101
unreachable 2002:ac10::/28 dev lo  metric 1024  error -101
unreachable 2002:c0a8::/32 dev lo  metric 1024  error -101
unreachable 2002:e000::/19 dev lo  metric 1024  error -101
unreachable 3ffe:ffff::/32 dev lo  metric 1024  error -101
fe80::/64 dev eth0  proto kernel  metric 256

IPv6 Traceroute

Il comando traceroute6 può essere utilizzato per mostrare tutti gli hop nel percorso verso la destinazione specificata allo stesso modo del comando traceroute.

[root@centos7 ~]# traceroute6 ipv6.google.com
traceroute to ipv6.google.com (2607:f8b0:4006:80f::200e), 30 hops max, 80 byte packets
connect: Network is unreachable

Il comando tracepath6 funziona in modo simile.

Visualizza le informazioni sull’indirizzo IPv6 corrente

È possibile visualizzare la configurazione IPv6 corrente eseguendo il comando ‘ip a‘ che è l’abbreviazione di ‘ip address show‘. Questo mostrerà le interfacce IPv6 come “inet6” seguito dal loro indirizzo IP.

Visualizza connessioni di rete IPv6

Per impostazione predefinita, il comando ‘netstat’ mostra sia IPv4 che IPv6, tuttavia con l’opzione -6 possiamo selezionare di visualizzare solo le porte che il server sta ascoltando con i suoi indirizzi IPv6 e tutte le connessioni.

[root@centos7 ~]# netstat -antup6
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::111                  :::*                    LISTEN      787/rpcbind
tcp6       0      0 :::22                   :::*                    LISTEN      1661/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      2476/cupsd
tcp6       0      0 ::1:25                  :::*                    LISTEN      2066/master
udp6       0      0 :::111                  :::*                                787/rpcbind
udp6       0      0 :::123                  :::*                                781/chronyd
udp6       0      0 ::1:323                 :::*                                781/chronyd
udp6       0      0 :::39836                :::*                                1439/dhclient
udp6       0      0 :::942                  :::*                                787/rpcbind

Conclusione

La configurazione degli indirizzi IPv6 non è molto diversa dalla configurazione degli indirizzi IPv4, la differenza principale è semplicemente la struttura degli indirizzi IP è diversa. Una volta individuate le basi di IPv6, è possibile configurare facilmente il networking IPv6. La maggior parte degli strumenti di risoluzione dei problemi sono anche abbastanza simili, è comunque possibile visualizzare le informazioni sull’indirizzo IP corrente, le tabelle di routing ed eseguire ping e traceroute in modo molto simile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.