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

21

Ich verstehe , dass private Adressen wie 10.0.0.0/8, 172.16.0.0/12und 192.168.0.0/16sind nicht geroutet. Was genau verhindert jedoch, dass diese Adressen weitergeleitet werden können? Implementieren ISPs ACLs, die das Routing dieser Netzwerke verhindern, oder liegt sie höher?

Ist es auch IANA, die dieses Design geschaffen hat?

QuantumRads
quelle
Gibt es eine implizite Frage: "Ist GARANTIERT, dass sie nicht öffentlich weitergeleitet werden, und leitet noch jemand die öffentlich irrtümlich handelnden Personen weiter?"?
Rackandboneman
3
Was Ihre letzte Frage betrifft : Die IETF hat sie definiert, damit IANA aus dem öffentlichen Adressraum ausgeschlossen wird. RFC1918 für IPv4 und RFC4193 für IPv6
Lenniey
3
Natürlich sind sie routingfähig. Router nehmen eine Nachricht von Ihrer öffentlichen externen Adresse entgegen und "leiten" sie an eine interne private Adresse weiter. Empfehlen Sie, dass Sie die Grundlagen der Netzwerkadressübersetzung nachschlagen.
Lakey
2
Lakey, sie sind im öffentlichen Web nicht routingfähig. Daher ist Nat erforderlich und wird zum Speichern von IP-Adressen verwendet. Ich bin in einer Cisco-Klasse und mein Professor konnte diese Frage nicht beantworten. Deshalb poste ich sie hier.
QuantumRads
1
Außerdem hätte ich klarstellen sollen, dass private Adressen in einem privaten Netzwerk aber nicht in einem öffentlichen Netzwerk routingfähig sind.
QuantumRads

Antworten:

39

Private IP-Adressen können weitergeleitet werden , obwohl sie nicht öffentlich weitergeleitet werden. Grundsätzlich leitet ein Router eine private Adresse an ein privates / internes 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 die TTL des Pakets 0 erreicht.

Sehen Sie sich zum Beispiel Folgendes an (teilweise verschleiert) 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  * * *

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

Immerhin überlappen sich private IPs / Klassen (per Definition) zwischen den Kunden. Auf welchem ​​der Tausenden 192.168.200.x / 24-Netzwerke sollte dieses Paket geroutet werden?

Eine interessante Randnotiz: Internetprovider verwenden häufig private Adressen für ihre interne Weiterleitung. Wenn zum Beispiel eine private 192.168.200.x / 24-Klasse für das interne Routing verwendet wird, empfängt der erste Router / Computer mit der IP-Adresse 192.168.200.1 das Paket, verwirft es jedoch, weil es nicht angefordert wurde. ICMP sind eine interessante Ausnahme, da Router / Computer im Allgemeinen auf unerwünschte PINGs antworten. Dies bedeutet, dass Sie manchmal private Adressenscans verwenden können, um Ihr privates ISP-Netzwerk zuzuordnen.

Shodanshok
quelle
2
Wenn die IP-Adresse also mit 10, 172.16-31 oder 192.168 beginnt, sollte der Router so konfiguriert werden, dass sie nur über das interne LAN-Netzwerk und nicht über das externe Internet (in einem Unternehmen im Allgemeinen über das externe Netzwerk) gesendet werden Tor). Sie können diese 'privaten Netzwerke' hier nachlesen: en.wikipedia.org/wiki/Private_network
Bruno
3
Es ist eigentlich nicht ungewöhnlich, private RFC1918-Adressen (192.168, 172.16, 10) zu routen, wenn Sie ein geroutetes privates Netzwerk erstellen.
user253751
3
@Bruno nicht unbedingt. Eine Route kann eine private Adresse auf der öffentlichen Seite an ihr Standard-Gateway weiterleiten, aber andere Router verwerfen die Pakete schließlich oder leiten sie in einer Schleife weiter (und das Paket wird verworfen, wenn seine TTL 0 erreicht).
Shodanshok
Verfügen die Hauptrouter des Internetdienstanbieters überhaupt über ein Standardgateway? Was würde es sein?
Kubanczyk
Im Allgemeinen ja. Schließlich muss ein ISP Pakete weiterleiten, die für andere ISPs bestimmt sind ...
shodanshok
9

In der Regel werden private IP-Adressen vom Internetdienstanbieter gefiltert. Ihr Zugangsrouter sollte auch so konfiguriert sein, dass keine Leckagen auftreten.

Private IP-Adressen können im Internet nicht verwendet werden, da sie möglicherweise von anderen Personen verwendet werden . Es gibt wahrscheinlich viele Millionen Geräte, die 192.168.1.1 privat verwenden - welches ist ein Internet-Router, der das Paket senden soll?

Zeroconf- Adressen (169.254.0.0/16) können derzeit nicht weitergeleitet werden. Diese können überall in einer Ad-hoc-Weise verwendet werden, aber sie können 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 sind, in der jedes Gerät eine nicht verwendete Adresse für sich auswählen kann. Per Definition hat zeroconf keine Verwaltungsinstanz wie einen DHCP-Server.

Zac67
quelle
6

Was genau verhindert jedoch, dass diese Adressen weitergeleitet werden können?

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 sie 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, haben Sie eine IP-Adresse als öffentliche IP-Adresse zugewiesen. Damit der Datenverkehr von allen angeschlossenen Geräten kommunizieren kann, übersetzt der Router diese internen IP-Adressen mithilfe von NAT (Network Address Translation) oder PAT (Port Address Translation).

Grundsätzlich merkt sich Ihr Router, welche internen IP-Adressen in Ihrem LAN (Local Area Network) eine Sitzung gestartet haben, die über den Router und über die WAN-Schnittstelle (Wide Area Network) außerhalb Ihres LANs erreichbar ist. Wenn Daten den Router verlassen, enthält er diese einzelne IP-Adresse, die Ihnen als Quell-IP zugewiesen wurde. Bei der Eingabe enthält das Paket die gleiche Adresse wie die Ziel-IP. Der Router entscheidet dann, wohin er von dort geleitet wird.

Nach außen haben Sie nur eine einzige IP-Adresse, die eigentlich die IP des Routers ist. Der Router kann diese Sitzungen nachverfolgen 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, sobald Sie verstehen, dass an 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 erfolgt. Die Quell-MAC-Adresse im Paket bleibt gleich, bis sie einen Router erreicht. Der Router entfernt die MAC-Quelladresse und fügt die MAC-Adresse der eigenen WAN-Schnittstelle ein.

Ist es auch IANA, die dieses Design geschaffen hat?

Diese Standards wurden ursprünglich nicht von IANA entwickelt. Heute setzen sie zwar Maßstäbe, setzen sie diese aber keineswegs durch. Sie sind Standards, die durch Konsens durchgesetzt werden. Suchen Sie in RFC 791.

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

Ich hoffe das hilft..

CipherBytes
quelle
2
Ich denke, jedes Wort trifft den Nagel auf den Kopf, was die spezifische Frage des OP betrifft. Die anderen Antworten sind sachlich korrekt, aber ich bin nicht sicher, ob sie die spezifische Verwirrung des OP so direkt wie möglich ansprechen. Der entscheidende Punkt ist: Konvention und die Tatsache, dass die meisten Menschen sich daran halten wollen .
Leichtigkeit Rennen mit Monica
1
@LightnessRacesinOrbit: Das wird im Grunde genommen durch das allererste nicht zitierte Wort in dieser Antwort abgedeckt, was nicht unbedingt notwendig wäre ... Das Wort betont den Punkt, den Sie ansprechen. Ich stimme jedoch zu, dass Ihr kursiver Text den Punkt besser macht.
TOOGAM
2
@TOOGAM: Ja, ich verstärke es nur. Wie gesagt, ich finde diese Antwort perfekt.
Leichtigkeit Rennen mit Monica
1

Zur Verdeutlichung der anderen Antworten werden private IP-Adressbereiche, die Sie lokal verwenden, nicht an das Internet weitergeleitet, da sie ihre eigenen expliziten Einträge in der Routingtabelle haben. Hier ist meine Routentabelle von meinem Desktop zu Hause aus, 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 die 172.17.0.0/16und 172.18.0.0/16. Pakete in diese Netzwerke gelangen direkt zu meinen Docker-Bridges, ohne meinen Computer zu verlassen, da sie einen bestimmten Eintrag in meiner Routentabelle haben. Der 192.168.1.0/24Eintrag besagt ausdrücklich, dass der Verkehr zu diesem Netzwerk die enp5s0Schnittstelle verlässt. 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.

Nur Pakete für Netzwerke, die nicht explizit in der Tabelle enthalten sind, werden an die Standardroute weitergeleitet. 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 versucht mein Desktop nicht einmal, das Standard-Gateway nach Adressen in diesem Bereich zu fragen. Bei Suchen nach dieser Adresse wird sofort "Keine Route zum Host" zurückgegeben.

$ 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 in der Routentabelle nicht explizit als nicht erreichbar markiert sind, werden nur über die Standardrouten weitergeleitet, bis das Paket entweder einen Router erreicht, der explizit weiß, dass das Netzwerk nicht erreichbar ist, oder die TTL abläuft.

Karl Bielefeldt
quelle