Mögliche (Bit-) Muster einer Netzmaske


13

Mit einem gegebenen Präfix Yist es einfach, die entsprechende Netzmaske zu berechnen: Setze Ymal ein gesetztes Bit und fülle dann "nach rechts" mit Nullen auf, bis man insgesamt 32 Bits (IPv4) hat.

Beispiel:

Präfix 24, also Netzmaske 11111111 11111111 11111111 00000000oder 255.255.255.0.

Kann es eine Netzmaske mit einem anderen Bitmuster geben , wie z

  • 00000000 11111111 00000000 11111111( 0.255.0.255)
  • 00000000 11111111 11111111 11111111( 0.255.255.255)
  • 11111111 11111111 11111111 00000001( 255.255.255.1)

Die Angabe eines "Präfixes" würde in diesen Fällen offensichtlich nicht funktionieren.

(Ich bin mir ziemlich sicher, dass die Antwort "NEIN" lautet, aber ich schreibe einen Netzwerkcode, und dieser muss in allen möglichen Fällen funktionieren, damit ich zu 101% sicher sein kann.)

Antworten:


11

RFC950 besagt das

Da die Bits, die das Subnetz identifizieren, durch eine Bitmaske angegeben werden, müssen sie in der Adresse nicht benachbart sein. Wir empfehlen jedoch, dass die Subnetzbits zusammenhängend sind und sich als die höchstwertigen Bits der lokalen Adresse befinden.

Die meisten Geräte befolgen diese Empfehlung, um sie durchzusetzen. Ich habe es 2012 nur geschafft, nicht zusammenhängende Subnetzmasken in reinen Linux-Netzwerken zu verwenden. Die von mir getesteten Windows-, OSX-, Cisco- und HP-Geräte haben dies nicht zugelassen.


2
Ich glaube, dies wurde durch RFC1519 abgelöst , für das explizit eine zusammenhängende Maske erforderlich ist.
user1686

@grawity Könnte der Fall sein. Gefunden "Die einzige ausstehende Einschränkung ist, dass die Maske zusammenhängend bleiben muss." wenn es um CIDR geht, aber nicht genug gelesen, um den Kontext zu verstehen.
Filip Haglund

6

Wenn Sie Präfixe und Netzwerke verwenden, lautet die Antwort "Nein". Die Bits müssen zusammenhängend sein. Es gibt Fälle, in denen eine Wildcard-Maske (Inverse der Maske) verwendet werden kann, z. B. Cisco-ACLs, und dies können beliebige Bitmuster sein. Sie können beispielsweise den Datenverkehr aller ungeradzahligen Hosts in einem Netzwerk blockieren. Dies scheint immer noch gelehrt zu werden, aber ich habe es nicht sehr oft in der realen Welt gesehen (obwohl ich es gesehen habe).


4

Nein. Eine Netzmaske ist eine fortlaufende Reihe von Netzmasken.

(Die anderen sind "Platzhalter" -Muster.)


1
Das ist nicht wahr. Vor 30 Jahren gab es viele. Möglicherweise sind noch einige in Betrieb.
KARTE

2
Das bezweifle ich sehr. Keine moderne Routing-Hardware wird dies zulassen. Router aus den 80er Jahren werden zahlreiche Probleme mit der heutigen Funktionsweise von IP haben. (War schon da. Ich habe dir gesagt, dass du nicht das Subnetz mit allen Nullen verwendest - auch in den späten 90ern war das ein Problem.) Die einzigen zwei Geräte, die ich noch aus dieser Zeit habe , akzeptieren keine nicht zusammenhängende Netzmaske. (WTI PDUS, immer noch da, weil sie 10bT Ports haben. Nichts spricht mit ihnen, vor allem das Internet .)
Ricky Beam

3

Als TCP / IP zum ersten Mal herauskam und sich verbreitete, gab es tatsächlich viele Subnetze mit nicht zusammenhängenden Masken. Aber als die Adressen knapp wurden, war der Aufwand für den Rest des Netzes gering, um ein globales Routing dieser Präfixe zu ermöglichen, anstatt zu erzwingen, dass alles nur auf Präfixen basiert. war zu viel und das globale Netzwerk wurde geändert, um nur Präfixe zu unterstützen. Es kann tatsächlich noch Legacy-Netzwerke geben, die intern nicht zusammenhängende Masken verwenden (viele IGPs unterstützen dies immer noch). Wenn sich ein solches Netzwerk jedoch mit dem Internet verbindet, hat es ein einziges Präfix, das alle von ihnen abdeckt und in BGP ankündigt. Und natürlich unterstützte EGP (der Vorgänger von BGP) nur Classful-Adressierung.

Ich kenne mehrere Spieler mit originalen Klasse-A-Netzwerken, die aus dem einen oder anderen Grund intern nicht zusammenhängende Netzmasken verwendet haben. Ich weiß nur nicht, ob es einer von ihnen noch tut. Viele von ihnen verlassen nicht einmal mehr. Das ARPAnet hatte eine interne Netzmaske von 255.0.0.255 (IIRC).


2
UNSINN. Dies hat nichts mit CIDR, Klassen oder Aggregation zu tun. Eine Netzmaske war IMMER zusammenhängend.
Ricky Beam

6
Siehe beispielsweise RFC 950 . Seite 15 gibt ein Beispiel mit einer Netzmaske von 255.255.255.88.
Ross Presser

4
Ich denke, Seite 12 von RFC 1519 verletzt Ihren Fall tatsächlich, da der einzige relevante Satz lautet: " Die einzige ausstehende Einschränkung ist, dass die Maske zusammenhängend bleiben muss ." (Hervorheben von mir) Da die Maske von der Klasse für klassisches Routing impliziert / angenommen wird und nur drei zusammenhängende Masken verwendet wurden und der RFC für CIDR zusammenhängende Masken angibt, scheint Ihre Antwort falsch zu sein. Der FreeBSD-Listeneintrag ist mir ein Rätsel.
Todd Wilcox

3
Der Ersatz RFC ist 4632: tools.ietf.org/html/rfc4632 Beachten Sie, dass Slash - Notation diskutiert und verwendet wird , und der Begriff „Präfix Länge “ erscheint mehrmals, von denen keiner überhaupt keinen Sinn machen würde , wenn nicht zusammenhängende Masken waren unterstützt. Aus RFC 950 geht hervor, dass es in den Anfangszeiten möglicherweise Systeme gab, die nicht zusammenhängende Masken verwendeten. Das Aufrufen dieser Masken hilft dem Fragesteller jedoch nicht, die aktuelle Funktionsweise von TCP / IP zu verstehen, und kann sehr verwirrend sein.
Todd Wilcox

3
Da die Bits, die das Subnetz identifizieren, durch eine Bitmaske angegeben werden, müssen sie in der Adresse nicht benachbart sein. Wir empfehlen jedoch, dass die Subnetzbits zusammenhängend sind und sich als die höchstwertigen Bits der lokalen Adresse befinden . Während dies nicht den heute verwendeten Wortlaut SHOULD / MUST enthält, hat jeder moderne Subnetz-Funktionen aufgebaut. In drei Jahrzehnten der Vernetzung bin ich noch nie auf Technologien gestoßen, die nicht zusammenhängende Subnetze ermöglichen.
Ricky Beam
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.