Netzwerkadressen berechnen

Hallo zusammen,
heute habe ich einen neuen PC ins Netz integriert. Dazu habe ich

  • in der /etc/linuxmuster/subnets.csv die Einträge:
...
# Schulnetz - vlan18 (mit freier Range zur Rechneraufnahme);;;;;;
10.18.0.0/16;10.18.255.254;10.18.230.0;10.18.230.10;Schulnetz;;
...

vorgenommen

  • und mit linuxmuster-import-subnets die freie Range übernommen.

Dann habe ich den Client per pxe gebootet. Leider gab es in der /var/log/syslog folgende Fehlermeldungen:

Aug 29 20:29:23 server dhcpd[726022]: DHCPDISCOVER from 52:91:13:88:35:85 via 10.18.255.254: network 10.18.0.0/16: no free leases
Aug 29 20:29:26 server dhcpd[726022]: message repeated 2 times: [ DHCPDISCOVER from 52:91:13:88:35:85 via 10.18.255.254: network 10.18.0.0/16: no free leases]

Eigentlich hätte ich erwartet, dass der Client eine IP aus dem Bereich
10.18.230.0 bis 10.18.230.10 erhält. Statt dessen erhalte ich no free leases.

In der Schulkonsole sieht das so aus:

Hab ich was falsch gemacht, oder läuft linuxmuster-import-subnets fehlerhaft.

Den Client habe ich dann von Hand eingefügt.

Gruß,
Mathias

Hallo Mathias,

poste mal die gesammte subnetx.csv.

Hast du den den Client im richtigen VLAN gehabt, als er bootete?

LG

Holger

Hallo Holger,

Ja, er war im richtigen Netz wie man auch an der Meldung ..via 10.18.255.254: network 10.18.0.0/16: no free leases sieht.

Meine subnet.csv:

# modified by linuxmuster-setup at 20200801174905;;;;;;
# /etc/linuxmuster/subnets.csv;;;;;;

# thomas@linuxmuster.net;;;;;;
# 15.12.2013;;;;;;

# Beispiele für Subnetzdeklarationen;;;;;;

# Network/Prefix;Router-IP (last IP in network);1. Range-IP;Last-Range-IP;Intranet Access 0/1;Internet Access 0/1;

# Server - vlan16;;;;;;
10.16.0.0/16;10.16.1.253;;;Server;;

# Lehrernetz - vlan17 (ohne freier Range zur Rechneraufnahme);;;;;;
10.17.0.0/16;10.17.255.254;;;Lehrernetz;;

# Schulnetz - vlan18 (ohne freier Range zur Rechneraufnahme);;;;;;
10.18.0.0/16;10.18.255.254;10.18.230.0;10.18.230.10;Schulnetz;;

# Servicenetz - vlan19 (mit freier Range zur Rechneraufnahme);;;;;;
10.19.0.0/16;10.19.255.254;;;Service;;

# WLANnetz - vlan20 (ohne freier Range zur Rechneraufnahme);;;;;;
10.20.0.0/16;10.20.255.254;;;WLAN;;

Gruß,
Mathias

Hallo Mathias,

modified by linuxmuster-setup at 20200801174905;;;;;;

/etc/linuxmuster/subnets.csv;;;;;; # thomas@linuxmuster.net;;;;;; #
15.12.2013;;;;;; # Beispiele für Subnetzdeklarationen;;;;;; #
Network/Prefix;Router-IP (last IP in network);1.
Range-IP;Last-Range-IP;Intranet Access 0/1;Internet Access 0/1; # Server

  • vlan16;;;;;; 10.16.0.0/16;10.16.1.253;;;Server;; # Lehrernetz - vlan17
    (ohne freier Range zur Rechneraufnahme);;;;;;
    10.17.0.0/16;10.17.255.254;;;Lehrernetz;; # Schulnetz - vlan18 (ohne
    freier Range zur Rechneraufnahme);;;;;;
    10.18.0.0/16;10.18.255.254;10.18.230.0;10.18.230.10;Schulnetz;; #
    Servicenetz - vlan19 (mit freier Range zur Rechneraufnahme);;;;;;
    10.19.0.0/16;10.19.255.254;;;Service;; # WLANnetz - vlan20 (ohne freier
    Range zur Rechneraufnahme);;;;;; 10.20.0.0/16;10.20.255.254;;;WLAN;; |

… deine Subnets sind ja riesig.
Willst du das so?
Da sind jeweils 65534 Hosts möglich pro Subnet.
Sinn der Subnets ist doch, dass die Segmente klein sind …
Meine sind alle /24 … also nur 254 Hosts pro Subnet.

… und ich hätte ja das Lehrernetz mit 10.17.x.y auf vlan 17 gelegt und
nicht auf VLAN 18.
Ebenso hätte ich das Schulnetz mit 10.18.x.y auf VLAN 18 gelegt …

Was steht den in der /etc/dhcp/subnets.conf ?

LG

Holger

Hallo Holger,

Naja, Ich habe ein Subnet für Schüler, eins für den Lehrerarbeitsraum, eins für Switche, APs, Beamer, … (Servicenetz), eins für WLAN-Geräte des Schulnetzes und natürlich das Servernetz. Gut die Netze sind riesig. Warum nicht? Stärker wollte ich eben nicht unterteilen…

Wenn man sich /etc/dhcp/subnets.conf anschaut, sieht man kein range ....

# Subnet 10.16.0.0/16 server network
subnet 10.16.0.0 netmask 255.255.0.0 {
  option routers 10.16.1.253;
  option subnet-mask 255.255.0.0;
  option broadcast-address 10.16.255.255;
  option netbios-name-servers 10.16.1.1;
  option host-name pxeclient;
}
# Subnet 10.17.0.0/16 
subnet 10.17.0.0 netmask 255.255.0.0 {
  option routers 10.17.255.254;
  option subnet-mask 255.255.0.0;
  option broadcast-address 10.17.255.255;
  option netbios-name-servers 10.16.1.1;
  option host-name pxeclient;
}
# Subnet 10.18.0.0/16 
subnet 10.18.0.0 netmask 255.255.0.0 {
  option routers 10.18.255.254;
  option subnet-mask 255.255.0.0;
  option broadcast-address 10.18.255.255;
  option netbios-name-servers 10.16.1.1;
  option host-name pxeclient;
}
# Subnet 10.19.0.0/16 
subnet 10.19.0.0 netmask 255.255.0.0 {
  option routers 10.19.255.254;
  option subnet-mask 255.255.0.0;
  option broadcast-address 10.19.255.255;
  option netbios-name-servers 10.16.1.1;
  option host-name pxeclient;
}
# Subnet 10.20.0.0/16 
subnet 10.20.0.0 netmask 255.255.0.0 {
  option routers 10.20.255.254;
  option subnet-mask 255.255.0.0;
  option broadcast-address 10.20.255.255;
  option netbios-name-servers 10.16.1.1;
  option host-name pxeclient;
}

Gruß,
Mathias

Hallo Mathias,

Naja, Ich habe ein Subnet für Schüler, eins für den Lehrerarbeitsraum,
eins für Switche, APs, Beamer, … (Servicenetz), eins für WLAN-Geräte des
Schulnetzes und natürlich das Servernetz. Gut die Netze sind riesig.
Warum nicht? Stärker wollte ich eben nicht unterteilen…

ein Sinn des Unterteilens ist ja, dass die Broadcasts nicht so groß sind …

Wenn man sich |/etc/dhcp/subnets.conf| anschaut, sieht man kein |range …|.

bei mir schon:

# Subnet 10.16.1.0/24 server network
subnet 10.16.1.0 netmask 255.255.255.0 {
   option routers 10.16.1.253;
   option subnet-mask 255.255.255.0;
   option broadcast-address 10.16.1.255;
   option netbios-name-servers 10.16.1.1;
   range 10.16.1.100 10.16.1.200;
   option host-name pxeclient;

LG

Holger

Schau Dir mal den Broadcasttraffic mit Wireshark an, der wird allgemein ueberbewertet. :slight_smile:

Hallo zusammen,

ich hab’s:
Der Bereich 10.18.230.0 bius 10.18.230.10 wird wegen der 0 von linuxmuster-import-subnets nicht als gültiger Bereich angesehen. mit 10.18.230.1 bius 10.18.230.10 läuft alles.

Gruß,
Mathias

Hallo Matthias,

aus Gründen. IP-Adressen mit abschl. 0 sind Netzwerkadressen und können nicht an Hosts vergeben werden. Steht in RFC 1518 glaub ich.

VG, Thomas

Hallo Thomas,

Das gilt für …/24 - Netze, aber 10.19.230.0/16 ist eine normale Adresse und kein Netzwerk, oder?
Gruß,
Mathias

Meiner Ansicht nach ist das eine Netzwerkadresse, aber evtl. weiß jemand mehr.

Hallo Thomas,
ist nicht auch nicht so wichtig. Wie Holger schon bemerkte, sind die Subnets üblicherweise wesentlich kleiner und bei mir. Bei einem 24-er Netz darf hinten keine 0 stehen. Bei einem 16-er Netz, also wie bei mir, darf hinten nicht 0.0 stehen.
Da ich weiß, dass linuxmuster-import-subnets checkt ob hinten eine 0 steht, werde ich das einfach vermeiden :slight_smile:
Vielen Dank an alle, die mit mir überlegt haben.
Gruß,
Mathias

Hallo Matthias, einen ähnlichen Verdacht hatte ich auch schon mal, als ich ein großes Netz für die Geräte im WLAN definiert habe und dann bemerkt habe, dass die Adressen mit einer .0 oder .255 am Ende sich irgendwie merkwürdig verhalten haben. Guck mal hier — es ist selbstverständlich weiterhin sehr gut möglich, dass das alles Quatsch ist:

Viele Grüße,
Michael

10.19.230.0/16 ist eine Hostadresse im 10.19.0.0/16er Netz, diese darf einem Geraet vergeben werden.

ipcalc 10.19.230.0/16
Address: 10.19.230.0 00001010.00010011. 11100110.00000000
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111
=>
Network: 10.19.0.0/16 00001010.00010011. 00000000.00000000
HostMin: 10.19.0.1 00001010.00010011. 00000000.00000001
HostMax: 10.19.255.254 00001010.00010011. 11111111.11111110
Broadcast: 10.19.255.255 00001010.00010011. 11111111.11111111

2 „Gefällt mir“

Ja, die Zahl sagt da gar nichts aus. Wenn du ein kleineres Netz hast dann ist auch nicht die 0 die Netzadresse…

0 = Netzadresse passt nur in wenigen Fällen.

EDIT: Ich hab die „Lösung“ von @rettich hier auch nochmal rausgenommen, hier im Thread gehts ja um verschiedene Probleme :slight_smile:

Hallo,

nach einigem Grübeln: Die Netzwerkadresse endet IMMER auf „0“ - aber binär ! Denn wenn die Subnetmaskenlänge über das 24. Bit hinausgeht, gibt es natürlich Kombinationen, wo die unterste mögliche Adresse im Netzwerk minus 1 auf einer Zahl endet, die im 32-Bit-System, das ipv4 benutzt, als letztes Oktett keine „vollständige“ 0 mehr hat - aber sicherlich ist die letzte Binärstelle dann 0 - oft noch mehr.

Beispiele:
10.0.0.253/25 → Netzwerkadresse 10.0.0.128 (7 letzte Bit im letzten Oktett sind 0)
10.0.0.126/26 → Netzwerkadresse 10.0.0.64 (hier sind die letzten 6 Bit des letzten Oktetts 0)
10.0.0.125/27 → netzwerkadresse 10.0.0.96 (hier sind es die letzten 5 Bit).

Ab /24 sind alle Netzwerkadressen am Ende auf .0

L.G.
Christoph G.

Hallo,

Es ging aber umgekehrt darum, ob jede auf .0 endende IP eine Netzwerkadresse ist und dieser Umkehrschluss gilt eben nicht und dazu reicht ein einziges Gegenbeispiel (siehe zuvor).

Außerdem müsste man genau betrachtet ab /24 in Richtung /16 sich dann das 3. statt dem 4. Oktett anschauen und dann stimmt deine Aussage auch wieder nicht. Zum Beispiel IPcalc 10.0.0.0/16 in /23 aufteilen, hier findest du 127 Netze gelistet, die im 3. Oktett keine .0 haben. Und jedes der /23er Subnetze hat eine IP X.Y.Z.255 und X.Y.Z+1.0 als gültige Hostadresse, nämlich genau dort wo jeweils zwei /24er Netze (Z = gerade und Z+1) aneinander liegen, wenn man die /23er Netze nochmal zu /24er halbieren würde.

VG Buster

Ach so - da hab ich mich nicht deutlich genug ausgedrückt: Ich meinte lediglich das allerletzte (!) Oktett natürlich ! (Das .0 sollte die abschließende Null sein !)
Und doch, es ging mir um die Frage:

die ich dadurch mit einem klaren Nein beantworte - so, wie bereits Till oben - nur eben halt begründet.

L.G.
Christoph

Hallo zusammen,

das ganze wird etwas arg OT.

Evt. kann das jemand mal auslagern :slight_smile:

LG, Maurice