Indirizzi di loopback IPv6 (equivalenti a 127.xxx)


16

Ho un ambiente di sviluppo impostato in cui ho un indirizzo di loopback separato per più siti Web.

Ad esempio, ho il seguente:

127.0.0.1 www.example.com
127.0.0.2 foo.example.com
127.0.0.3 bar.example.com
127.0.0.4 waffles.example.com

Vorrei una soluzione equivalente per IPv6.

So già che puoi usare :: 1 come indirizzo di loopback, ma :: 2, :: 3, ecc. Non sembrano funzionare.

Ci sono altri indirizzi di loopback in IPv6? C'è un modo per avere più indirizzi di loopback univoci?


1
Consiglierei :: ffff: 7f00: 1, :: ffff: 7f00: 2 e così via, ma senza dubbio qualcuno mi lancerebbe frutta marcia.
Womble

È possibile provare qualcosa nell'ambito dell'ambito multicast dell'interfaccia IPv6 locale. Questo tornerà nel tuo host ed è una vasta gamma. Che funzioni o meno per te dipenderà da cosa stai cercando di fare.
Ron Maupin,

Risposte:


13

Tecnicamente :: 2, :: 3 ecc. Fanno parte di :: 0.0.0.0/96, l'intervallo "indirizzo ipv6 compatibile ipv4". È obsoleto, ma probabilmente non vuoi usare quell'intervallo.

Per un ambiente di laboratorio, utilizzare l'indirizzamento locale univoco. Vai su https://www.ultratools.com/tools/rangeGenerator e genera un prefisso. Quindi puoi scegliere qualsiasi indirizzo desideri da quel prefisso e assegnarli all'interfaccia di loopback.


Perché no: 127.0.0.0/96?
Todd,

9

Il tuo indirizzo di loopback è :: 1/128. Notare la larghezza della sottorete che la limita a un solo host. cambia la maschera di sottorete in qualcosa di più ampio e controlla la tabella di routing. Oppure usa gli indirizzi link-local.


1
Questa risposta sarebbe migliore, se hai aggiunto, su uno o entrambi, di Windows o Linux, come associare ulteriori indirizzi IPv6 all'interfaccia di loopback. In IPv4 ottieni 127.0.0.1/8 e in IPv6 ottieni :: 1/128, quindi c'è un modo per aggiungerne altri per IPv6?
William,

2
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ sudo ip route add local ::/104 dev lo 
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::2
PING ::2(::2) 56 data bytes
64 bytes from ::2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from ::2: icmp_seq=2 ttl=64 time=0.128 ms
^C
--- ::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.083/0.105/0.128/0.024 ms
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::3
PING ::3(::3) 56 data bytes
64 bytes from ::3: icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from ::3: icmp_seq=2 ttl=64 time=0.141 ms
64 bytes from ::3: icmp_seq=3 ttl=64 time=0.142 ms

da Posso associare un blocco (grande) di indirizzi a un'interfaccia?

è l'unica cosa che ha funzionato per me. specifico per Linux, ovviamente.

nota bene : poiché questo potrebbe essere in conflitto con gli indirizzi 0.0.0.0/8 in futuro, ::127.0.0.0/104probabilmente sarebbe una scelta migliore.


Ciò sta effettivamente ampliando la tabella di routing nell'intervallo riservato alla compatibilità ipv4 come descritto da Ben Jencks.
Korkman,

questo non mi riguarda affatto. è a scopo di test; è sulla mia macchina locale; non riguarda nessuno tranne me stesso.
jcomeau_ictx,

1
@jcomeau_ictx Se sia o non vi riguarda, potrebbe riguardare chiunque voglia utilizzare la tua risposta, perché sarà poi effetto loro .
mtraceur,

potrebbe, ma probabilmente non fino all'assegnazione dell'intervallo ipv4 0/8. comunque, aggiusterò la mia risposta.
jcomeau_ictx

sarebbe stato male se avessi usato / 96, ma avrei usato / 104. comunque, ho modificato la risposta per usare :: 127.0.0.0/104, l'intervallo di loopback.
jcomeau_ictx,

2

Per questo consiglio di utilizzare gli indirizzi RFC 4193 . RFC 4193 consente di costruire il proprio / 48 per uso locale prendendo il valore byte fdseguito da 5 byte casuali . Ti è permesso mettere tutto ciò che ritieni opportuno dopo i primi 48 bit, quindi se volevi un / 64 puoi prendere fdseguito da 7 byte casuali come in questo esempio per i sistemi Linux:

ip -6 route add to local fd66:29e9:f422:8dfe::/64 dev lo

L'uso di RFC 4193 ha il vantaggio rispetto alle risposte precedenti di non violare alcuna RFC nel fare ciò e gli indirizzi possono essere usati senza un identificatore di interfaccia.

Ciascuno degli intervalli menzionati nelle risposte precedenti utilizza intervalli riservati per scopi diversi o indirizzi locali di collegamento che richiedono un identificatore di interfaccia ogni volta che vengono utilizzati.

Esiste una bozza scaduta che suggerisce che l'intervallo 1::/32viene allocato per indirizzi di loopback aggiuntivi come quello che stai chiedendo. Tuttavia, poiché la bozza è scaduta anni fa e non è mai stata effettuata una tale assegnazione, non è possibile utilizzarla 1::/32per questo.


Ora ho scritto un piccolo strumento da riga di comando per generare prefissi conformi a RFC 4193: v6tools.kasperd.dk/rfc4193
kasperd

0

L'uso dell'indirizzamento link-local sembra essere l'unica opzione valida. Ciò che la maggior parte dei suggerimenti qui ignora è il fatto che il prefisso IPv6 dichiara ambito , e non vorrei che il mio indirizzamento privato presumibilmente fosse di portata globale.

Quindi per Linux:

$ sudo ip -6 address add fe80::1/64 dev lo
$ sudo ip -6 address add fe80::2/64 dev lo
$ sudo ip -6 address add fe80::3/64 dev lo

E specificare l'interfaccia quando si fa riferimento a tali indirizzi. Test con netcat:

$ nc -l -p 10001 fe80::1%lo
$ nc fe80::1%lo 10001

Verifica dell'ambito corretto:

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 fe80::1/64 scope link 
       valid_lft forever preferred_lft forever

Tuttavia non sembra molto elegante dover aggiungere ogni singolo IP per poterlo associare. Con 127.0.0.0/8, puoi associare qualsiasi indirizzo senza prima assegnarli.


No, ULA è un modo valido per eseguire l'indirizzamento locale del sito. Non verrà instradato per impostazione predefinita su Internet. Puoi comunque instradarlo localmente. Ogni sottorete di un sito può avere un prefisso privato ragionevolmente unico a livello globale , indipendente dall'ISP.
John Mahowald,

E il sito locale NON è locale host. Questo è il mio punto :-)
Korkman,

0

Esiste un propors RFC chiamato A Larger Loopback Prefix for IPv6 , che propone di utilizzare 1::/32come rete localhost. Tuttavia, la proposta non è stata approvata ed è scaduta già nel 2013.


Questo è già stato menzionato nella risposta che ho scritto l'anno scorso proprio su questa domanda.
Kasperd,

@kaspered Oh sì hai ragione, scusa non l'ho notato poiché la risposta include in effetti due risposte e inizia con l'altra.
F.Raab,

Non ho davvero considerato la bozza scaduta come una risposta perché non è mai diventata uno standard. L'ho notato sotto la mia risposta perché sono rilevanti informazioni di base e forniscono un contesto su quale tentativo è stato di standardizzare su un intervallo per quel particolare scopo.
Kasperd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.