User Tools

Site Tools


doc:appunti:net:ipv6

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:net:ipv6 [2013/02/01 16:25] – [Shorewall6: iptables con IPv6] niccolodoc:appunti:net:ipv6 [2019/08/26 11:06] (current) – [Configurazione automatica] niccolo
Line 34: Line 34:
 ip -6 route add <ipv6network>/<prefixlength> via <ipv6address> [dev <device>] ip -6 route add <ipv6network>/<prefixlength> via <ipv6address> [dev <device>]
 ip -6 route del <ipv6network>/<prefixlength> via <ipv6address> [dev <device>] ip -6 route del <ipv6network>/<prefixlength> via <ipv6address> [dev <device>]
-ip -6 route add default via <ipv6address> +ip -6 route add default via <ipv6address> [dev <device>] 
-ip -6 route del default via <ipv6address>+ip -6 route del default via <ipv6address> [dev <device>]
 </code> </code>
  
Line 49: Line 49:
  
 Quindi se esiste un host che annuncia la configurazione IPv6 (ad esempio un host GNU/Linux che esegue **radvd**, //Router Advertisement Daemon//), gli host nella stessa LAN si assegnano automaticamente un indirizzo IPv6 valido (ma non il default gateway). Quindi se esiste un host che annuncia la configurazione IPv6 (ad esempio un host GNU/Linux che esegue **radvd**, //Router Advertisement Daemon//), gli host nella stessa LAN si assegnano automaticamente un indirizzo IPv6 valido (ma non il default gateway).
 +
 +Per modificare uno di quei parametri creare un file **/etc/sysctl.d/90-local-ipv6.conf** con ad esempio:
 +
 +<file>
 +net.ipv6.conf.eth1.accept_ra=0
 +</file>
 +
 +Per rendere immediatamente attive le modifiche:
 +
 +<code>
 +cat /proc/sys/net/ipv6/conf/eth1/accept_ra 
 +1
 +sysctl --system
 +cat /proc/sys/net/ipv6/conf/eth1/accept_ra 
 +0
 +</code>
 ===== Configurazione manuale ===== ===== Configurazione manuale =====
  
Line 204: Line 220:
 </file> </file>
  
-Copiare dagli esempi (contenuti in **''/usr/share/doc/shorewall6/default-config/''**) alcuni file di configurazione, in generale servono+Copiare dagli esempi (contenuti in **''/usr/share/doc/shorewall6/default-config/''** oppure in **''/usr/share/shorewall6/configfiles/''**) alcuni file di configurazione, in generale servono
 questi: questi:
  
Line 230: Line 246:
  
 <file> <file>
-Ping(ACCEPT)    all    all +Ping(ACCEPT)    all                        all 
-AllowICMPs      all    all +AllowICMPs      all                        all 
-ACCEPT          net    fw    tcp     ssh,smtp,domain,www,pop3,imap2,imaps,https +ACCEPT          net                        fw    tcp     ssh,smtp,domain,www,pop3,imap2,imaps,https 
-ACCEPT          net    fw    udp     domain,openvpn+ACCEPT          net                        fw    udp     domain,openvpn 
 +ACCEPT          net:<2a01:4f8:d13:c03::2>  fw    tcp     5432
 </file> </file>
  
Line 242: Line 259:
 </file> </file>
  
-----+===== IPv6 su PPP ===== 
 + 
 +Alcuni provider forniscono indirizzi IPv6 sulla normale connessione ADSL. In generale funziona l'autoconfigurazione durante la negoziazione del **PPPoE** (PPP over Ethernet). Qui di seguito le note per la configurazione della connessione di un host basato su **Debian 9 Stretch**. 
 + 
 +=== Configurazione manuale === 
 + 
 +Se lo stack PPP non è opportunamente configurato, è possibile procedere alla **configurazione manuale** dell'indirizzo IPv6 e del relativo default gateway dopo che la connessione è stabilita. È ovviamente necessario conoscere i parametri che dovrebbero essere forniti dal provider. Ecco un esempio dei comandi da eseguire: 
 + 
 +<code> 
 +ip -6 addr add 2a02:1970:af32:421::1/64 dev ppp0 
 +ip -6 route add default via fe80::a64c:32fe:ac3b:9480 dev ppp0 
 +</code> 
 + 
 +=== Configurazione automatica === 
 + 
 +La configurazione standard di una connessione PPPoE con Debian prevede la creazione di una istanza in **/etc/network/interfaces**: 
 + 
 +<file> 
 +auto adsl 
 +iface adsl inet ppp 
 +    provider dsl-provider 
 +</file> 
 + 
 + 
 +Nel file **/etc/ppp/peers/dsl-provider** (oltre ai normali parametri //user// e //remotename//) si aggiungere il parametro: 
 + 
 +<file> 
 ++ipv6 
 +</file> 
 + 
 +Per ottenere la **configurazione automatica** si sfrutta il protocollo //Stateless Address Autoconfiguration// **SLAAC**, l'interfaccia ppp deve **accettare il Router Advertisements**. 
 + 
 +Il kernel di Linux espone il parametro **accept_ra** delle varie interfacce di rete tramite lo pseudo filesystem **/proc/sys/net/ipv6/conf/**. Questi sono i valori possibili: 
 + 
 +^  0 | Do not accept Router Advertisements. 
 +^  1 | Accept Router Advertisements if forwarding is disabled (default). 
 +^  2 | Overrule forwarding behaviour. Accept Router Advertisements even if forwarding is enabled. 
 + 
 +Il valore predefinito **1** ovviamente **non va bene per un firewall** che effettua il forward dei pacchetti da una LAN verso internet. 
 + 
 +Si potrebbe impostare a 2 il valore di default con questo comando: 
 + 
 +<code> 
 +echo 2 > /proc/sys/net/ipv6/conf/default/accept_ra 
 +</code> 
 + 
 +In questo modo - quando viene attivata l'interfaccia **ppp0** - si otterrebbe l'autoconfigurazione IPv6. Ma non vogliamo cambiare il valore predefinito per tutte le interfacce attivate; vogliamo una soluzione più mirata. Neanche intervenire su **/etc/network/interfaces** (tramite le clausole **pre-up** e/o **up**) è consigliabile, perché la tempistica con cui i comandi vengono eseguiti va in conflitto con i tempi che il kernel richiede a fare il setup dell'interfaccia. 
 + 
 +Sembra che la soluzione migliore sia quella di creare un file **/etc/ppp/ipv6-up.d/accept_ra** (deve essere eseguibile) con questo contenuto: 
 + 
 +<code bash> 
 +#!/bin/sh 
 +# Accept Router Advertisements; autoconfigure using them. 
 +echo 2 > "/proc/sys/net/ipv6/conf/${PPP_IFACE}/accept_ra" 
 +</code> 
 + 
 +**NOTA**: invece di utilizzare il comando **echo** è possibile, in alternativa, usare il comando **sysctl** come in questo esempio: 
 + 
 +<code> 
 +sysctl -w net.ipv6.conf.ppp0.accept_ra=2 
 +</code> 
 + 
 +=== Riferimenti web === 
 + 
 +Vedere questo post: **[[http://strugglers.net/~andy/blog/2011/09/04/linux-ipv6-router-advertisements-and-forwarding/|Linux, IPv6, router advertisements and forwarding]]**, nel quale si legge: 
 + 
 +//By default, a Linux host on an IPv6 network will listen for and 
 +solicit router advertisements in order to choose an IPv6 address 
 +for itself and to set up its default route. This is referred to 
 +as stateless address autoconfiguration (SLAAC).//
  
-<php> +//In this context, what makes the difference between router or not 
-echo '<a rel="me" href="https://profiles.google.com/100662196154811835450">Profilo Google+</a>' "\n"; +are the settings of the /proc/sys/net/ipv6/conf/*/forwarding 
-</php>+files (or the net.ipv6.conf.*.forwarding sysctl). If you turn 
 +your host into a router by setting one of those to “1”, you may 
 +find that your host removes any IPv6 address and default route 
 +it learnt via SLAAC.//
doc/appunti/net/ipv6.1359732356.txt.gz · Last modified: 2013/02/01 16:25 by niccolo