Wie werden lokale von öffentlichen IP-Adressen getrennt?


1

Woher wissen Tools wie Ping oder andere Tools, die das TCP / IP-Protokoll verwenden, dass beispielsweise 192.168.1.1 oder 10.0.0.1 eine lokale IP-Adresse ist, während 8.8.8.8 oder 74.142.23.95 öffentlich sind? sind 192.168.xx und 10.0.xx für die lokale Verwendung fest codiert?


5
Sie wissen es nicht und es ist ihnen egal. Haben Sie ein bestimmtes Problem?
BatchyX

@ BatchyX Ich versuche nur zu verstehen, wie die Dinge funktionieren. Und einige Programme müssen sich irgendwo darum kümmern, ob die Adresse Teil des LAN oder WAN ist.
Totokaka

Warum sollten sie sich interessieren?
BatchyX

Antworten:


9

Nun, sie sind von RFC 1918 für den Einsatz in privaten Netzwerken reserviert .

Aber das macht eigentlich nicht viel aus. Sie können einen Block "öffentlicher" IP-Adressen von RIPE oder einem anderen Anbieter abrufen und für Ihr privates Netzwerk verwenden, und alles funktioniert weiterhin. Die Reservierung ist nur aus politischen Gründen erforderlich, damit Administratoren problemlos ihre eigenen privaten Netzwerke aufbauen können.

Tools wie ist ping es egal, ob eine Adresse "privat" oder "lokal" oder "öffentlich" ist. Sie senden einfach ein Paket an die angegebene Adresse, und Ihr Betriebssystem überprüft die Routing-Tabelle , um zu entscheiden, wohin es als Nächstes gesendet werden soll.

Wenn Sie beispielsweise eine Ethernet-Karte unter Windows mit einer IP-Adresse 10.2.3.4/16(im Netzmaskenformat:) 255.255.0.0und einem Gateway konfigurieren 10.2.0.1, werden der Routingtabelle die folgenden Einträge hinzugefügt:

  • 10.2.3.4/32(Netzmaske 255.255.255.255) zur SchnittstelleLoopback

    (Ihre eigenen Adressen werden immer über die Loopback-Schnittstelle weitergeleitet, sie gehen nie in das Netzwerk.)

  • 10.2.0.0/16(Netzmaske 255.255.0.0) zur SchnittstelleLocal Area Connection

    (Adressen in Ihrem eigenen Subnetz sind per Definition lokal.)

  • 0.0.0.0/0(Netzmaske 0.0.0.0) zum Gateway10.2.0.1

    (Alles andere ist nicht lokal.)

Mit anderen Worten, Sie haben dem Betriebssystem mitgeteilt, dass alle Adressen innerhalb des 10.2.0.0/16Bereichs lokal sind, und das Betriebssystem kümmert sich um alles.


So zeigen Sie die Routing-Tabelle an:

  • unter Linux ip route(IPv4) und ip -6 route(IPv6)
  • unter Windows route print(IPv4 unter ≤XP, beide v4 / v6 unter ≥Vista)
  • unter Windows XP netsh interface ipv6 show route(IPv6)
  • unter Windows, Linux, BSD und anderen Unix-ähnlichen Betriebssystemen netstat -r -n(IPv4)
  • unter Linux und einigen Unix-ähnlichen netstat -r -n -6Betriebssystemen (IPv6)

Das Bearbeiten der Routing-Tabelle kann mit denselben Tools erfolgen. Um beispielsweise alles 172.16.0.0/16als lokal zu markieren , können Sie es ip route add 172.16.0.0/16 dev eth0unter Linux verwenden.


1
Aha, das erklärt viel. Ich werde die Antwort morgen annehmen, wenn keine bessere Antwort eingegangen ist. Danke!
Totokaka

Es kann erwähnenswert sein, dass Sie die Routing-Tabelle auch manuell bearbeiten können. Es wird nicht oft benötigt, kann aber manchmal sehr nützlich sein.
ein Lebenslauf vom

Was können Sie aus dem Ändern der Routing-Tabelle herausholen?
Totokaka

@totokaka: Auf Hosts ist es nicht so nützlich wie auf Routern (oder auf PCs, die als Router arbeiten), aber es kann dennoch nützlich sein - zum Beispiel, wenn Sie über mehrere Internetverbindungen verfügen oder mit einem VPN verbunden sind Teilen Sie dem Betriebssystem mit, dass Sie nur über das VPN auf einige Unternehmensserver zugreifen möchten, aber nicht auf alles andere - anstatt auf Alles oder Nichts.
Grawity

0

Öffentliche und private IP-Adressen werden in RFC definiert. Dies sind private IP-Adressen:

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

Auch diese IP-Adressen sind Loopback:

127.0.0.0/8

Andere sind öffentlich.

Die meisten Tools müssen keine öffentlichen oder privaten IP-Adressen kennen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.