Pubblicità indirizzo IPv6 statico e autoconfig IPv6 in Debian / Ubuntu

Ho una networking che commercializza indirizzi IPv6 tramite autoconfig IPv6. Per consentire ricerche DNS e per avere indirizzi IP eleganti, possiamo impostare indirizzi IPv6 "statici" tramite / etc / network / interfaces:

auto eth0 iface eth0 inet dhcp iface eth0 inet6 static address a:b:c:d:e::f netmask 64 

Ogni volta che ci connettiamo tramite IPv6 Linux utilizza l'indirizzo IPv6 autoconfig:

  • Il mio server VPS è sicuro? Passi necessari per renderlo sicuro, se no?
  • Mysql non inizia mysqld.sock manca
  • Quale * light * ubuntu da utilizzare come server centrale git?
  • Risolvere linux hostname nelle windows
  • Errore MySQL: (2003, "Imansible connettersi al server MySQL su '2001: db8: 81: 2c :: 2' (-9)")
  • È ragionevole mettere tutte le printingnti in un'altra substring?
  •   a:b:c:d:21d:60ff:fe4a:479 

    e non l'indirizzo IPv6 statico:

      a:b:c:d:e::f 

    Un server dall'altro lato vede solo l'indirizzo autoconfig.

    C'è un modo per forzare linux (Debian / Ubuntu) per utilizzare l'indirizzo statico per i pacchetti in output? Ciò è particolarmente interessante per le impostazioni DNS e firewall inverse.

    Non voglio disabilitare l'autoconfig IPv6 poiché non ho il controllo sulle impostazioni che il router pubblicizza.

  • Linux: quanti dischi I / O ci vogliono per leggere un file? Come minimizzarlo?
  • "Imansible impostare gruppo di processi di terminali" durante la session su un altro utente come shell di login
  • Plugin Generico Nagios per verificare se un process / servizio specifico è in esecuzione?
  • Come posso escludere una cartella durante l'esecuzione di operazioni di file, cioè cp, mv, rm e chown ecc. In Linux
  • Che cosa dopo dopo Ubuntu? Arch Linux / FreeBSD / Gentoo
  • Come installare grub su più dischi?
  • One Solution collect form web for “Pubblicità indirizzo IPv6 statico e autoconfig IPv6 in Debian / Ubuntu”

    Naturalmente, il modo più semplice per impedire agli indirizzi autoconf di uscire è impedire che il kernel li crei facendo qualcosa del genere:

     echo 0 >/proc/sys/net/ipv6/conf/eth0/autoconf 

    Notare come questo non richiede di riconfigurare il router in modo che smetta di emettere annunci per il prefisso.

    NOTA nei commenti, si parla di /etc/gai.conf , ma questo non è applicabile. Questo è un file di configuration di glibc, non il kernel, e influenza la selezione dell'indirizzo di destinazione, non la selezione dell'indirizzo di origine.

    Se vuoi avere gli indirizzi autoconf presenti ma non vuoi che venga usato, quindi leggi …

    Per le comunicazioni tra gli host sulla stessa networking

    Non ho trovato un buon modo per forzare la selezione dell'indirizzo per preferire l'indirizzo statico sull'autoconf. Guardando tutte le regole di RFC 3484 nessuno di loro è stato veramente utile.

    È ansible provare a cambiare il path / 64 nella tabella di routing per la substring collegata in modo che abbia un attributo "src", ma viene generato automaticamente dal kernel quando uno degli indirizzi della substring viene aggiunto all'interface e sono stato non è riuscito a modificarlo dopo il fatto.

    Per comunicare con gli host sul resto di Internet

    Ci sono diversi modi per influenzare la selezione degli indirizzi per le connessioni in output. Il più ovvio è usare l'attributo src su routes. Per esempio:

     ip route add ::/0 via <gateway> src <desired-source-IP-address> 

    Ma forse il path predefinito viene da un messaggio di pubblicità del router e viene automaticamente inserito dal kernel. In tal caso è imansible attribuire un attributo "src" al path. Ecco un altro metodo basato sulla configuration delle etichette di indirizzo.

    Per impostazione predefinita, in Linux, la tabella di etichetta dell'indirizzo del kernel è simile a questa:

     prefix ::1/128 label 0 prefix ::/96 label 3 prefix ::ffff:0.0.0.0/96 label 4 prefix 2001::/32 label 6 prefix 2001:10::/28 label 7 prefix 2002::/16 label 2 prefix fc00::/7 label 5 prefix ::/0 label 1 

    L'idea è che quando si avvia un pacchetto in un indirizzo di destinazione con l'etichetta x , il kernel preferisce utilizzare un indirizzo di origine con la stessa etichetta x . Ad esempio, se si invia un pacchetto ad un host con un indirizzo 6to4 (che è un indirizzo nel 2002 :: / 16), l'etichetta per questo è 2 e il kernel preferisce select un indirizzo sorgente da 6 a 4 per il pacchetto in output , se c'è uno disponibile.

    Le destinazioni generali IPv6 ricevono l'etichetta 1 (:: / 0, che corrisponde a tutto). Ecco cosa vuoi fare:

    • Sovrascrivere l'assegnazione di etichette per la substring locale in modo che gli indirizzi sulla substring locale ottengano un'etichetta "marziana" (un'etichetta che non viene utilizzata da altro). Questa regola corrisponderà a tutta la substring cosicché sarà / 64.
    • Ripristina l'assegnazione di etichetta per l'indirizzo statico desiderato per riportrlo indietro a 1 (cioè la stessa etichetta del resto degli indirizzi Internet). Questa regola corrisponderà solo all'indirizzo desiderato in modo che sarà / 128.

    In questo modo, tutti gli indirizzi autoconf sulla substring locale avranno un'etichetta marziana che non corrisponderà all'etichetta di qualsiasi altra cosa su Internet, quindi non saranno preferiti, mentre l'etichetta per l'indirizzo di origine desiderato sarà 1, in modo che corrisponderà all'indirizzo di destinazione e viene scelto.

    Se il prefisso è 2001: db8 :: / 64 e l'indirizzo statico scelto è 2001: db8 :: aaaa / 128 allora:

     ip addrlabel add prefix 2001:db8::/64 label 99 ip addrlabel add prefix 2001:db8::aaaa/128 label 1 

    Potresti aggiungere questi due comandi come comandi in /etc/network/interfaces modo che venissero eseguiti each volta che arriva l'interface.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.