Warum kann ich unter Linux nach dem Subnetz mit einer Maske von 255.255.255.240 nicht auf mein Netzwerk zugreifen?

434
user502336

OK, zuerst habe ich ein Dual-Boot-System. Linux Mint 18 (Sarah) Cinnamon und Windows 7 SP1. Gut, dass ich das gemacht habe, weil ich neu in Linux bin.

Bei der ersten Installation von Windows und Linux habe ich LAN1 als 192.168.1.1/255.255.255.0 eingerichtet. Ich hatte kein Problem, von beiden Betriebssystemen aus auf LAN1 oder das Internet zuzugreifen.

Vor kurzem habe ich mich für ein Subnetz entschieden. Ich habe LAN1 auf 192.168.64.80/255.255.255.240 geändert. Dies gab mir xxx80 als Gateway, 14 verwendbare IPs als xxx81-xxx94, was reichlich ist, und xxx95 als Broadcast. Ich habe dann den Router neu gestartet und die neuen IPs wurden über DHCP verbreitet. Das Windows-Netzwerk erhielt die DHCP-Daten und ich konnte problemlos auf LAN1 und das Internet zugreifen. Gleiches mit Linux versucht und kann nicht auf LAN1 oder das Internet zugreifen. Bei der Abfrage sowohl des Netzwerk-Applets auf dem Desktop als auch von ifconfig über das Terminal war klar, dass Linux die neuen DHCP-Daten wusste. Ich bin verwirrt, warum ich auf nichts zugreifen kann!

Kennt jemand die Besonderheiten des Linux-Netzwerks, sodass ich das reparieren kann, was offensichtlich repariert werden muss?

Danke im Voraus.

0
"_Das gab mir xxx80 als Gateway, _" Nein, das wäre falsch. Das ist die Netzwerkadresse. Sie können die Netzwerkadresse nicht für einen Host verwenden, z. B. ein Gateway. Ron Maupin vor 7 Jahren 1
Sicher ist dies einfach ein Terminologieproblem. Für mich ist das "Gateway" die IP, auf die man von einem PC im LAN auf den Web-Konfigurator zugreifen würde. Es ist immer die erste IP eines Subnetzes. user502336 vor 7 Jahren 0
@ user502336 das ist richtig, aber @ RonMaupins Kommentar steht. Die erste verwendbare Host-IP-Adresse auf 192.168.64.80/255.255.255.240 ist "192.168.64.81". Ähnlich wie die erste verwendbare Host-IP auf 192.168.1.0/255.255.255.0 "192.168.1.1" ist. quixotic vor 7 Jahren 3

3 Antworten auf die Frage

4
Ron Maupin

Ich denke, Ihr Problem ist, dass Sie versuchen, die Netzwerkadresse als Gateway-Adresse zu verwenden. Dies ist jedoch nicht möglich. Ein Gateway ist ein Host im Netzwerk und muss eine Hostadresse haben. Das Gateway ist der Host, zu dem alle anderen Hosts Datenverkehr für ein anderes Netzwerk senden, es ist jedoch immer noch ein Host im Netzwerk, und es muss eine Hostadresse verwendet werden. Die Netzwerkadresse ist nicht verwendbar und sollte in IPv4-Paketen nicht als Quell- oder Zieladresse angezeigt werden.

Für dein Beispiel 192.168.64.80/28:

Network = 192.168.64.80 First host = 192.168.64.81 Last host = 192.168.64.94 Broadcast = 192.168.64.95 

Sie müssen Ihre Gateway-Adresse aus einer der Host-Adressen auswählen. Einige Leute verwenden die erste Hostadresse als Standardadresse für das Gateway, und andere Leute verwenden die letzte Hostadresse. Manche Leute wählen einfach eine beliebige Hostadresse. Es spielt keine Rolle, da das Gateway ein Host im Netzwerk ist.

OK Ron, Wenn ich LAN1 falsch eingerichtet habe, warum hat Windows kein Problem, während Linux läuft? Ist Windows schlau genug, um mein Versagen irgendwie zu überwinden, Linux dagegen nicht? user502336 vor 7 Jahren 0
Ohne weitere Informationen ist es schwer zu sagen, aber ich habe Ihnen erklärt, wie Sie die IP-Adressierung verwenden müssen, um die Standards zu erfüllen. Ihr Gateway sollte es Ihnen nicht erlauben, eine seiner Schnittstellen auf die Netzwerkadresse festzulegen, sodass auf dem Gateway möglicherweise eine falsche Maske konfiguriert ist oder auf Ihrem DHCP-Server etwas falsch eingestellt ist. Sie haben keine Konfigurationen von Geräten bereitgestellt. Ron Maupin vor 7 Jahren 1
OK, diese Bedingungen sind direkt vom Router: user502336 vor 7 Jahren 0
Ich sehe, was Sie sagen, Sie haben den Router als konfiguriert, aber die eigentliche Routerkonfiguration wird in Ihrer Frage nicht angezeigt. Angenommen, Sie haben die Maske, wie Sie behaupten, und dass der Router Ihr Gateway ist, sollte der Router Ihnen nicht gestatten, die Netzwerkadresse als Adresse an der Schnittstelle festzulegen. Wenn ja, dann ist etwas furchtbar falsch. Eine Netzwerkadresse kann nicht für eine Hostadresse in einem Netzwerk verwendet werden. Ron Maupin vor 7 Jahren 1
OK, diese Bedingungen stammen direkt vom Router: Zuweisung der IP-Adresse: 192.168.64.80; Subnetzmaske: 255.255.255.240; DHCP-Einstellung der IP-Pool-Startadresse (optional): 192.168.64.81; Poolgröße: 14. Dann wird mein Switch, nicht der Router, so eingestellt, dass er den ersten im Pool empfängt. Unter Windows kann ich über 192.168.64.80 auf den Web-Konfigurator des Routers zugreifen. Brauchen Sie mehr oder reicht das aus, um meine Torheit zu sehen? (Ihre Website hat mich zeitlich begrenzt. Dies wollte ich oben sagen.) user502336 vor 7 Jahren 0
@ user502336 Die Konfiguration der Linux-Maschine zu sehen, würde sehr helfen. Die Ausgabe von "ifconfig -a" und / oder "route -n" wäre hilfreich. David Schwartz vor 7 Jahren 0
Anscheinend hat Ihr Router eine beschissene Software. Sie können die Netzwerkadresse einfach nicht als Adresse eines Hosts im Netzwerk verwenden. IPv4 funktioniert nicht auf diese Weise. Sie sollten Ihre Frage so bearbeiten, dass sie die Konfigurationen für Router, Windows-PCs und Linux-PCs enthält. Ron Maupin vor 7 Jahren 1
Wenn er dem Router die Adresse 192.68.64.80 zugewiesen hat, ist es ihm vielleicht gelungen, das Netzwerk "192.68.64.79 / 28" zu erstellen. quixotic vor 7 Jahren 0
@ David Schwartz: Das würde einen Neustart erfordern, wie ich sagte, ich bin auf einem Dual-Boot-System. Ich benutze jetzt die Windows-Partition, um mit Ihnen kommunizieren zu können. user502336 vor 7 Jahren 0
Danke, Ron! Ich werde sehen, was ich tun kann, um die Einrichtung des Routers zu reparieren, und ich melde mich dann bei Ihnen. In Wahrheit ist es schon eine Weile her, seit ich so etwas getan habe. Ich hatte vor kurzem einen Router, der 10 Jahre dauerte. Dies ist das Setup des neuen, und er hat eine ganz andere Schnittstelle als die alte. user502336 vor 7 Jahren 0
0
ziya

Zunächst stimme ich mit den anderen Antworten und Kommentaren überein, dass Sie die Netzwerkadresse in Ihrem Setup (die erste Adresse in Ihrem Subnetz) nicht verwenden sollten.

Aber während ich darüber nachdachte, stellte ich mir die Frage: Wozu dient die Netzwerkadresse? Ich weiß, warum wir die Sendung haben, und es ist für mich sinnvoll (zB verwendet DHCP sie), aber ich habe gerade die Regel akzeptiert, dass wir die Netzwerkadresse nicht für einen Host verwenden, ohne wirklich zu wissen, warum.

Etwas herumgrubend kam es zu einer SU-Frage, die es gut erklärt: Warum kann eine Netzwerkadresse keine gültige Hostadresse sein?

Ich habe ein wenig gelesen und verstanden, dass es historische Gründe dafür gibt. Meines Erachtens gibt es in heutigen modernen CIDR-Netzwerken keinen praktischen Grund, warum die Netzwerkadresse nicht als Hostadresse verwendet werden sollte, außer aufgrund der Historie von IPv4 gibt es immer noch einige Tools und alte Geräte, die die Netzwerkadresse als Broadcast betrachten das Netzwerk. Möglicherweise funktioniert Windows daher gut, wenn eine Netzwerkadresse als Host im Netzwerk definiert ist.

Ich habe auch versucht, die Netzwerkadresse auf meinem macOS zu pingen, und das funktionierte wie die Übertragung. Möglicherweise liegt es an der strengen RFC-Konformität der Netzwerkstacks auf bestimmten Betriebssystemen (und Ihr Router ist nicht Linux-basiert? Vielleicht?). In RFCs scheint die erste Adresse, abgesehen von Subnetz / 32 (das nur zwei Adressen hat und daher ideal für Punkt-zu-Punkt-Netzwerke ist, daher keine Übertragung usw. erforderlich ist), für die Darstellung des "Netzwerks" reserviert zu sein.

Wie bereits erwähnt, schlage ich vor, Ihre Einrichtung zu überprüfen. Ein Online-Netzwerkrechner sollte helfen. (Nach einem schnellen Googeln sah dieses Gerät am besten für ein Netzwerk-Setup aus: https://www.tunnelsup.com/subnet-calculator/ )

0
Nevin Williams

Cisco-Router verfügen über einen globalen Konfigurationsbefehl ip subnet-zero, der die Verwendung der Netzwerkadresse als Host ermöglicht. Dies wird jedoch nicht von allen IP-Implementierungen standardmäßig unterstützt, wie hier.

Anscheinend haben spätere Versionen von IOS jedoch das IP-Subnetz-Null standardmäßig aktiviert. Daher ist Ihr Router wahrscheinlich nicht aus dem Sinn, indem Sie ihn als solches konfigurieren lassen.

Ihre Linux-Box ist jedoch möglicherweise nicht für die Verwendung von Subnetz Null konfiguriert. Es kann eine sysctlEinstellung geben; kann es einige zusätzliche sein ifconfigoder routeFlags zu setzen Subnetz Null zu verwenden. Ich arbeite jedoch nicht mit Linux und kann daher nicht nachsehen, ob eine der gegoogelten Methoden für die Verwendung des Subnetz-Nullpunkts tatsächlich wie beabsichtigt funktioniert.

Von der Cisco-Website zur Konfiguration des Subnetz-Nullpunkts.

Ein Subnetting mit einer Subnetzadresse von 0 ist illegal und wird (wie in RFC 791 angegeben) wegen der Verwirrung, die zwischen einem Netzwerk und einem Subnetz mit denselben Adressen auftreten kann, dringend empfohlen. Wenn zum Beispiel das Netzwerk 131.108.0.0 als 255.255.255.0 vernetzt ist, wird das Subnetz 0 als 131.108.0.0 geschrieben. Dies ist identisch mit der Netzwerkadresse.

Sie können das Subnetz "0" und "1" (131.108.255.0) verwenden, auch wenn dies nicht empfohlen wird. Das Konfigurieren von Schnittstellen für das alls-1-Subnetz ist ausdrücklich zulässig. Wenn Sie jedoch den gesamten Subnetzspeicherplatz für Ihre IP-Adressen benötigen ... (verwenden Sie den Befehl in Fettdruck, oben)

"_Cisco-Router haben einen globalen Konfigurationsbefehl IP-Subnetz-Null, der die Verwendung der Netzwerkadresse als Host ermöglicht." Das ist _nicht_, was Subnetz-Null bedeutet. Ursprünglich konnten Sie kein Subnetz mit allen Nullen oder allen von den Klassennetzwerken definierten Einsen verwenden. Netzwerkklassen wurden seit 1933 durch die RFCs 1518 und 1519, in denen CIDR (_Classless_ Inter-Domain Routing) definiert war, nicht mehr unterstützt. Es hat nichts mit Hostadressen zu tun, nur Subnetzadressen, die alle Null oder alle Einsen sind. Alle Nullen oder alle Eins-Hostadressen sind noch keine gültigen Hostadressen. Ron Maupin vor 7 Jahren 0