Files
mindflux/src/main/resources/static/finalflux/ap1/ip-berechnung.html
T
AliceDarkest 501ecc0c1e AP3 A11y-Widget perfektioniert (Focus-Trap, aria-Semantik, tote CSS, Cache)
- accessibility.js: Focus-Trap im Panel (Tab/Shift+Tab zyklisch ueber Close + 9
  Optionen), aria-modal="true" beim Oeffnen, Klick-ausserhalb schliesst (Escape +
  Fokus-Rueckgabe bestehen). Font-Button: aria-pressed ersetzt durch dynamisches
  aria-label ("... aktuell 115 %") + .is-active ab >100 %; Reset-Button ohne
  aria-pressed (Aktion statt Toggle). Hochkontrast-Untertitel "immer dunkel".
- accessibility.css: toten Legacy-Dock-Code entfernt (72px body-padding, .mf-a11y-dock,
  Fixed-Trigger, Dock-Media-Query); .is-active am Aktiv-Styling; Kommentar, dass
  Hochkontrast bewusst immer dunkel bleibt.
- accessibility-placement.css: obsoleten Padding-Reset entfernt; .is-active ergaenzt.
- Cache-Buster: theme.js injiziert accessibility.css v6 / placement v10 /
  accessibility.js v9 / fluxtimer.css v5; theme.css?v=4 und theme.js?v=5 in allen
  80 Templates/Finalflux-Seiten vereinheitlicht.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFxcjtc9HNP4VECT6Ur1tE
2026-07-21 00:16:05 +02:00

158 lines
7.4 KiB
HTML

<!DOCTYPE html>
<html lang="de" data-theme="dark">
<head>
<meta charset="UTF-8">
<title>IP-Adressberechnung - FinalProtocol AP1</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/theme.css?v=4">
<link rel="stylesheet" href="/css/finalflux.css">
<script src="/js/theme.js?v=5"></script>
</head>
<body class="finalflux-page">
<div class="mf-theme-float"><button class="mf-theme"></button></div>
<main>
<a href="/finalflux" class="back-link">Zurück zu FinalProtocol</a>
<h1>IP-Adressberechnung</h1>
<section>
<h2>Lernfokus</h2>
<p>Trainiere IPv4, CIDR, Netzadresse, Broadcast und Hostanzahlen.</p>
<ul class="key-list">
<li>CIDR und Subnetzmaske zusammenbringen.</li>
<li>Netzadresse, Broadcast und Hostbereich bestimmen.</li>
<li>Typische Subnetting-Fehler vermeiden.</li>
</ul>
</section>
<section>
<h2>Aufbau einer IPv4-Adresse</h2>
<p>Eine IPv4-Adresse ist 32 Bit lang und wird in vier Oktette (je 8 Bit, also 1 Byte) unterteilt, die durch Punkte getrennt sind. Pro Oktett sind 2^8 = 256 Werte möglich, der Wertebereich reicht also von 0 bis 255 (z. B. 192.168.10.25).</p>
<ul class="key-list">
<li>1 Oktett = 8 Bit, 4 Oktette = 32 Bit Gesamtlänge.</li>
<li>Jedes Oktett: 0 bis 255 (256 Werte).</li>
<li>Bitwertigkeiten im Oktett: 128, 64, 32, 16, 8, 4, 2, 1.</li>
<li>Beispiel: 11000000 binär = 128 + 64 = 192 dezimal.</li>
</ul>
</section>
<section>
<h2>Subnetzmaske und CIDR-Präfix</h2>
<p>Die Subnetzmaske trennt die Adresse in Netz- und Hostanteil. Alle 1-Bits markieren den Netzanteil, alle 0-Bits den Hostanteil. Das CIDR-Präfix (z. B. /24) zählt einfach die führenden 1-Bits. So entspricht /24 der Maske 255.255.255.0 und lässt 32 - 24 = 8 Hostbits übrig.</p>
<ul class="key-list">
<li>/8 = 255.0.0.0, /16 = 255.255.0.0, /24 = 255.255.255.0.</li>
<li>/26 = 255.255.255.192, /30 = 255.255.255.252.</li>
<li>Hostbits = 32 - Präfix. Beispiel /26: 32 - 26 = 6 Hostbits.</li>
<li>Maskenwert eines Oktetts: 128, 192, 224, 240, 248, 252, 254, 255.</li>
</ul>
</section>
<section>
<h2>Netzadresse, Broadcast und Hostbereich</h2>
<p>Innerhalb eines Subnetzes ist die Netzadresse die erste Adresse (alle Hostbits 0), die Broadcast-Adresse die letzte (alle Hostbits 1). Beide werden nicht an Geräte vergeben. Dazwischen liegen die nutzbaren Hostadressen.</p>
<p>Rechenbeispiel für 192.168.1.0/24: Netzadresse 192.168.1.0, Broadcast 192.168.1.255, erste Hostadresse 192.168.1.1, letzte Hostadresse 192.168.1.254.</p>
<ul class="key-list">
<li>Netzadresse = alle Hostbits 0 (erste Adresse).</li>
<li>Broadcast = alle Hostbits 1 (letzte Adresse).</li>
<li>Erste nutzbare Hostadresse = Netzadresse + 1.</li>
<li>Letzte nutzbare Hostadresse = Broadcast - 1.</li>
</ul>
</section>
<section>
<h2>Hostanzahl berechnen</h2>
<p>Die Zahl der nutzbaren Hosts ergibt sich aus den Hostbits: 2^Hostbits - 2. Der Abzug von 2 berücksichtigt Netz- und Broadcast-Adresse, die nicht für Geräte zur Verfügung stehen.</p>
<ul class="key-list">
<li>/24: 8 Hostbits, 2^8 - 2 = 256 - 2 = 254 Hosts.</li>
<li>/26: 6 Hostbits, 2^6 - 2 = 64 - 2 = 62 Hosts.</li>
<li>/30: 2 Hostbits, 2^2 - 2 = 4 - 2 = 2 Hosts (Punkt-zu-Punkt).</li>
<li>Achtung: häufiger Fehler ist 2^Hostbits ohne den Abzug von 2.</li>
</ul>
</section>
<section>
<h2>Subnetting mit der Blockgröße</h2>
<p>Wird ein Netz in mehrere Subnetze geteilt, hilft die Blockgröße (Schrittweite) im relevanten Oktett: Blockgröße = 256 - Maskenwert. Die Subnetze beginnen dann bei Vielfachen dieser Blockgröße.</p>
<p>Beispiel 192.168.1.0/26: Maskenwert im letzten Oktett ist 192, also Blockgröße 256 - 192 = 64. Die Subnetze sind:</p>
<ul class="key-list">
<li>192.168.1.0/26 - Broadcast 192.168.1.63 (Hosts .1 bis .62).</li>
<li>192.168.1.64/26 - Broadcast 192.168.1.127 (Hosts .65 bis .126).</li>
<li>192.168.1.128/26 - Broadcast 192.168.1.191 (Hosts .129 bis .190).</li>
<li>192.168.1.192/26 - Broadcast 192.168.1.255 (Hosts .193 bis .254).</li>
</ul>
<p>So liegt etwa 192.168.1.130 im Block ab .128, gehört also zum Subnetz 192.168.1.128/26.</p>
</section>
<section>
<h2>Private Adressbereiche</h2>
<p>Private Adressen (RFC 1918) sind nicht im Internet routbar und werden in lokalen Netzen genutzt. Sie müssen für den Internetzugang über NAT in öffentliche Adressen übersetzt werden.</p>
<ul class="key-list">
<li>10.0.0.0/8 (10.0.0.0 - 10.255.255.255).</li>
<li>172.16.0.0/12 (172.16.0.0 - 172.31.255.255).</li>
<li>192.168.0.0/16 (192.168.0.0 - 192.168.255.255).</li>
<li>169.254.0.0/16 ist APIPA und deutet auf ein DHCP-Problem hin.</li>
</ul>
</section>
<section>
<h2>IPv6 - die Grundidee</h2>
<p>IPv6 wurde wegen der Adressknappheit von IPv4 eingeführt. Eine IPv6-Adresse ist 128 Bit lang und wird in acht Blöcken zu je 16 Bit hexadezimal geschrieben (z. B. 2001:0db8:0000:0000:0000:0000:0000:0001). Führende Nullen dürfen entfallen, eine zusammenhängende Nullfolge lässt sich einmal durch :: ersetzen (verkürzt: 2001:db8::1).</p>
<ul class="key-list">
<li>IPv4 = 32 Bit, IPv6 = 128 Bit.</li>
<li>Schreibweise hexadezimal in 8 Blöcken zu 16 Bit.</li>
<li>:: ersetzt einmalig eine Folge aus Nullblöcken.</li>
</ul>
</section>
<section>
<h2>Merksätze für die Prüfung</h2>
<ul class="key-list">
<li>Hostbits = 32 - Präfix; nutzbare Hosts = 2^Hostbits - 2.</li>
<li>Netzadresse = erste, Broadcast = letzte Adresse des Subnetzes.</li>
<li>Blockgröße = 256 - Maskenwert des relevanten Oktetts.</li>
<li>Rechenweg immer notieren - das bringt Teilpunkte.</li>
</ul>
</section>
<section>
<h2>Prüfungsmodus</h2>
<p>Dieser ProtocolCheck führt dich durch die wichtigsten AP1-Aspekte dieses Themas. Du kannst Antworten prüfen, Fragen überspringen und bekommst am Ende eine Auswertung nach Kategorie.</p>
</section>
<section class="finalflux-test" data-finalflux-test aria-live="polite">
<div class="test-meta">
<span data-question-counter>Frage 1</span>
<span data-score-counter>0 richtig</span>
</div>
<div class="category-block">
<p class="eyebrow">Kategorie</p>
<h2 data-category-title>IP-Adressberechnung</h2>
<p data-category-hint>AP1-Training</p>
</div>
<div class="question-card">
<h3 data-question-text></h3>
<div data-answer-options class="answer-options"></div>
<div data-answer-feedback class="fluxcheck-result"></div>
</div>
<div class="test-actions">
<button type="button" data-check-answer>Antwort prüfen</button>
<button type="button" data-skip-question class="secondary">Überspringen</button>
<button type="button" data-next-question class="secondary" disabled>Weiter</button>
</div>
</section>
<section data-test-result class="finalflux-panel" hidden>
<h2>Auswertung</h2>
<p data-result-summary></p>
<ul data-category-summary class="key-list"></ul>
<div class="finalflux-actions">
<button type="button" data-restart-test>Test neu starten</button>
<a href="/finalflux">Zurück zur Übersicht</a>
</div>
</section>
</main>
<script src="/js/finalflux-test.js" data-questions-src="/finalflux/questions/ap1_ip-berechnung.json" defer></script>
</body>
</html>