it-swarm.com.de

Was macht eine private IP-Adresse nicht routingfähig?

Ich verstehe, dass private Adressen wie 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16 sind nicht routingfähig. Was genau verhindert jedoch, dass diese Adressen routingfähig sind? Implementieren ISPs ACLs, die das Routing dieser Netzwerke verhindern, oder ist es etwas Höheres?

Ist es auch IANA, die dieses Design geschaffen hat?

21
QuantumRads

Private IP-Adressen sind routbar, obwohl sie nicht öffentlich geroutet werden. Grundsätzlich leitet ein Router eine private Adresse an das private/interne LAN und nicht an das Internet weiter.

Um meine Antwort zu erweitern: Ein Router kann eine private Adresse über sein Standard-Gateway an die öffentliche Seite weiterleiten. Das Paket geht jedoch während der Übertragung "verloren", weil andere Router es fallen lassen oder weil das Paket TTL 0 erreicht).

Schauen Sie sich zum Beispiel dieses (teilweise verschleierte) traceroute -I -n 192.168.200.1:

[[email protected] ~]# 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  * * *

Wie Sie sehen können, wird das Paket über das Standard-Gateway des Computers an das öffentliche Internet weitergeleitet. Es wird jedoch während des Transits fallen gelassen und erreicht nie ein geeignetes Ziel.

Schließlich überschneiden sich private IPs/Klassen (per Definition) zwischen Kunden. In welchem ​​der Tausenden von 192.168.200.x/24-Netzwerken sollte dieses Paket weitergeleitet werden?

Eine interessante Randnotiz: Internetprovider verwenden häufig private Adressen für ihr internes Routing. Wenn beispielsweise eine private Klasse 192.168.200.x/24 für das interne Routing verwendet wird, wird der erste Router/Computer mit der IP-Adresse 192.168.200.1 Empfangen Sie das Paket, aber lassen Sie es fallen, da es nicht angefordert wurde. ICMP sind eine interessante Ausnahme, da Router/Maschinen im Allgemeinen auf nicht angeforderte PINGs antworten. Dies bedeutet, dass Sie manchmal private Adressenscans verwenden können, um Ihr privates ISP-Netzwerk zuzuordnen.

39
shodanshok

Normalerweise werden private IP-Adressen vom ISP gefiltert. Ihr Zugriffsrouter sollte auch so konfiguriert sein, dass sie nicht auslaufen.

Private IP-Adressen können im Internet nicht verwendet werden, weil jeder könnte sie verwenden. Es gibt wahrscheinlich viele Millionen Geräte, die 192.168.1.1 privat verwenden - welches soll ein Internet-Router das Paket senden?

Zeroconf Adressen (169.254.0.0/16) sind eigentlich nicht routingfähig. Diese können überall ad-hoc verwendet werden, sie können jedoch nicht auf das Internet oder ein anderes Subnetz als das lokale zugreifen. Sie können nicht weitergeleitet werden, da sie nur innerhalb der Broadcast-Domäne gültig sein können, in der jedes Gerät eine nicht verwendete Adresse für sich auswählen kann. Per Definition hat zeroconf keine Verwaltungsinstanz wie ein DHCP-Server.

9
Zac67

Was genau verhindert jedoch, dass diese Adressen routingfähig sind?

Akzeptierte Standards, die von kommunizierenden Stellen durchgesetzt werden. Diese werden in Software, Hardware und Konfigurationen erzwungen.

Implementieren ISPs ACLs, die das Routing dieser Netzwerke verhindern, oder liegt es höher?

Sie können, aber was wirklich gestoppt wird, ist lediglich eine ungültige Übersetzung, die nicht den Standards entspricht.

Wenn Sie wie die meisten Heimanwender sind, wird Ihnen eine IP-Adresse als öffentliche IP-Adresse zugewiesen. Damit der Datenverkehr von allen angeschlossenen Geräten kommunizieren kann, führt der Router die Übersetzung dieser internen IP-Adressen mit NAT (Netzwerkadressübersetzung) oder PAT (Portadressübersetzung) durch.

Grundsätzlich merkt sich Ihr Router, welche internen IP-Adressen in Ihrem LAN (lokales Netzwerk) eine Sitzung außerhalb Ihres LAN über den Router und über die Schnittstelle WAN (Wide Area Network)) gestartet haben. Wenn Daten den Router verlassen, enthält sie die einzelne IP-Adresse, die Ihnen als Quell-IP zugewiesen wurde. Wenn sie eingegeben werden, enthält das Paket dieselbe Adresse wie die Ziel-IP. Der Router entscheidet dann, wohin sie von dort geleitet werden.

Nach außen haben Sie nur eine einzige IP-Adresse, die tatsächlich die IP des Routers ist. Der Router kann diese Sitzungen verfolgen und bestimmen, welcher Datenverkehr zu jeder internen IP-Adresse in seinem LAN gehört, und leitet diesen Datenverkehr entsprechend weiter. Es ist ein komplexer Verwaltungsprozess, aber die Idee ist eigentlich recht einfach, wenn Sie erst einmal verstanden haben, dass auf jedem Router alles übersetzt wird.

Darüber hinaus verfügen die meisten Heimrouter über Switching-Ports, wobei der Datenverkehr über die MAC-Adresse und nicht über die IP-Adresse übertragen wird. Die Quell-MAC-Adresse im Paket bleibt dieselbe, bis sie auf einen Router trifft. Der Router entfernt diese Quell-MAC-Adresse und fügt die MAC-Adresse seiner eigenen WAN Schnittstelle) ein.

Ist es auch IANA, die dieses Design erstellt hat?

Diese Standards wurden ursprünglich nicht von IANA entwickelt. Obwohl sie heute die Führung bei der Festlegung von Standards übernehmen, setzen sie diese heute sicherlich nicht durch Gesetze durch. Sie sind Standards, die durch Konsens durchgesetzt werden. Suchen Sie nach RFC 791.

Sie haben "Autorität" in dem Maße, wie jeder bereit ist, sich an sie zu halten. Es ist durchaus möglich, sich diesen Standards zu widersetzen, aber Sie werden irgendwann irgendwo auf dem Weg auf einen ISP stoßen, der verlangt, dass Sie sich daran halten, oder der Ihren Datenverkehr verringert.

Ich hoffe das hilft..

6
CipherBytes

Zur Verdeutlichung aus den anderen Antworten werden private IP-Adressbereiche die Sie lokal verwenden nicht zum Internet weitergeleitet, da sie ihre eigenen expliziten Einträge in der Routing-Tabelle haben. Hier ist meine Routentabelle von meinem Desktop zu Hause, zum Beispiel:

$ 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

Beachten Sie das 172.17.0.0/16 und 172.18.0.0/16. Pakete zu diesen Netzwerken werden direkt an meine Docker-Bridges gesendet, ohne meinen Computer jemals zu verlassen, da sie einen bestimmten Eintrag in meiner Routentabelle haben. Das 192.168.1.0/24 Eintrag besagt ausdrücklich, dass der Verkehr zu diesem Netzwerk aus dem enp5s0 Schnittstelle. Die Routentabelle meines Routers enthält einen ähnlichen Eintrag, der den gesamten Datenverkehr für dieses private Netzwerk über die Schnittstelle sendet, mit der mein Desktop verbunden ist.

Es sind nur Pakete für Netzwerke, die nicht explizit in der Tabelle enthalten sind, die zur Standardroute gehen. Sie können ein Netzwerk explizit als nicht erreichbar markieren, indem Sie:

$ ip route add unreachable 10.0.0.0/8

Dies ändert meine Routentabelle 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

Jetzt wird mein Desktop nicht einmal versuchen, das Standard-Gateway nach Adressen in diesem Bereich zu fragen. Suchvorgänge für diese Adresse geben sofort "Keine Route zum Host" zurück.

$ 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

Pakete für nicht erreichbare Netzwerke, die nicht explizit markiert als nicht erreichbar in der Routentabelle sind, werden nur über die Standardrouten weitergeleitet, bis das Paket entweder einen Router erreicht, der explizit weiß, dass das Netzwerk nicht erreichbar ist, oder das TTL läuft ab.

1
Karl Bielefeldt