{"id":191,"date":"2026-04-14T07:59:39","date_gmt":"2026-04-14T07:59:39","guid":{"rendered":"https:\/\/rexstarlabs.work\/?page_id=191"},"modified":"2026-04-14T08:03:03","modified_gmt":"2026-04-14T08:03:03","slug":"learn","status":"publish","type":"page","link":"https:\/\/rexstarlabs.work\/index.php\/learn\/","title":{"rendered":"learn"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>IT-Skilltrainer<\/title>\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600;700&display=swap');\n\n:root {\n--bg: #f5f5f3;\n--card: #ffffff;\n--text: #1a1a1a;\n--text-light: #6b6b6b;\n--text-muted: #999;\n--accent: #8b0000;\n--accent-light: #a52a2a;\n--border: #e8e8e6;\n--border-light: #f0f0ee;\n--success: #2d6a4f;\n--danger: #8b0000;\n--warning: #b8860b;\n--code-bg: #1e1e1e;\n}\n\n* { margin: 0; padding: 0; box-sizing: border-box; }\n\nbody {\nfont-family: 'Inter', -apple-system, sans-serif;\nbackground: var(--bg);\ncolor: var(--text);\nline-height: 1.7;\n-webkit-font-smoothing: antialiased;\n}\n\n\/* \u2500\u2500\u2500 MODULE WRAPPER \u2500\u2500\u2500 *\/\n.module-wrapper {\nmax-width: 860px;\nmargin: 0 auto;\npadding: 3rem 2rem 6rem;\n}\n\n\/* \u2500\u2500\u2500 HEADER \u2500\u2500\u2500 *\/\n.module-header {\ntext-align: center;\npadding: 4rem 0 3rem;\nborder-bottom: 1px solid var(--border);\nmargin-bottom: 3rem;\n}\n.module-header h1 {\nfont-family: 'Playfair Display', Georgia, serif;\nfont-size: 3.2rem;\nfont-weight: 400;\nletter-spacing: -0.02em;\nmargin-bottom: 0.5rem;\ncolor: var(--text);\n}\n.module-header p {\nfont-size: 0.9rem;\ncolor: var(--text-light);\nfont-weight: 300;\nletter-spacing: 0.03em;\n}\n\n\/* \u2500\u2500\u2500 XP BAR (minimal) \u2500\u2500\u2500 *\/\n.xp-strip {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\ngap: 1.5rem;\nmargin-top: 2rem;\nfont-size: 0.8rem;\ncolor: var(--text-muted);\nletter-spacing: 0.05em;\ntext-transform: uppercase;\n}\n.xp-strip .level-label { font-weight: 600; color: var(--accent); }\n.xp-bar-wrap {\nwidth: 200px; height: 3px;\nbackground: var(--border);\nborder-radius: 2px;\noverflow: hidden;\n}\n.xp-bar-fill {\nheight: 100%; width: 0%;\nbackground: var(--accent);\nborder-radius: 2px;\ntransition: width 0.6s ease;\n}\n\n\/* \u2500\u2500\u2500 +XP popup \u2500\u2500\u2500 *\/\n.xp-popup {\nposition: fixed;\ntop: 2rem; right: 2rem;\nbackground: var(--accent);\ncolor: #fff;\npadding: 0.6rem 1.4rem;\nborder-radius: 4px;\nfont-size: 0.85rem;\nfont-weight: 600;\nopacity: 0;\ntransform: translateY(-10px);\ntransition: all 0.3s;\nz-index: 9999;\npointer-events: none;\n}\n.xp-popup.show { opacity: 1; transform: translateY(0); }\n\n\/* \u2500\u2500\u2500 NAV TABS \u2500\u2500\u2500 *\/\n.nav-tabs {\ndisplay: flex;\nflex-wrap: wrap;\njustify-content: center;\ngap: 0.3rem;\npadding-bottom: 2rem;\nborder-bottom: 1px solid var(--border);\nmargin-bottom: 3rem;\nposition: sticky;\ntop: 0;\nbackground: var(--bg);\nz-index: 100;\npadding-top: 1rem;\n}\n.nav-tab {\npadding: 0.5rem 1rem;\nborder: none;\nbackground: none;\ncursor: pointer;\nfont-size: 0.78rem;\ncolor: var(--text-muted);\nfont-family: 'Inter', sans-serif;\nletter-spacing: 0.04em;\ntext-transform: uppercase;\nfont-weight: 500;\nborder-bottom: 2px solid transparent;\ntransition: all 0.2s;\n}\n.nav-tab:hover { color: var(--text); }\n.nav-tab.active {\ncolor: var(--accent);\nborder-bottom-color: var(--accent);\n}\n\n\/* \u2500\u2500\u2500 SECTIONS \u2500\u2500\u2500 *\/\n.section { display: none; }\n.section.active { display: block; }\n\n\/* \u2500\u2500\u2500 HEADINGS \u2500\u2500\u2500 *\/\n.section-title {\nfont-family: 'Playfair Display', Georgia, serif;\nfont-size: 2rem;\nfont-weight: 400;\nmargin-bottom: 0.3rem;\nletter-spacing: -0.01em;\n}\n.section-subtitle {\nfont-size: 0.85rem;\ncolor: var(--text-light);\nmargin-bottom: 2.5rem;\nfont-weight: 300;\n}\n\n\/* \u2500\u2500\u2500 CARDS \u2500\u2500\u2500 *\/\n.card {\nbackground: var(--card);\nborder: 1px solid var(--border);\nborder-radius: 2px;\npadding: 2rem;\nmargin-bottom: 1.5rem;\n}\n.card h2 {\nfont-family: 'Playfair Display', Georgia, serif;\nfont-size: 1.35rem;\nfont-weight: 400;\nmargin-bottom: 1rem;\ncolor: var(--text);\n}\n.card h3 {\nfont-size: 0.85rem;\nfont-weight: 600;\ntext-transform: uppercase;\nletter-spacing: 0.06em;\ncolor: var(--text-light);\nmargin: 1.5rem 0 0.6rem;\n}\n\n\/* \u2500\u2500\u2500 INFO BOXES \u2500\u2500\u2500 *\/\n.info-box {\npadding: 1rem 1.2rem;\nmargin: 1rem 0;\nfont-size: 0.88rem;\nborder-left: 3px solid var(--border);\nbackground: transparent;\ncolor: var(--text);\n}\n.info-box strong { font-weight: 600; }\n.info-box.success { border-left-color: var(--success); }\n.info-box.warning { border-left-color: var(--warning); }\n.info-box.danger { border-left-color: var(--danger); }\n\n\/* \u2500\u2500\u2500 OVERVIEW GRID \u2500\u2500\u2500 *\/\n.topic-grid {\ndisplay: grid;\ngrid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\ngap: 1rem;\nmargin-top: 1.5rem;\n}\n.topic-item {\npadding: 1.2rem;\nborder: 1px solid var(--border);\nborder-radius: 2px;\nfont-size: 0.88rem;\ntransition: border-color 0.2s;\n}\n.topic-item:hover { border-color: var(--accent); }\n.topic-item strong { display: block; margin-bottom: 0.3rem; font-size: 0.9rem; }\n.topic-item span { color: var(--text-light); font-size: 0.82rem; }\n\n\/* \u2500\u2500\u2500 TABLES \u2500\u2500\u2500 *\/\ntable {\nwidth: 100%;\nborder-collapse: collapse;\nmargin: 1rem 0;\nfont-size: 0.85rem;\n}\nth, td {\npadding: 0.7rem 0.8rem;\ntext-align: left;\nborder-bottom: 1px solid var(--border-light);\n}\nth {\nfont-weight: 600;\nfont-size: 0.75rem;\ntext-transform: uppercase;\nletter-spacing: 0.06em;\ncolor: var(--text-light);\nborder-bottom-color: var(--border);\n}\n\n\/* \u2500\u2500\u2500 CODE \u2500\u2500\u2500 *\/\n.command-box {\nbackground: var(--code-bg);\ncolor: #d4d4d4;\npadding: 1.2rem;\nborder-radius: 2px;\nfont-family: 'SF Mono', 'Fira Code', Consolas, monospace;\nfont-size: 0.82rem;\nmargin: 0.8rem 0;\noverflow-x: auto;\nline-height: 1.8;\n}\n.command-box .cmd { color: #9cdcfe; }\n.command-box .comment { color: #6a9955; }\n.command-box .result { color: #ce9178; }\ncode {\nbackground: #eee;\npadding: 0.15rem 0.4rem;\nborder-radius: 2px;\nfont-family: 'SF Mono', Consolas, monospace;\nfont-size: 0.82em;\n}\n\n\/* \u2500\u2500\u2500 TROUBLESHOOTING STEPS \u2500\u2500\u2500 *\/\n.ts-step {\ndisplay: flex;\ngap: 1.2rem;\npadding: 1.2rem 0;\nborder-bottom: 1px solid var(--border-light);\n}\n.ts-step:last-child { border-bottom: none; }\n.ts-num {\nfont-family: 'Playfair Display', serif;\nfont-size: 1.3rem;\ncolor: var(--accent);\nmin-width: 2rem;\ntext-align: center;\npadding-top: 0.1rem;\n}\n.ts-content strong { display: block; margin-bottom: 0.3rem; }\n.ts-arrow {\ntext-align: center;\ncolor: var(--text-muted);\nfont-size: 0.9rem;\npadding: 0.2rem 0;\n}\n\n\/* \u2500\u2500\u2500 ACCORDION \u2500\u2500\u2500 *\/\n.accordion {\nborder: 1px solid var(--border);\nborder-radius: 2px;\nmargin: 0.5rem 0;\noverflow: hidden;\n}\n.accordion-header {\npadding: 0.9rem 1.2rem;\ncursor: pointer;\nfont-size: 0.88rem;\nfont-weight: 500;\ndisplay: flex;\njustify-content: space-between;\nalign-items: center;\ntransition: background 0.2s;\n}\n.accordion-header:hover { background: var(--border-light); }\n.accordion-body {\npadding: 0 1.2rem;\nmax-height: 0;\noverflow: hidden;\ntransition: max-height 0.3s, padding 0.3s;\nfont-size: 0.88rem;\n}\n.accordion-body.open {\nmax-height: 2000px;\npadding: 1.2rem;\nborder-top: 1px solid var(--border-light);\n}\n\n\/* \u2500\u2500\u2500 QUIZ \u2500\u2500\u2500 *\/\n.quiz-question {\nbackground: var(--card);\nborder: 1px solid var(--border);\nborder-radius: 2px;\npadding: 1.8rem 2rem;\nmargin-bottom: 1rem;\n}\n.q-header {\ndisplay: flex;\nalign-items: baseline;\ngap: 0.8rem;\nmargin-bottom: 1rem;\n}\n.q-number {\nfont-family: 'Playfair Display', serif;\nfont-size: 1.1rem;\ncolor: var(--accent);\nfont-weight: 700;\n}\n.q-text { font-weight: 500; font-size: 0.95rem; }\n.q-category {\nmargin-left: auto;\nfont-size: 0.7rem;\ntext-transform: uppercase;\nletter-spacing: 0.06em;\ncolor: var(--text-muted);\nwhite-space: nowrap;\n}\n.options { list-style: none; margin-top: 0.8rem; }\n.options li {\npadding: 0.7rem 1rem;\nmargin: 0.3rem 0;\nborder: 1px solid var(--border);\nborder-radius: 2px;\ncursor: pointer;\ntransition: all 0.15s;\nfont-size: 0.88rem;\n}\n.options li:hover { border-color: var(--text-light); }\n.options li.selected { border-color: var(--accent); background: #fdf2f2; }\n.options li.correct { border-color: var(--success); background: #edf7f0; }\n.options li.wrong { border-color: var(--danger); background: #fdf2f2; }\n\n.explanation {\ndisplay: none;\nmargin-top: 0.8rem;\npadding: 0.8rem 1rem;\nfont-size: 0.85rem;\nborder-left: 3px solid var(--border);\n}\n.explanation.show { display: block; }\n.explanation.correct-exp { border-left-color: var(--success); }\n.explanation.wrong-exp { border-left-color: var(--danger); }\n\n.quiz-summary {\nfont-size: 0.82rem;\ncolor: var(--text-muted);\ndisplay: flex;\njustify-content: space-between;\ntext-transform: uppercase;\nletter-spacing: 0.05em;\n}\n.quiz-bar { width: 100%; height: 2px; background: var(--border); margin: 0.8rem 0 0.3rem; border-radius: 1px; overflow: hidden; }\n.quiz-bar-fill { height: 100%; background: var(--accent); transition: width 0.5s; border-radius: 1px; }\n\n\/* \u2500\u2500\u2500 BUTTONS \u2500\u2500\u2500 *\/\n.btn {\npadding: 0.55rem 1.4rem;\nborder: 1px solid var(--border);\nborder-radius: 2px;\ncursor: pointer;\nfont-size: 0.8rem;\nfont-weight: 500;\nfont-family: 'Inter', sans-serif;\nletter-spacing: 0.03em;\ntransition: all 0.15s;\nbackground: transparent;\ncolor: var(--text);\n}\n.btn:hover { border-color: var(--text); }\n.btn-accent {\nbackground: var(--accent);\ncolor: #fff;\nborder-color: var(--accent);\n}\n.btn-accent:hover { background: var(--accent-light); }\n.btn-danger { color: var(--danger); border-color: var(--danger); }\n.btn-danger:hover { background: #fdf2f2; }\n.btn-group { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 1rem; }\n\n\/* \u2500\u2500\u2500 FLASHCARDS \u2500\u2500\u2500 *\/\n.flashcard {\nperspective: 1000px;\nheight: 240px;\ncursor: pointer;\nmargin: 1.5rem 0;\n}\n.flashcard-inner {\nposition: relative;\nwidth: 100%; height: 100%;\ntransition: transform 0.6s;\ntransform-style: preserve-3d;\n}\n.flashcard.flipped .flashcard-inner { transform: rotateY(180deg); }\n.flashcard-front, .flashcard-back {\nposition: absolute;\nwidth: 100%; height: 100%;\nbackface-visibility: hidden;\nborder: 1px solid var(--border);\nborder-radius: 2px;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\npadding: 2rem;\ntext-align: center;\n}\n.flashcard-front {\nbackground: var(--card);\nfont-family: 'Playfair Display', serif;\nfont-size: 1.15rem;\ncolor: var(--text);\n}\n.flashcard-back {\nbackground: var(--card);\nborder-color: var(--accent);\ntransform: rotateY(180deg);\nfont-size: 0.9rem;\ncolor: var(--text);\nline-height: 1.7;\n}\n.fc-nav {\ndisplay: flex;\njustify-content: center;\nalign-items: center;\ngap: 2rem;\nfont-size: 0.82rem;\ncolor: var(--text-muted);\n}\n\n\/* \u2500\u2500\u2500 SCENARIOS \u2500\u2500\u2500 *\/\n.scenario-card {\nbackground: var(--card);\nborder: 1px solid var(--border);\nborder-radius: 2px;\npadding: 2rem;\nmargin-bottom: 1rem;\ntransition: border-color 0.2s;\n}\n.scenario-card:hover { border-color: var(--text-light); }\n.scenario-card h2 {\nfont-family: 'Playfair Display', serif;\nfont-size: 1.2rem;\nfont-weight: 400;\nmargin-bottom: 0.3rem;\n}\n.scenario-meta {\ndisplay: flex;\ngap: 1rem;\nfont-size: 0.75rem;\ntext-transform: uppercase;\nletter-spacing: 0.06em;\ncolor: var(--text-muted);\nmargin-bottom: 1rem;\n}\n.scenario-meta .xp-val { color: var(--accent); font-weight: 600; }\n.scenario-check {\nmargin-top: 1.2rem;\npadding-top: 1rem;\nborder-top: 1px solid var(--border-light);\nfont-size: 0.85rem;\n}\n.scenario-check label { cursor: pointer; display: flex; align-items: center; gap: 0.5rem; }\n.scenario-check input[type=\"checkbox\"] { accent-color: var(--accent); }\n\n.badge-diff {\nfont-size: 0.7rem;\ntext-transform: uppercase;\nletter-spacing: 0.06em;\nfont-weight: 600;\n}\n.badge-diff.easy { color: var(--success); }\n.badge-diff.medium { color: var(--warning); }\n.badge-diff.hard { color: var(--danger); }\n\n\/* \u2500\u2500\u2500 NETWORK DIAGRAM \u2500\u2500\u2500 *\/\n.network-diagram-wrap {\nbackground: var(--card);\nborder: 1px solid var(--border);\nborder-radius: 2px;\npadding: 2rem;\nmargin: 1.5rem 0;\n}\n.network-diagram {\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ngap: 0.5rem;\n}\n.net-row {\ndisplay: flex;\njustify-content: center;\nalign-items: center;\ngap: 1rem;\nflex-wrap: wrap;\n}\n.net-device {\nborder: 1px solid var(--border);\nborder-radius: 2px;\npadding: 0.7rem 1rem;\ntext-align: center;\nfont-size: 0.78rem;\nmin-width: 100px;\nbackground: var(--card);\n}\n.net-device small { color: var(--text-muted); display: block; margin-top: 0.2rem; font-size: 0.7rem; }\n.net-device.router { border-color: var(--accent); }\n.net-device.server { border-color: var(--success); }\n.net-device.printer { border-color: #9c27b0; }\n.net-device.wlan { border-color: #ff6d00; }\n.net-line { color: var(--text-muted); font-size: 0.9rem; font-family: monospace; }\n\n\/* \u2500\u2500\u2500 ACHIEVEMENTS \u2500\u2500\u2500 *\/\n.achievement-grid {\ndisplay: grid;\ngrid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\ngap: 1rem;\nmargin-top: 1rem;\n}\n.achievement-item {\nborder: 1px solid var(--border);\nborder-radius: 2px;\npadding: 1.2rem;\ntext-align: center;\nfont-size: 0.85rem;\ntransition: border-color 0.2s;\n}\n.achievement-item.unlocked { border-color: var(--accent); }\n.achievement-item .ach-icon { font-size: 1.8rem; margin-bottom: 0.5rem; }\n.achievement-item .ach-name { font-weight: 600; font-size: 0.82rem; }\n.achievement-item .ach-desc { color: var(--text-muted); font-size: 0.78rem; margin-top: 0.2rem; }\n.achievement-item.locked { opacity: 0.4; }\n\n.stat-grid {\ndisplay: grid;\ngrid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\ngap: 1rem;\nmargin-top: 1rem;\n}\n.stat-item {\ntext-align: center;\npadding: 1.5rem 1rem;\nborder: 1px solid var(--border);\nborder-radius: 2px;\n}\n.stat-item .stat-val {\nfont-family: 'Playfair Display', serif;\nfont-size: 2.2rem;\ncolor: var(--accent);\n}\n.stat-item .stat-label {\nfont-size: 0.72rem;\ncolor: var(--text-muted);\ntext-transform: uppercase;\nletter-spacing: 0.06em;\nmargin-top: 0.3rem;\n}\n\n\/* \u2500\u2500\u2500 RESPONSIVE \u2500\u2500\u2500 *\/\n@media (max-width: 600px) {\n.module-wrapper { padding: 1.5rem 1rem 4rem; }\n.module-header h1 { font-size: 2rem; }\n.module-header { padding: 2.5rem 0 2rem; }\n.nav-tab { padding: 0.4rem 0.6rem; font-size: 0.7rem; }\n.card { padding: 1.3rem; }\n.net-device { min-width: 70px; font-size: 0.7rem; }\n}\n<\/style>\n<\/head>\n<body>\n\n<div id=\"xpPopup\" class=\"xp-popup\"><\/div>\n\n<div class=\"module-wrapper\">\n\n<!-- HEADER -->\n<div class=\"module-header\">\n<h1>IT-Skilltrainer<\/h1>\n<p>Netzwerktechnik \u00b7 Packet Tracer \u00b7 Klassenarbeitsvorbereitung<\/p>\n<div class=\"xp-strip\">\n<span class=\"level-label\" id=\"levelBadge\">Level 1 \u2014 Newbie<\/span>\n<div class=\"xp-bar-wrap\"><div class=\"xp-bar-fill\" id=\"xpBarHeader\"><\/div><\/div>\n<span id=\"xpText\">0 \/ 100 XP<\/span>\n<\/div>\n<\/div>\n\n<!-- NAV -->\n<div class=\"nav-tabs\" id=\"navTabs\">\n<button class=\"nav-tab active\" onclick=\"showSection('overview',this)\">\u00dcbersicht<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('theory',this)\">Theorie<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('troubleshoot',this)\">Troubleshooting<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('scenario',this)\">Szenario<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('quiz',this)\">Quiz<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('flashcards',this)\">Lernkarten<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('commands',this)\">Befehle<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('scenarios',this)\">Szenarien<\/button>\n<button class=\"nav-tab\" onclick=\"showSection('achievements',this)\">Fortschritt<\/button>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 OVERVIEW \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section active\" id=\"overview\">\n<h2 class=\"section-title\">Pr\u00fcfungsthemen<\/h2>\n<p class=\"section-subtitle\">Alle relevanten Bereiche f\u00fcr die Klassenarbeit im \u00dcberblick.<\/p>\n\n<div class=\"topic-grid\">\n<div class=\"topic-item\"><strong>Kabelgebundene Anbindung<\/strong><span>Ethernet, Kabeltypen, physische Verbindung<\/span><\/div>\n<div class=\"topic-item\"><strong>WLAN-Anbindung<\/strong><span>SSID, WPA2, AP-Modus konfigurieren<\/span><\/div>\n<div class=\"topic-item\"><strong>Statische IPv4<\/strong><span>IP, Subnetzmaske, Gateway, DNS manuell<\/span><\/div>\n<div class=\"topic-item\"><strong>DHCP &#038; DNS<\/strong><span>Automatische IP-Vergabe, Namensaufl\u00f6sung<\/span><\/div>\n<div class=\"topic-item\"><strong>IPv6-Adressierung<\/strong><span>Endger\u00e4te in IPv6-Netzwerk einbinden<\/span><\/div>\n<div class=\"topic-item\"><strong>Drucker einrichten<\/strong><span>Netzwerkdrucker erreichbar machen<\/span><\/div>\n<div class=\"topic-item\"><strong>Troubleshooting<\/strong><span>Follow-the-path, systematische Fehlersuche<\/span><\/div>\n<div class=\"topic-item\"><strong>Dokumentation<\/strong><span>Arbeitsschritte, Tests, Ergebnisse<\/span><\/div>\n<\/div>\n\n<div style=\"margin-top:2.5rem;\">\n<div class=\"info-box success\"><strong>Immer testen.<\/strong> Nach jeder Konfiguration einen Ping ausf\u00fchren.<\/div>\n<div class=\"info-box warning\"><strong>Dokumentation nicht vergessen.<\/strong> Jeden Schritt und jedes Testergebnis notieren.<\/div>\n<div class=\"info-box danger\"><strong>H\u00e4ufige Fehler:<\/strong> Falsches Gateway, IP nicht im selben Netz, DHCP nicht erneuert, WLAN-Router nicht als AP.<\/div>\n<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 THEORY \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"theory\">\n<h2 class=\"section-title\">Theorie<\/h2>\n<p class=\"section-subtitle\">Kompakte Zusammenfassungen zu allen pr\u00fcfungsrelevanten Themen.<\/p>\n\n<div class=\"card\">\n<h2>Kabelgebundene Anbindung<\/h2>\n<h3>Kabeltypen in Packet Tracer<\/h3>\n<table>\n<tr><th>Kabeltyp<\/th><th>Verwendung<\/th><th>Beispiel<\/th><\/tr>\n<tr><td>Straight-Through<\/td><td>Unterschiedliche Ger\u00e4te<\/td><td>PC \u2192 Switch<\/td><\/tr>\n<tr><td>Crossover<\/td><td>Gleiche Ger\u00e4te<\/td><td>PC \u2192 PC<\/td><\/tr>\n<tr><td>Console<\/td><td>Konfiguration<\/td><td>PC \u2192 Router (Console)<\/td><\/tr>\n<\/table>\n<div class=\"info-box\">In der Pr\u00fcfung das automatische Kabel vermeiden \u2014 zeige, dass du den richtigen Typ kennst.<\/div>\n<h3>Schritt f\u00fcr Schritt<\/h3>\n<ol style=\"margin-left:1.2rem;font-size:0.88rem;\">\n<li>PC platzieren<\/li>\n<li>Straight-Through-Kabel w\u00e4hlen<\/li>\n<li>Kabel von PC (FastEthernet0) zum Switch ziehen<\/li>\n<li>Warten bis Verbindung gr\u00fcn leuchtet<\/li>\n<li>IP-Adresse konfigurieren<\/li>\n<li>Verbindung mit <code>ping<\/code> testen<\/li>\n<\/ol>\n<\/div>\n\n<div class=\"card\">\n<h2>WLAN-Anbindung<\/h2>\n<h3>Router-Modus vs. Access Point<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Router-Modus<\/th><th>AP-Modus<\/th><\/tr>\n<tr><td>DHCP<\/td><td>Eigener DHCP-Server<\/td><td>Nutzt externen DHCP<\/td><\/tr>\n<tr><td>NAT<\/td><td>Ja<\/td><td>Nein<\/td><\/tr>\n<tr><td>Eigenes Subnetz<\/td><td>Ja<\/td><td>Nein<\/td><\/tr>\n<\/table>\n<div class=\"info-box warning\"><strong>Pr\u00fcfungsrelevant:<\/strong> WLAN-Router in bestehendem Netzwerk \u2192 auf AP-Modus setzen!<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>Statische IPv4-Adressierung<\/h2>\n<div class=\"command-box\">\n<span class=\"comment\">\/\/ Beispiel:<\/span><br>\nIP-Adresse:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"cmd\">192.168.1.10<\/span><br>\nSubnetzmaske:&nbsp;&nbsp;&nbsp;<span class=\"cmd\">255.255.255.0<\/span> (\/24)<br>\nStandard-Gateway: <span class=\"cmd\">192.168.1.1<\/span><br>\nDNS-Server:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"cmd\">192.168.1.2<\/span>\n<\/div>\n<h3>Netzanteil vs. Hostanteil<\/h3>\n<table>\n<tr><th>IP-Adresse<\/th><th>Netzanteil<\/th><th>Hostanteil<\/th><th>Selbes Netz?<\/th><\/tr>\n<tr><td>192.168.1.10<\/td><td>192.168.1<\/td><td>.10<\/td><td style=\"color:var(--success);font-weight:600\">Ja \u2713<\/td><\/tr>\n<tr><td>192.168.1.20<\/td><td>192.168.1<\/td><td>.20<\/td><td style=\"color:var(--success);font-weight:600\">Ja \u2713<\/td><\/tr>\n<tr><td>192.168.2.10<\/td><td>192.168.2<\/td><td>.10<\/td><td style=\"color:var(--danger);font-weight:600\">Nein \u2717<\/td><\/tr>\n<\/table>\n<div class=\"info-box danger\"><strong>H\u00e4ufiger Fehler:<\/strong> Unterschiedliche Netzanteile \u2192 keine direkte Kommunikation!<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>DHCP &#038; DNS Server<\/h2>\n<h3>DHCP-Server einrichten<\/h3>\n<ol style=\"margin-left:1.2rem;font-size:0.88rem;\">\n<li>Server platzieren und verbinden<\/li>\n<li>Server \u2192 Services \u2192 DHCP<\/li>\n<li>Pool Name, Default Gateway, DNS, Start IP festlegen<\/li>\n<li>Service auf ON stellen<\/li>\n<li>Client: IP-Konfiguration auf DHCP<\/li>\n<\/ol>\n<h3>DNS-Server einrichten<\/h3>\n<ol style=\"margin-left:1.2rem;font-size:0.88rem;\">\n<li>Server \u2192 Services \u2192 DNS<\/li>\n<li>Service auf ON<\/li>\n<li>A-Record hinzuf\u00fcgen: Name + IP<\/li>\n<\/ol>\n<\/div>\n\n<div class=\"card\">\n<h2>IPv6-Adressierung<\/h2>\n<div class=\"command-box\">\n<span class=\"comment\">\/\/ Vollst\u00e4ndig:<\/span><br>\n<span class=\"cmd\">2001:0db8:85a3:0000:0000:8a2e:0370:7334<\/span><br><br>\n<span class=\"comment\">\/\/ Gek\u00fcrzt:<\/span><br>\n<span class=\"cmd\">2001:db8:85a3::8a2e:370:7334<\/span><br><br>\n<span class=\"comment\">\/\/ Link-Local:<\/span><br>\n<span class=\"cmd\">fe80::1<\/span>\n<\/div>\n<h3>IPv6 auf Router konfigurieren<\/h3>\n<div class=\"command-box\">\nRouter(config)# <span class=\"cmd\">ipv6 unicast-routing<\/span><br>\nRouter(config)# <span class=\"cmd\">interface GigabitEthernet0\/0<\/span><br>\nRouter(config-if)# <span class=\"cmd\">ipv6 address 2001:db8:1::1\/64<\/span><br>\nRouter(config-if)# <span class=\"cmd\">no shutdown<\/span>\n<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>Drucker im Netzwerk<\/h2>\n<ol style=\"margin-left:1.2rem;font-size:0.88rem;\">\n<li>Drucker (Printer) platzieren<\/li>\n<li>Mit Switch verbinden (Straight-Through)<\/li>\n<li>Statische IP zuweisen (z.B. 192.168.1.100)<\/li>\n<li>Gateway und DNS konfigurieren<\/li>\n<li>Von PCs aus pingen<\/li>\n<\/ol>\n<div class=\"info-box\">Drucker sollten immer eine <strong>statische IP<\/strong> haben.<\/div>\n<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 TROUBLESHOOTING \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"troubleshoot\">\n<h2 class=\"section-title\">Follow-the-Path<\/h2>\n<p class=\"section-subtitle\">Systematische Fehlersuche vom Startpunkt bis zum Ziel.<\/p>\n\n<div class=\"card\">\n<div class=\"ts-step\">\n<div class=\"ts-num\">1<\/div>\n<div class=\"ts-content\"><strong>Physical Layer pr\u00fcfen<\/strong>Kabel verbunden? Ports gr\u00fcn? WLAN aktiv?<\/div>\n<\/div>\n<div class=\"ts-step\">\n<div class=\"ts-num\">2<\/div>\n<div class=\"ts-content\"><strong>ipconfig \/all<\/strong>IP, Subnetzmaske, Gateway, DNS pr\u00fcfen\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ipconfig \/all<\/span><\/div><\/div>\n<\/div>\n<div class=\"ts-step\">\n<div class=\"ts-num\">3<\/div>\n<div class=\"ts-content\"><strong>Loopback: ping 127.0.0.1<\/strong>TCP\/IP-Stack funktioniert?\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ping 127.0.0.1<\/span><\/div><\/div>\n<\/div>\n<div class=\"ts-step\">\n<div class=\"ts-num\">4<\/div>\n<div class=\"ts-content\"><strong>Eigene IP anpingen<\/strong>Netzwerkkonfiguration korrekt?\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ping 192.168.1.10<\/span><\/div><\/div>\n<\/div>\n<div class=\"ts-step\">\n<div class=\"ts-num\">5<\/div>\n<div class=\"ts-content\"><strong>Gateway anpingen<\/strong>Router erreichbar?\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ping 192.168.1.1<\/span><\/div><\/div>\n<\/div>\n<div class=\"ts-step\">\n<div class=\"ts-num\">6<\/div>\n<div class=\"ts-content\"><strong>N\u00e4chsten Hop anpingen<\/strong>Router-Interface im Zielnetz (Mouse-Over)\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ping 10.0.0.1<\/span><\/div><\/div>\n<\/div>\n<div class=\"ts-step\">\n<div class=\"ts-num\">7<\/div>\n<div class=\"ts-content\"><strong>Zielger\u00e4t anpingen<\/strong>Drucker, Server, PC im Zielnetz\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ping 10.0.0.100<\/span><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>H\u00e4ufige Fehler &#038; L\u00f6sungen<\/h2>\n\n<div class=\"accordion\">\n<div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">Gateway fehlerhaft eingetragen<span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\">\n<p><strong>Symptom:<\/strong> Ping auf eigene IP okay, Gateway nicht erreichbar.<\/p>\n<div class=\"command-box\"><span class=\"comment\">\/\/ Falsch:<\/span> Gateway: 192.168.<span style=\"color:#ea4335\">2<\/span>.1<br><span class=\"comment\">\/\/ Richtig:<\/span> Gateway: 192.168.<span style=\"color:#4caf50\">1<\/span>.1<\/div>\n<\/div>\n<\/div>\n\n<div class=\"accordion\">\n<div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">IP-Adressen nicht im selben Netz<span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\">\n<p><strong>Symptom:<\/strong> Ger\u00e4te am selben Switch k\u00f6nnen sich nicht pingen.<\/p>\n<p><strong>L\u00f6sung:<\/strong> Netzanteile vergleichen. Bei \/24 m\u00fcssen die ersten 3 Oktette identisch sein.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"accordion\">\n<div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">Keine IP vom DHCP-Server<span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\">\n<p><strong>Symptom:<\/strong> 0.0.0.0 oder 169.254.x.x<\/p>\n<div class=\"command-box\">C:\\> <span class=\"cmd\">ipconfig \/release<\/span><br>C:\\> <span class=\"cmd\">ipconfig \/renew<\/span><\/div>\n<p>DHCP-Server pr\u00fcfen: Service ON? Pool korrekt?<\/p>\n<\/div>\n<\/div>\n\n<div class=\"accordion\">\n<div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">WLAN-Router erstellt eigenes Subnetz<span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\">\n<p><strong>Symptom:<\/strong> WLAN-Clients k\u00f6nnen kabelgebundene Ger\u00e4te nicht erreichen.<\/p>\n<p><strong>L\u00f6sung:<\/strong> WLAN-Router auf <strong>AP-Modus<\/strong> umstellen.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"accordion\">\n<div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">DNS-Aufl\u00f6sung funktioniert nicht<span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\">\n<p><strong>Symptom:<\/strong> Ping auf IP geht, auf Hostname nicht.<\/p>\n<p><strong>L\u00f6sung:<\/strong> DNS-Server-Adresse am Client pr\u00fcfen. DNS-Dienst auf Server pr\u00fcfen.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCENARIO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"scenario\">\n<h2 class=\"section-title\">\u00dcbungsszenario<\/h2>\n<p class=\"section-subtitle\">Netzwerk mit zwei Subnetzen \u2014 baue es in Packet Tracer nach.<\/p>\n\n<div class=\"network-diagram-wrap\">\n<div class=\"network-diagram\">\n<div class=\"net-row\">\n<div class=\"net-device\">\ud83d\udcbb PC1<small>192.168.1.10\/24<\/small><\/div>\n<div class=\"net-device\">\ud83d\udcbb PC2<small>DHCP<\/small><\/div>\n<div class=\"net-device wlan\">\ud83d\udcf6 Laptop<small>WLAN \/ DHCP<\/small><\/div>\n<\/div>\n<div class=\"net-line\">\u2502 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502<\/div>\n<div class=\"net-row\">\n<div class=\"net-device\">Switch 1<\/div>\n<div class=\"net-device wlan\">WLAN-Router<small>AP-Modus<\/small><\/div>\n<\/div>\n<div class=\"net-line\">\u2502<\/div>\n<div class=\"net-row\">\n<div class=\"net-device router\">Router<small>G0\/0: 192.168.1.1 \u00b7 G0\/1: 10.0.0.1<\/small><\/div>\n<\/div>\n<div class=\"net-line\">\u2502<\/div>\n<div class=\"net-row\">\n<div class=\"net-device\">Switch 2<\/div>\n<\/div>\n<div class=\"net-line\">\u2502 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2502<\/div>\n<div class=\"net-row\">\n<div class=\"net-device server\">DHCP\/DNS<small>10.0.0.2<\/small><\/div>\n<div class=\"net-device server\">Webserver<small>10.0.0.3<\/small><\/div>\n<div class=\"net-device printer\">Drucker<small>10.0.0.100<\/small><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>Aufgaben<\/h2>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">1 \u2014 Netzwerk aufbauen und verkabeln <span class=\"badge-diff easy\">Leicht<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><ol style=\"margin-left:1.2rem;font-size:0.88rem;\"><li>Alle Ger\u00e4te platzieren<\/li><li>PC1 und PC2 mit Switch1 verbinden (Straight-Through)<\/li><li>Switch1 mit Router G0\/0<\/li><li>Router G0\/1 mit Switch2<\/li><li>Server und Drucker mit Switch2<\/li><li>WLAN-Router mit Switch1<\/li><\/ol><div class=\"info-box success\">Alle Verbindungen leuchten gr\u00fcn.<\/div><\/div><\/div>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">2 \u2014 Statische IP f\u00fcr PC1 <span class=\"badge-diff easy\">Leicht<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><table><tr><th>Einstellung<\/th><th>Wert<\/th><\/tr><tr><td>IP<\/td><td>192.168.1.10<\/td><\/tr><tr><td>Maske<\/td><td>255.255.255.0<\/td><\/tr><tr><td>Gateway<\/td><td>192.168.1.1<\/td><\/tr><tr><td>DNS<\/td><td>10.0.0.2<\/td><\/tr><\/table><\/div><\/div>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">3 \u2014 DHCP-Server einrichten <span class=\"badge-diff medium\">Mittel<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><table><tr><th>Einstellung<\/th><th>Wert<\/th><\/tr><tr><td>Pool Name<\/td><td>LAN1<\/td><\/tr><tr><td>Gateway<\/td><td>192.168.1.1<\/td><\/tr><tr><td>DNS<\/td><td>10.0.0.2<\/td><\/tr><tr><td>Start IP<\/td><td>192.168.1.100<\/td><\/tr><tr><td>Maske<\/td><td>255.255.255.0<\/td><\/tr><\/table><\/div><\/div>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">4 \u2014 WLAN-Router als AP <span class=\"badge-diff medium\">Mittel<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><ol style=\"margin-left:1.2rem;font-size:0.88rem;\"><li>Bridge \/ AP-Modus aktivieren<\/li><li>SSID &#8220;Schule_WLAN&#8221; konfigurieren<\/li><li>WPA2 mit Passwort<\/li><li>Laptop: WLAN-Modul einsetzen, verbinden<\/li><li>DHCP \u2192 IP aus 192.168.1.x<\/li><\/ol><\/div><\/div>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">5 \u2014 Router konfigurieren <span class=\"badge-diff medium\">Mittel<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><div class=\"command-box\">Router> <span class=\"cmd\">enable<\/span><br>Router# <span class=\"cmd\">configure terminal<\/span><br>Router(config)# <span class=\"cmd\">interface G0\/0<\/span><br>Router(config-if)# <span class=\"cmd\">ip address 192.168.1.1 255.255.255.0<\/span><br>Router(config-if)# <span class=\"cmd\">no shutdown<\/span><br>Router(config-if)# <span class=\"cmd\">exit<\/span><br>Router(config)# <span class=\"cmd\">interface G0\/1<\/span><br>Router(config-if)# <span class=\"cmd\">ip address 10.0.0.1 255.255.255.0<\/span><br>Router(config-if)# <span class=\"cmd\">no shutdown<\/span><br>Router(config-if)# <span class=\"cmd\">end<\/span><br>Router# <span class=\"cmd\">write memory<\/span><\/div><\/div><\/div>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">6 \u2014 Drucker erreichbar machen <span class=\"badge-diff hard\">Schwer<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><ol style=\"margin-left:1.2rem;font-size:0.88rem;\"><li>Drucker: 10.0.0.100 \/ 255.255.255.0 \/ GW: 10.0.0.1<\/li><li>Von PC1: <code>ping 10.0.0.100<\/code><\/li><li>Troubleshooting bei Misserfolg<\/li><\/ol><\/div><\/div>\n\n<div class=\"accordion\"><div class=\"accordion-header\" onclick=\"toggleAccordion(this)\">7 \u2014 Fehlersuche <span class=\"badge-diff hard\">Schwer<\/span><span>\u25bc<\/span><\/div>\n<div class=\"accordion-body\"><p>PC2 kann den Drucker nicht pingen. M\u00f6gliche Fehler:<\/p><ul style=\"margin-left:1.2rem;font-size:0.88rem;\"><li>DHCP-Pool Gateway falsch<\/li><li>Router-Interface shutdown<\/li><li>Drucker Gateway falsch<\/li><li>Drucker-IP falscher Netzanteil<\/li><\/ul><p>Nutze Follow-the-Path!<\/p><\/div><\/div>\n<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 QUIZ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"quiz\">\n<h2 class=\"section-title\">Quiz<\/h2>\n<p class=\"section-subtitle\">Teste dein Wissen \u2014 w\u00e4hle die richtige Antwort.<\/p>\n\n<div style=\"margin-bottom:1.5rem;\">\n<div class=\"quiz-summary\">\n<span id=\"quizProgress\">0 \/ 15 beantwortet<\/span>\n<span id=\"quizScore\">0 Punkte<\/span>\n<\/div>\n<div class=\"quiz-bar\"><div class=\"quiz-bar-fill\" id=\"scoreFill\" style=\"width:0%\"><\/div><\/div>\n<div class=\"btn-group\"><button class=\"btn\" onclick=\"resetQuiz()\">Quiz zur\u00fccksetzen<\/button><\/div>\n<\/div>\n\n<div id=\"quizContainer\"><\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 FLASHCARDS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"flashcards\">\n<h2 class=\"section-title\">Lernkarten<\/h2>\n<p class=\"section-subtitle\">Klicke auf die Karte, um die Antwort aufzudecken.<\/p>\n\n<div id=\"flashcardContainer\">\n<div class=\"flashcard\" onclick=\"this.classList.toggle('flipped')\">\n<div class=\"flashcard-inner\">\n<div class=\"flashcard-front\">Lade Lernkarten\u2026<\/div>\n<div class=\"flashcard-back\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"fc-nav\">\n<button class=\"btn\" onclick=\"prevFlashcard()\">\u2190 Zur\u00fcck<\/button>\n<span id=\"flashcardCounter\">1 \/ 1<\/span>\n<button class=\"btn btn-accent\" onclick=\"nextFlashcard()\">Weiter \u2192<\/button>\n<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 COMMANDS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"commands\">\n<h2 class=\"section-title\">Wichtige Befehle<\/h2>\n<p class=\"section-subtitle\">Referenz f\u00fcr die Pr\u00fcfung.<\/p>\n\n<div class=\"card\">\n<h3>Windows CMD<\/h3>\n<table>\n<tr><th>Befehl<\/th><th>Beschreibung<\/th><\/tr>\n<tr><td><code>ipconfig<\/code><\/td><td>IP-Konfiguration anzeigen<\/td><\/tr>\n<tr><td><code>ipconfig \/all<\/code><\/td><td>Detaillierte Konfiguration inkl. MAC, DHCP, DNS<\/td><\/tr>\n<tr><td><code>ipconfig \/release<\/code><\/td><td>DHCP-Adresse freigeben<\/td><\/tr>\n<tr><td><code>ipconfig \/renew<\/code><\/td><td>Neue IP vom DHCP anfordern<\/td><\/tr>\n<tr><td><code>ping [IP]<\/code><\/td><td>Erreichbarkeit testen<\/td><\/tr>\n<tr><td><code>ping 127.0.0.1<\/code><\/td><td>Loopback-Test<\/td><\/tr>\n<tr><td><code>tracert [IP]<\/code><\/td><td>Route zum Ziel anzeigen<\/td><\/tr>\n<tr><td><code>nslookup [Name]<\/code><\/td><td>DNS-Abfrage<\/td><\/tr>\n<\/table>\n<\/div>\n\n<div class=\"card\">\n<h3>Cisco IOS (Router CLI)<\/h3>\n<table>\n<tr><th>Befehl<\/th><th>Beschreibung<\/th><\/tr>\n<tr><td><code>enable<\/code><\/td><td>Privilegierter Modus<\/td><\/tr>\n<tr><td><code>configure terminal<\/code><\/td><td>Konfigurationsmodus<\/td><\/tr>\n<tr><td><code>interface [Name]<\/code><\/td><td>Interface ausw\u00e4hlen<\/td><\/tr>\n<tr><td><code>ip address [IP] [Maske]<\/code><\/td><td>IPv4-Adresse zuweisen<\/td><\/tr>\n<tr><td><code>ipv6 address [Addr]\/[Prefix]<\/code><\/td><td>IPv6-Adresse zuweisen<\/td><\/tr>\n<tr><td><code>no shutdown<\/code><\/td><td>Interface aktivieren<\/td><\/tr>\n<tr><td><code>show ip interface brief<\/code><\/td><td>Interface-\u00dcbersicht<\/td><\/tr>\n<tr><td><code>show running-config<\/code><\/td><td>Aktuelle Konfiguration<\/td><\/tr>\n<tr><td><code>write memory<\/code><\/td><td>Konfiguration speichern<\/td><\/tr>\n<tr><td><code>ipv6 unicast-routing<\/code><\/td><td>IPv6-Routing aktivieren<\/td><\/tr>\n<\/table>\n<\/div>\n\n<div class=\"info-box\"><strong>Mouse-Over:<\/strong> In Packet Tracer \u00fcber Ger\u00e4te fahren, um IP-Adressen und Status zu sehen.<\/div>\n<div class=\"info-box\"><strong>Simulation Mode:<\/strong> Den Weg einzelner Pakete durch das Netzwerk verfolgen.<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCENARIOS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"scenarios\">\n<h2 class=\"section-title\">Praxis-Szenarien<\/h2>\n<p class=\"section-subtitle\">L\u00f6se die Szenarien der Reihe nach. Jedes abgeschlossene Szenario gibt XP.<\/p>\n\n<div class=\"scenario-card\" id=\"scen0\">\n<h2>1 \u2014 Einfache Verkabelung<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff easy\">Leicht<\/span><span class=\"xp-val\">+20 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">3 PCs \u00fcber einen Switch vernetzen. Statische IPs: 192.168.1.10, .11, .12 (\/24). Alle PCs m\u00fcssen sich gegenseitig pingen k\u00f6nnen.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(0,20,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen1\">\n<h2>2 \u2014 DHCP-Server aufsetzen<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff medium\">Mittel<\/span><span class=\"xp-val\">+30 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Server mit statischer IP + DHCP-Dienst. 2 PCs auf DHCP stellen und pr\u00fcfen, ob sie IPs erhalten.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(1,30,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen2\">\n<h2>3 \u2014 Zwei Netze mit Router<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff medium\">Mittel<\/span><span class=\"xp-val\">+40 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Netz A (192.168.1.0\/24) und Netz B (10.0.0.0\/24) \u00fcber Router verbinden. Cross-Netz-Ping testen.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(2,40,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen3\">\n<h2>4 \u2014 WLAN-Integration mit AP<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff medium\">Mittel<\/span><span class=\"xp-val\">+35 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Bestehendes LAN um WLAN erweitern. WLAN-Router auf AP-Modus. Laptop per WLAN verbinden. Ping zwischen Kabel und WLAN testen.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(3,35,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen4\">\n<h2>5 \u2014 Netzwerkdrucker einrichten<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff medium\">Mittel<\/span><span class=\"xp-val\">+35 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Drucker in Netz B soll von PCs in Netz A erreichbar sein. Follow-the-Path dokumentieren.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(4,35,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen5\">\n<h2>6 \u2014 DNS-Aufl\u00f6sung<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff medium\">Mittel<\/span><span class=\"xp-val\">+30 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Webserver \u00fcber &#8220;www.firma.local&#8221; erreichbar machen. DNS A-Record anlegen. Im Browser testen.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(5,30,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen6\">\n<h2>7 \u2014 IPv6-Netzwerk<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff hard\">Schwer<\/span><span class=\"xp-val\">+50 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Komplettes IPv6-Netzwerk aufbauen. Router mit ipv6 unicast-routing. PCs mit IPv6-Adressen. Ping testen.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(6,50,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen7\">\n<h2>8 \u2014 Fehlersuche: Gateway falsch<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff hard\">Schwer<\/span><span class=\"xp-val\">+45 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Absichtlich falsches Gateway eintragen. Follow-the-Path nutzen, um den Fehler zu finden und zu dokumentieren.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(7,45,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen8\">\n<h2>9 \u2014 Fehlersuche: DHCP Problem<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff hard\">Schwer<\/span><span class=\"xp-val\">+45 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">PC bekommt 169.254.x.x. DHCP-Dienst pr\u00fcfen, ipconfig \/release + \/renew, Fehler beheben.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(8,45,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n\n<div class=\"scenario-card\" id=\"scen9\">\n<h2>10 \u2014 Komplettszenario: Pr\u00fcfungssimulation<\/h2>\n<div class=\"scenario-meta\"><span class=\"badge-diff hard\">Schwer<\/span><span class=\"xp-val\">+80 XP<\/span><\/div>\n<p style=\"font-size:0.88rem;\">Das vollst\u00e4ndige Netzwerk aufbauen: Kabel + WLAN, Router, DHCP, DNS, Drucker, Webserver. Alles testen und dokumentieren. Einen Fehler einbauen, finden und beheben.<\/p>\n<div class=\"scenario-check\"><label><input type=\"checkbox\" onchange=\"completeScenario(9,80,this)\"> Szenario abgeschlossen<\/label><\/div>\n<\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 ACHIEVEMENTS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"section\" id=\"achievements\">\n<h2 class=\"section-title\">Fortschritt<\/h2>\n<p class=\"section-subtitle\">Dein aktueller Stand und freigeschaltete Achievements.<\/p>\n\n<div class=\"card\">\n<div style=\"display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;\">\n<div style=\"font-size:3rem;\" id=\"levelIcon\">\u2b50<\/div>\n<div>\n<div style=\"font-family:'Playfair Display',serif;font-size:1.6rem;\" id=\"levelTitle\">Level 1 \u2014 Newbie<\/div>\n<div style=\"color:var(--text-muted);font-size:0.85rem;\" id=\"levelSubtitle\">Starte mit den Szenarien, um XP zu sammeln.<\/div>\n<\/div>\n<\/div>\n<div style=\"margin-top:1.5rem;\">\n<div class=\"xp-bar-wrap\" style=\"height:6px;width:100%;\"><div class=\"xp-bar-fill\" id=\"xpBarMain\" style=\"height:100%;\"><\/div><\/div>\n<div class=\"quiz-summary\" style=\"margin-top:0.5rem;\">\n<span id=\"xpDetail\">0 \/ 100 XP bis Level 2<\/span>\n<span id=\"totalXP\">Gesamt: 0 XP<\/span>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>Achievements<\/h2>\n<div class=\"achievement-grid\" id=\"achievementList\"><\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>Statistiken<\/h2>\n<div class=\"stat-grid\">\n<div class=\"stat-item\"><div class=\"stat-val\" id=\"statScenarios\">0<\/div><div class=\"stat-label\">Szenarien<\/div><\/div>\n<div class=\"stat-item\"><div class=\"stat-val\" id=\"statQuiz\">0<\/div><div class=\"stat-label\">Quiz richtig<\/div><\/div>\n<div class=\"stat-item\"><div class=\"stat-val\" id=\"statCards\">0<\/div><div class=\"stat-label\">Lernkarten<\/div><\/div>\n<div class=\"stat-item\"><div class=\"stat-val\" id=\"statXP\">0<\/div><div class=\"stat-label\">Gesamt XP<\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"card\">\n<h2>Zur\u00fccksetzen<\/h2>\n<p style=\"font-size:0.88rem;color:var(--text-light);margin-bottom:1rem;\">Setzt alle Fortschritte, XP und Achievements zur\u00fcck.<\/p>\n<button class=\"btn btn-danger\" onclick=\"if(confirm('Wirklich alles zur\u00fccksetzen?')){localStorage.clear();location.reload();}\">Alles zur\u00fccksetzen<\/button>\n<\/div>\n<\/div>\n\n<\/div><!-- \/module-wrapper -->\n\n<script>\n\/\/ \u2500\u2500\u2500 NAVIGATION \u2500\u2500\u2500\nfunction showSection(id, el) {\n  document.querySelectorAll('.section').forEach(s => s.classList.remove('active'));\n  document.querySelectorAll('.nav-tab').forEach(t => t.classList.remove('active'));\n  document.getElementById(id).classList.add('active');\n  if(el) el.classList.add('active');\n}\n\nfunction toggleAccordion(el) {\n  const body = el.nextElementSibling;\n  body.classList.toggle('open');\n  const arrow = el.querySelector('span:last-child');\n  if(arrow) arrow.textContent = body.classList.contains('open') ? '\u25b2' : '\u25bc';\n}\n\n\/\/ \u2500\u2500\u2500 GAMIFICATION STATE \u2500\u2500\u2500\nconst levels = [\n  {name:'Newbie', xp:0, icon:'\u2b50'},\n  {name:'Kabel-Lehrling', xp:100, icon:'\ud83d\udd0c'},\n  {name:'IP-Kenner', xp:250, icon:'\ud83d\udd22'},\n  {name:'Netzwerk-Techniker', xp:450, icon:'\ud83d\udda7'},\n  {name:'Troubleshooter', xp:700, icon:'\ud83d\udd0d'},\n  {name:'Netzwerk-Meister', xp:1000, icon:'\ud83c\udfc6'}\n];\n\nconst achievementsDef = [\n  {id:'first_scenario', name:'Erster Schritt', desc:'Erstes Szenario abgeschlossen', icon:'\ud83c\udfaf'},\n  {id:'three_scenarios', name:'Auf dem Weg', desc:'3 Szenarien abgeschlossen', icon:'\ud83d\udcc8'},\n  {id:'all_scenarios', name:'Komplett', desc:'Alle 10 Szenarien abgeschlossen', icon:'\ud83c\udf1f'},\n  {id:'quiz_5', name:'Quizmaster', desc:'5 Quiz-Fragen richtig', icon:'\ud83e\udde0'},\n  {id:'quiz_all', name:'Perfektes Quiz', desc:'Alle Quiz-Fragen richtig', icon:'\ud83d\udcaf'},\n  {id:'max_level', name:'Meisterklasse', desc:'Maximales Level erreicht', icon:'\ud83d\udc51'},\n  {id:'flashcard_all', name:'Kartenk\u00f6nig', desc:'Alle Lernkarten angesehen', icon:'\ud83c\udccf'},\n  {id:'troubleshooter', name:'Fehlersucher', desc:'Beide Troubleshooting-Szenarien gel\u00f6st', icon:'\ud83d\udd27'}\n];\n\nlet state = JSON.parse(localStorage.getItem('itskill_state')) || {\n  xp: 0,\n  completedScenarios: [],\n  quizCorrect: 0,\n  quizAnswered: [],\n  flashcardsSeen: [],\n  achievements: []\n};\n\nfunction saveState() { localStorage.setItem('itskill_state', JSON.stringify(state)); }\n\nfunction getLevel() {\n  let lvl = 0;\n  for(let i = levels.length-1; i >= 0; i--) { if(state.xp >= levels[i].xp) { lvl = i; break; } }\n  return lvl;\n}\n\nfunction addXP(amount) {\n  state.xp += amount;\n  saveState();\n  updateUI();\n  showXPPopup(amount);\n  checkAchievements();\n}\n\nfunction showXPPopup(amount) {\n  const p = document.getElementById('xpPopup');\n  p.textContent = `+${amount} XP`;\n  p.classList.add('show');\n  setTimeout(() => p.classList.remove('show'), 1500);\n}\n\nfunction updateUI() {\n  const lvl = getLevel();\n  const l = levels[lvl];\n  const nextLvl = lvl < levels.length-1 ? levels[lvl+1] : null;\n  const xpInLevel = state.xp - l.xp;\n  const xpNeeded = nextLvl ? nextLvl.xp - l.xp : 1;\n  const pct = nextLvl ? Math.min(100, (xpInLevel\/xpNeeded)*100) : 100;\n\n  document.getElementById('levelBadge').textContent = `Level ${lvl+1} \u2014 ${l.name}`;\n  document.getElementById('xpText').textContent = nextLvl ? `${xpInLevel} \/ ${xpNeeded} XP` : 'MAX';\n  document.getElementById('xpBarHeader').style.width = pct+'%';\n\n  document.getElementById('levelIcon').textContent = l.icon;\n  document.getElementById('levelTitle').textContent = `Level ${lvl+1} \u2014 ${l.name}`;\n  document.getElementById('levelSubtitle').textContent = nextLvl ? `Noch ${xpNeeded-xpInLevel} XP bis Level ${lvl+2}` : 'Maximales Level erreicht!';\n  document.getElementById('xpBarMain').style.width = pct+'%';\n  document.getElementById('xpDetail').textContent = nextLvl ? `${xpInLevel} \/ ${xpNeeded} XP bis Level ${lvl+2}` : 'MAX';\n  document.getElementById('totalXP').textContent = `Gesamt: ${state.xp} XP`;\n\n  document.getElementById('statScenarios').textContent = state.completedScenarios.length;\n  document.getElementById('statQuiz').textContent = state.quizCorrect;\n  document.getElementById('statCards').textContent = state.flashcardsSeen.length;\n  document.getElementById('statXP').textContent = state.xp;\n\n  \/\/ restore scenario checkboxes\n  state.completedScenarios.forEach(i => {\n    const el = document.querySelector(`#scen${i} input[type=\"checkbox\"]`);\n    if(el) { el.checked = true; el.disabled = true; }\n  });\n\n  renderAchievements();\n}\n\nfunction completeScenario(idx, xp, el) {\n  if(state.completedScenarios.includes(idx)) return;\n  state.completedScenarios.push(idx);\n  el.disabled = true;\n  addXP(xp);\n}\n\nfunction checkAchievements() {\n  const unlock = (id) => { if(!state.achievements.includes(id)) { state.achievements.push(id); saveState(); } };\n  if(state.completedScenarios.length >= 1) unlock('first_scenario');\n  if(state.completedScenarios.length >= 3) unlock('three_scenarios');\n  if(state.completedScenarios.length >= 10) unlock('all_scenarios');\n  if(state.quizCorrect >= 5) unlock('quiz_5');\n  if(state.quizCorrect >= 15) unlock('quiz_all');\n  if(getLevel() >= 5) unlock('max_level');\n  if(state.flashcardsSeen.length >= flashcardData.length) unlock('flashcard_all');\n  if(state.completedScenarios.includes(7) && state.completedScenarios.includes(8)) unlock('troubleshooter');\n  renderAchievements();\n}\n\nfunction renderAchievements() {\n  const c = document.getElementById('achievementList');\n  c.innerHTML = achievementsDef.map(a => {\n    const unlocked = state.achievements.includes(a.id);\n    return `<div class=\"achievement-item ${unlocked?'unlocked':'locked'}\"><div class=\"ach-icon\">${a.icon}<\/div><div class=\"ach-name\">${a.name}<\/div><div class=\"ach-desc\">${a.desc}<\/div><\/div>`;\n  }).join('');\n}\n\n\/\/ \u2500\u2500\u2500 QUIZ \u2500\u2500\u2500\nconst quizData = [\n  {q:\"Welches Kabel verbindet einen PC mit einem Switch?\",options:[\"Crossover\",\"Straight-Through\",\"Console\",\"Glasfaser\"],correct:1,category:\"Verkabelung\",explanation:\"Unterschiedliche Ger\u00e4te \u2192 Straight-Through.\"},\n  {q:\"Was pr\u00fcft 'ping 127.0.0.1'?\",options:[\"Gateway-Erreichbarkeit\",\"DNS-Server\",\"TCP\/IP-Stack (Loopback)\",\"Internetverbindung\"],correct:2,category:\"Troubleshooting\",explanation:\"127.0.0.1 = Loopback. Pr\u00fcft den lokalen TCP\/IP-Stack.\"},\n  {q:\"PC1: 192.168.1.10\/24, PC2: 192.168.2.20\/24 \u2014 direkte Kommunikation?\",options:[\"Ja\",\"Nein, unterschiedliche Netze\",\"Nur per WLAN\",\"Nur mit DNS\"],correct:1,category:\"IP-Adressen\",explanation:\"Netzanteile 192.168.1 vs. 192.168.2 \u2014 unterschiedlich.\"},\n  {q:\"Wof\u00fcr steht DHCP?\",options:[\"Domain Host Configuration Protocol\",\"Dynamic Host Configuration Protocol\",\"Dynamic Hyper Connection Protocol\",\"Direct Host Control Protocol\"],correct:1,category:\"DHCP\/DNS\",explanation:\"Dynamic Host Configuration Protocol \u2014 automatische IP-Vergabe.\"},\n  {q:\"IP 169.254.x.x bedeutet?\",options:[\"IPv6-Adresse\",\"DHCP hat IP vergeben\",\"Kein DHCP-Server erreichbar (APIPA)\",\"Normale private IP\"],correct:2,category:\"DHCP\/DNS\",explanation:\"APIPA-Adresse \u2014 kein DHCP-Server erreichbar.\"},\n  {q:\"Neue IP vom DHCP anfordern?\",options:[\"ipconfig \/all\",\"ipconfig \/renew\",\"ping dhcp\",\"nslookup \/renew\"],correct:1,category:\"Befehle\",explanation:\"ipconfig \/renew fordert eine neue IP vom DHCP-Server an.\"},\n  {q:\"Warum WLAN-Router auf AP-Modus?\",options:[\"Schnellere Verbindung\",\"Kein eigenes Subnetz erstellen\",\"WLAN verschl\u00fcsseln\",\"IPv6 unterst\u00fctzen\"],correct:1,category:\"WLAN\",explanation:\"Im AP-Modus kein eigenes Subnetz\/NAT \u2014 Clients im bestehenden Netz.\"},\n  {q:\"Was macht ein DNS-Server?\",options:[\"Vergibt IPs\",\"\u00dcbersetzt Namen in IPs\",\"Verschl\u00fcsselt Verkehr\",\"Routet Pakete\"],correct:1,category:\"DHCP\/DNS\",explanation:\"DNS l\u00f6st Hostnamen in IP-Adressen auf.\"},\n  {q:\"Welche IPv6-Adresse beginnt mit fe80::?\",options:[\"Global Unicast\",\"Multicast\",\"Link-Local\",\"Loopback\"],correct:2,category:\"IPv6\",explanation:\"fe80:: = Link-Local-Adresse, nur im lokalen Segment g\u00fcltig.\"},\n  {q:\"Welcher Befehl aktiviert ein Router-Interface?\",options:[\"ip address\",\"enable\",\"no shutdown\",\"write memory\"],correct:2,category:\"Router CLI\",explanation:\"'no shutdown' aktiviert ein Interface auf dem Router.\"},\n  {q:\"Subnetzmaske 255.255.255.0 entspricht welchem Prefix?\",options:[\"\/8\",\"\/16\",\"\/24\",\"\/32\"],correct:2,category:\"IP-Adressen\",explanation:\"255.255.255.0 = 24 gesetzte Bits = \/24.\"},\n  {q:\"Warum statische IP f\u00fcr Drucker?\",options:[\"Schnellerer Druck\",\"Drucker k\u00f6nnen kein DHCP\",\"Zuverl\u00e4ssige Erreichbarkeit\",\"Weniger Toner-Verbrauch\"],correct:2,category:\"Drucker\",explanation:\"Statische IP = Drucker immer unter gleicher Adresse erreichbar.\"},\n  {q:\"Welcher Befehl zeigt die Route zum Ziel?\",options:[\"ping\",\"ipconfig\",\"tracert\",\"nslookup\"],correct:2,category:\"Befehle\",explanation:\"tracert zeigt alle Hops auf dem Weg zum Ziel.\"},\n  {q:\"IPv6 unicast-routing auf Router aktivieren \u2014 wozu?\",options:[\"IPv4 deaktivieren\",\"IPv6-Pakete weiterleiten\",\"DNS aktivieren\",\"DHCP starten\"],correct:1,category:\"IPv6\",explanation:\"Ohne 'ipv6 unicast-routing' leitet der Router keine IPv6-Pakete weiter.\"},\n  {q:\"Erster Schritt beim Follow-the-Path?\",options:[\"ping Gateway\",\"DNS pr\u00fcfen\",\"Physical Layer pr\u00fcfen\",\"tracert ausf\u00fchren\"],correct:2,category:\"Troubleshooting\",explanation:\"Immer zuerst physische Verbindung pr\u00fcfen: Kabel, Ports, WLAN.\"}\n];\n\nlet quizAnswered = new Set(state.quizAnswered || []);\n\nfunction renderQuiz() {\n  const c = document.getElementById('quizContainer');\n  c.innerHTML = quizData.map((q,i) => {\n    const answered = quizAnswered.has(i);\n    return `<div class=\"quiz-question\" id=\"qq${i}\">\n      <div class=\"q-header\">\n        <span class=\"q-number\">${i+1}<\/span>\n        <span class=\"q-text\">${q.q}<\/span>\n        <span class=\"q-category\">${q.category}<\/span>\n      <\/div>\n      <ul class=\"options\">${q.options.map((o,j) => `<li onclick=\"answerQuiz(${i},${j})\" ${answered?'style=\"pointer-events:none\"':''}>${o}<\/li>`).join('')}<\/ul>\n      <div class=\"explanation\" id=\"exp${i}\">${q.explanation}<\/div>\n    <\/div>`;\n  }).join('');\n\n  \/\/ restore answered\n  quizAnswered.forEach(i => {\n    const qq = document.getElementById('qq'+i);\n    if(!qq) return;\n    const lis = qq.querySelectorAll('.options li');\n    \/\/ We don't know which was selected, just mark correct\n    lis[quizData[i].correct].classList.add('correct');\n    lis.forEach(li => li.style.pointerEvents = 'none');\n    const exp = document.getElementById('exp'+i);\n    exp.classList.add('show','correct-exp');\n  });\n  updateQuizUI();\n}\n\nfunction answerQuiz(qi, ai) {\n  if(quizAnswered.has(qi)) return;\n  quizAnswered.add(qi);\n  const q = quizData[qi];\n  const qq = document.getElementById('qq'+qi);\n  const lis = qq.querySelectorAll('.options li');\n  const exp = document.getElementById('exp'+qi);\n\n  lis.forEach(li => li.style.pointerEvents = 'none');\n\n  if(ai === q.correct) {\n    lis[ai].classList.add('correct');\n    exp.classList.add('show','correct-exp');\n    state.quizCorrect++;\n    addXP(10);\n  } else {\n    lis[ai].classList.add('wrong');\n    lis[q.correct].classList.add('correct');\n    exp.classList.add('show','wrong-exp');\n  }\n\n  state.quizAnswered = [...quizAnswered];\n  saveState();\n  updateQuizUI();\n  checkAchievements();\n}\n\nfunction updateQuizUI() {\n  document.getElementById('quizProgress').textContent = `${quizAnswered.size} \/ ${quizData.length} beantwortet`;\n  document.getElementById('quizScore').textContent = `${state.quizCorrect} Punkte`;\n  document.getElementById('scoreFill').style.width = (quizAnswered.size\/quizData.length*100)+'%';\n}\n\nfunction resetQuiz() {\n  quizAnswered = new Set();\n  state.quizAnswered = [];\n  state.quizCorrect = 0;\n  saveState();\n  renderQuiz();\n  updateUI();\n}\n\n\/\/ \u2500\u2500\u2500 FLASHCARDS \u2500\u2500\u2500\nconst flashcardData = [\n  {front:\"Was ist ein Straight-Through-Kabel?\", back:\"Verbindet unterschiedliche Ger\u00e4te, z.B. PC \u2192 Switch. Die Adern sind 1:1 durchverbunden.\"},\n  {front:\"Was macht ipconfig \/all?\", back:\"Zeigt die vollst\u00e4ndige Netzwerkkonfiguration: IP, Maske, Gateway, DNS, MAC-Adresse, DHCP-Status.\"},\n  {front:\"Was ist der Loopback-Test?\", back:\"ping 127.0.0.1 \u2014 Testet, ob der TCP\/IP-Stack auf dem eigenen Rechner funktioniert.\"},\n  {front:\"Was ist APIPA?\", back:\"Automatic Private IP Addressing. Wenn kein DHCP erreichbar ist, vergibt sich der PC eine 169.254.x.x-Adresse.\"},\n  {front:\"Wann AP-Modus f\u00fcr WLAN-Router?\", back:\"Wenn der WLAN-Router in ein bestehendes Netzwerk integriert werden soll, ohne ein eigenes Subnetz zu erstellen.\"},\n  {front:\"Was macht DNS?\", back:\"Domain Name System \u2014 \u00fcbersetzt Hostnamen (z.B. www.firma.local) in IP-Adressen.\"},\n  {front:\"Was ist eine Link-Local-Adresse (IPv6)?\", back:\"fe80::-Adresse, automatisch vergeben, nur im lokalen Netzwerksegment g\u00fcltig.\"},\n  {front:\"Was bedeutet \/24?\", back:\"Subnetzmaske mit 24 gesetzten Bits = 255.255.255.0. Die ersten 3 Oktette sind der Netzanteil.\"},\n  {front:\"Warum statische IP f\u00fcr Drucker?\", back:\"Damit der Drucker immer unter der gleichen Adresse erreichbar ist. DHCP k\u00f6nnte eine neue IP vergeben.\"},\n  {front:\"Was ist 'no shutdown'?\", back:\"Cisco-IOS-Befehl, der ein Router-Interface aktiviert. Ohne diesen Befehl bleibt das Interface deaktiviert.\"},\n  {front:\"Wie fordere ich eine neue DHCP-IP an?\", back:\"ipconfig \/release (aktuelle freigeben), dann ipconfig \/renew (neue anfordern).\"},\n  {front:\"Was pr\u00fcfe ich beim Follow-the-Path zuerst?\", back:\"Physical Layer: Kabel richtig verbunden? Ports leuchten gr\u00fcn? WLAN aktiv?\"}\n];\n\nlet currentCard = 0;\n\nfunction renderFlashcard() {\n  const fc = flashcardData[currentCard];\n  const container = document.getElementById('flashcardContainer');\n  container.innerHTML = `<div class=\"flashcard\" onclick=\"this.classList.toggle('flipped')\">\n    <div class=\"flashcard-inner\">\n      <div class=\"flashcard-front\">${fc.front}<\/div>\n      <div class=\"flashcard-back\">${fc.back}<\/div>\n    <\/div>\n  <\/div>`;\n  document.getElementById('flashcardCounter').textContent = `${currentCard+1} \/ ${flashcardData.length}`;\n\n  if(!state.flashcardsSeen.includes(currentCard)) {\n    state.flashcardsSeen.push(currentCard);\n    saveState();\n    updateUI();\n    checkAchievements();\n  }\n}\n\nfunction nextFlashcard() {\n  currentCard = (currentCard + 1) % flashcardData.length;\n  renderFlashcard();\n}\nfunction prevFlashcard() {\n  currentCard = (currentCard - 1 + flashcardData.length) % flashcardData.length;\n  renderFlashcard();\n}\n\n\/\/ \u2500\u2500\u2500 INIT \u2500\u2500\u2500\nrenderQuiz();\nrenderFlashcard();\nupdateUI();\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>IT-Skilltrainer IT-Skilltrainer Netzwerktechnik \u00b7 Packet Tracer \u00b7 Klassenarbeitsvorbereitung Level 1 \u2014 Newbie 0 \/ 100 XP \u00dcbersicht Theorie Troubleshooting Szenario Quiz Lernkarten Befehle Szenarien Fortschritt Pr\u00fcfungsthemen Alle relevanten Bereiche f\u00fcr die Klassenarbeit im \u00dcberblick. Kabelgebundene AnbindungEthernet, Kabeltypen, physische Verbindung WLAN-AnbindungSSID, WPA2, AP-Modus konfigurieren Statische IPv4IP, Subnetzmaske, Gateway, DNS manuell DHCP &#038; DNSAutomatische IP-Vergabe, Namensaufl\u00f6sung IPv6-AdressierungEndger\u00e4te [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-191","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/pages\/191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/comments?post=191"}],"version-history":[{"count":2,"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/pages\/191\/revisions"}],"predecessor-version":[{"id":193,"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/pages\/191\/revisions\/193"}],"wp:attachment":[{"href":"https:\/\/rexstarlabs.work\/index.php\/wp-json\/wp\/v2\/media?parent=191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}