Cosa rende un indirizzo IP privato non instradabile?


21

Comprendo che indirizzi privati ​​come 10.0.0.0/8, 172.16.0.0/12e 192.168.0.0/16non sono instradabili. Tuttavia, cosa impedisce esattamente a questi indirizzi di essere instradabili? Gli ISP implementano ACL che impediscono il routing di queste reti o è qualcosa di più elevato?

Inoltre, è IANA che ha creato questo disegno?


C'è una domanda implicita di "È GARANTITO che non verranno indirizzati pubblicamente, e qualcuno sta ancora indirizzando gli errori che agiscono pubblicamente?"?
Rackandboneman,

3
Per quanto riguarda la tua ultima domanda: l' IETF li ha definiti per IANA da escludere dallo spazio di indirizzi pubblico. RFC1918 per IPv4 e RFC4193 per IPv6
Lenniey

3
Naturalmente sono instradabili. I router accettano un messaggio dal tuo indirizzo pubblico esterno e lo "indirizzano" a un indirizzo privato interno. Ti consiglio di cercare le basi della traduzione degli indirizzi di rete.
Lakey,

2
Lakey, non sono instradabili sul web pubblico. Ecco perché Nat è necessario e viene utilizzato per conservare gli indirizzi IP. Sono in una classe Cisco e il mio professore non ha potuto rispondere a questa domanda, ecco perché la sto pubblicando qui.
QuantumRad

1
Inoltre, avrei dovuto chiarire che gli indirizzi privati ​​sono instradabili in una rete privata ma non in una rete pubblica.
QuantumRad

Risposte:


39

Gli indirizzi IP privati sono instradabili, sebbene non vengano instradati pubblicamente . Fondamentalmente, un router instraderà un indirizzo privato alla LAN privata / interna, piuttosto che a Internet.

Per espandere la mia risposta: un router può instradare un indirizzo privato sul lato pubblico, tramite il suo gateway predefinito. Tuttavia, il pacchetto verrà "perso" durante il trasporto a causa della caduta di altri router o del TTL del pacchetto che raggiunge 0.

Ad esempio, dai un'occhiata a questo (parzialmente offuscato) traceroute -I -n 192.168.200.1:

[root@myhost ~]# traceroute -I -n 192.168.200.1
traceroute to 192.168.200.1 (192.168.200.1), 30 hops max, 60 byte packets
 1  x.x.x.x  0.851 ms  0.841 ms  0.818 ms
 2  6x.xx.xx.xx  0.791 ms  0.791 ms  0.849 ms
 3  15x.xx.xx.xx  1.350 ms  1.347 ms  1.373 ms
 4  15x.x.xx.xx  1.446 ms  1.435 ms  1.428 ms
 5  151.6.68.20  2.272 ms  2.266 ms  2.251 ms
 6  151.6.0.91  8.818 ms  8.256 ms  8.326 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
...
...
29  * * *
30  * * *

Come puoi vedere, il pacchetto viene instradato a Internet pubblico tramite il gateway predefinito della macchina. Tuttavia, viene lasciato cadere durante il transito e non raggiunge mai una destinazione corretta.

Dopotutto, gli IP / le classi private sono (per definizione) sovrapposti tra i clienti, quindi su quale delle migliaia di reti 192.168.200.x / 24 deve essere instradato questo pacchetto?

Una nota a margine interessante: i provider di servizi Internet utilizzano spesso indirizzi privati ​​per il loro routing interno. Se, ad esempio, un privato 192.168.200.x / 24 classi viene utilizzato per il routing interno, il primo router / macchina con IP 192.168.200.1 si riceverà ma cadere il pacchetto, perché era non richiesti. L'ICMP rappresenta un'eccezione interessante, in quanto router / macchine generalmente rispondono a PING non richiesti. Ciò significa che a volte è possibile utilizzare scansioni di indirizzi privati ​​per mappare la propria rete privata ISP.


2
Quindi, fondamentalmente, se l'indirizzo IP inizia con 10, 172.16-31 o 192.168, il router dovrebbe essere configurato per inviarli solo attraverso la rete LAN interna, piuttosto che verso Internet esterno (in un'azienda, generalmente attraverso l'esterno gateway). Puoi leggere su queste 'reti private' qui: en.wikipedia.org/wiki/Private_network
Bruno

3
In realtà non è raro instradare indirizzi RFC1918 privati ​​(192.168, 172.16, 10) ogni volta che si crea una rete privata indirizzata.
user253751

3
@Bruno non necessariamente. Una route può instradare un indirizzo privato sul lato pubblico al suo gateway predefinito, ma altri router elimineranno finalmente i pacchetti o li instraderanno in un ciclo (e il pacchetto verrà scartato quando il suo TTL raggiunge 0).
shodanshok,

I router principali dell'ISP hanno persino un gateway predefinito? Cosa sarebbe?
Kubanczyk,

Generalmente si. Dopo tutto, un ISP deve instradare i pacchetti destinati ad altri ISP ...
shodanshok,

9

Di solito, gli indirizzi IP privati ​​vengono filtrati dall'ISP. Il router di accesso dovrebbe anche essere configurato per non farli perdere.

Gli indirizzi IP privati ​​non possono essere utilizzati su Internet perché chiunque potrebbe usarli . Probabilmente ci sono molti milioni di dispositivi che usano 192.168.1.1 in privato - quale è un router Internet che dovrebbe inviare il pacchetto?

Gli indirizzi Zeroconf (169.254.0.0/16) non sono effettivamente instradabili. Questi possono essere utilizzati ovunque in modo ad hoc, ma non possono accedere a Internet o qualsiasi sottorete tranne quella locale. Non possono essere instradati perché possono essere validi solo all'interno del dominio di trasmissione in cui ciascun dispositivo può selezionare un indirizzo inutilizzato da solo. Per definizione, zeroconf non ha istanze di gestione come un server DHCP.


6

Tuttavia, cosa impedisce esattamente a questi indirizzi di essere instradabili?

Standard accettati che vengono applicati dalle entità che comunicano. Questi sono applicati in software, hardware e configurazioni.

Gli ISP implementano ACL che impediscono il routing di queste reti o è qualcosa di più elevato?

Possono, ma ciò che viene realmente fermato è semplicemente una traduzione non valida che non segue gli standard.

Se sei come la maggior parte degli utenti domestici, ti viene assegnato un indirizzo IP come indirizzo IP pubblico. Affinché il traffico proveniente da tutti i dispositivi collegati possa comunicare, il router esegue la traduzione di quegli indirizzi IP interni utilizzando NAT (traduzione dell'indirizzo di rete) o PAT (traduzione dell'indirizzo della porta).

Fondamentalmente, il tuo router ricorda quali indirizzi IP interni nella tua LAN (rete locale) hanno avviato una sessione che si estende al di fuori della tua LAN, attraverso il router, e fuori dall'interfaccia WAN (Wide Area Network). Quando i dati escono dal router, contengono quel singolo indirizzo IP assegnato all'utente come IP di origine. Quando viene inserito, il pacchetto contiene lo stesso indirizzo dell'IP di destinazione. Il router decide quindi da dove viene diretto.

All'esterno, hai un solo indirizzo IP che è in realtà l'IP del router. Il router è in grado di tenere traccia di tali sessioni e determinare quale traffico appartiene a ciascun indirizzo IP interno sulla propria LAN e indirizzare tale traffico di conseguenza. È un processo di gestione complesso ma l'idea è in realtà abbastanza semplice una volta capito che tutto viene tradotto su ciascun router.

Inoltre, la maggior parte dei router domestici ha porte di commutazione, per cui il traffico viene consegnato tramite indirizzo MAC, non indirizzo IP. L'indirizzo MAC di origine nel pacchetto rimane lo stesso fino a quando non colpisce un router. Il router elimina l'indirizzo MAC di origine e inserisce l'indirizzo MAC della propria interfaccia WAN.

Inoltre, è IANA che ha creato questo disegno?

Questi standard non sono stati originariamente progettati da IANA. Oggi, sebbene prendano l'iniziativa nel fissare standard, certamente non li applicano attraverso alcun mezzo di legge. Sono standard che vengono applicati per consenso. Cerca RFC 791.

Hanno "autorità" nella misura in cui tutti sono disposti ad aderire a loro. È completamente possibile sfidare questi standard, ma alla fine ti imbatterai in un ISP da qualche parte lungo il percorso che ti chiederà di aderire o che lasceranno cadere il tuo traffico.

Spero che aiuti..


2
Penso che ogni parola di questo colpisca l'unghia sulla testa, come pertinente alla domanda specifica dell'OP. Le altre risposte sono effettivamente corrette, ma non sono sicuro che affrontino la confusione specifica dell'OP nel modo più diretto possibile. Il punto chiave è: la convenzione e il fatto che molte persone vogliono rispettarlo .
Corse di leggerezza con Monica

1
@LightnessRacesinOrbit: Questo è sostanzialmente coperto dalla prima parola non quotata in questa risposta, che non sarebbe strettamente necessaria ... La parola sottolinea il punto che fai. Tuttavia, sono d'accordo che il tuo testo in corsivo migliora il punto.
TOOGAM,

2
@TOOGAM: Sì, lo sto solo rinforzando. Come ho detto, penso che questa risposta sia perfetta.
Corse di leggerezza con Monica

1

A titolo di chiarimento dalle altre risposte, gli intervalli di indirizzi IP privati che si stanno utilizzando localmente non indirizzano a Internet perché hanno le loro voci esplicite nella tabella di routing. Ecco la mia tabella dei percorsi dal desktop di casa, ad esempio:

$ ip route
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.104 metric 1024 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-90a372f4b373 proto kernel scope link src 172.18.0.1 linkdown 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.104 
192.168.1.1 dev enp5s0 proto dhcp scope link src 192.168.1.104 metric 1024

Nota il 172.17.0.0/16e 172.18.0.0/16. I pacchetti di queste reti andranno direttamente ai miei docker, senza mai lasciare il mio computer, perché hanno una voce specifica nella mia tabella di instradamento. La 192.168.1.0/24voce dice esplicitamente che il traffico verso quella rete uscirà enp5s0dall'interfaccia. La tabella di instradamento del mio router avrà una voce simile che invierà tutto il traffico per quella rete privata dall'interfaccia a cui è connesso il mio desktop.

Sono solo i pacchetti per le reti che non sono esplicitamente nella tabella che andranno alla route predefinita. È possibile contrassegnare esplicitamente una rete come irraggiungibile tramite:

$ ip route add unreachable 10.0.0.0/8

Questo cambia la mia tabella di percorso in:

$ ip route
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.104 metric 1024 
unreachable 10.0.0.0/8 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-90a372f4b373 proto kernel scope link src 172.18.0.1 linkdown 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.104 
192.168.1.1 dev enp5s0 proto dhcp scope link src 192.168.1.104 metric 1024

Ora, il mio desktop non proverà nemmeno a chiedere al gateway predefinito gli indirizzi in quell'intervallo. Le ricerche per quell'indirizzo restituiscono immediatamente "Nessun percorso verso l'host".

$ traceroute 10.0.0.1
traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 60 byte packets
connect: No route to host

I pacchetti per reti non raggiungibili che non sono esplicitamente contrassegnati come irraggiungibili nella tabella delle rotte continueranno a essere inoltrati tramite le rotte predefinite, fino a quando il pacchetto non raggiunge un router che sa esplicitamente che la rete non è raggiungibile o la TTL scade.

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.