{"id":10444,"date":"2026-08-15T14:39:54","date_gmt":"2026-08-15T12:39:54","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/werkzeuge\/multi-wan-failover-policy-planner\/"},"modified":"2026-08-15T14:49:09","modified_gmt":"2026-08-15T12:49:09","slug":"multi-wan-failover-policy-planner","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/","title":{"rendered":"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln"},"content":{"rendered":"<div class=\"gtm-analyser-container\" style=\"background: var(--bg-panel, #1e1e24); padding: 25px; border-radius: 8px; border: 1px solid var(--border, #2a2a35);\">\n<p style=\"color: var(--text-secondary, #a0a0b0); margin-bottom: 20px;\">Ein zweiter Anschluss wird f\u00fcr den Tag gekauft, an dem der erste ausf\u00e4llt, und an diesem Tag entscheiden zwei Dinge, ob er hilft: wie lange die Umschaltung dauert und ob die Regeln darunter noch dorthin zeigen, wohin sie sollten. Beides ist Rechnen, und beides pr\u00fcft sich hier leichter als um drei Uhr nachts.<\/p>\n<div style=\"display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 18px;\">\n<div>\n            <label for=\"mv-intervall\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Pr\u00fcfung alle (s)<\/label><br \/>\n            <input id=\"mv-intervall\" type=\"number\" min=\"1\" max=\"120\" step=\"1\" value=\"5\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"mv-fehler\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Fehlversuche bis zur Umschaltung<\/label><br \/>\n            <input id=\"mv-fehler\" type=\"number\" min=\"1\" max=\"20\" step=\"1\" value=\"3\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"mv-erfolge\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Erfolge bis zur R\u00fcckschaltung<\/label><br \/>\n            <input id=\"mv-erfolge\" type=\"number\" min=\"1\" max=\"20\" step=\"1\" value=\"5\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"mv-ziele\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Pr\u00fcfziele<\/label><br \/>\n            <select id=\"mv-ziele\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\"><option value=\"verschieden\" selected>je Anschluss verschieden<\/option><option value=\"gleich\">auf beiden dasselbe<\/option><\/select>\n        <\/div>\n<div>\n            <label for=\"mv-volumen\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Datenvolumen des Ersatzes (GB)<\/label><br \/>\n            <input id=\"mv-volumen\" type=\"number\" min=\"0\" max=\"10000\" step=\"1\" value=\"50\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<div>\n            <label for=\"mv-last\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">\u00dcbliche Last (Mbit\/s)<\/label><br \/>\n            <input id=\"mv-last\" type=\"number\" min=\"0.1\" max=\"1000\" step=\"0.1\" value=\"6\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box;\">\n        <\/div>\n<\/p><\/div>\n<div style=\"font-family: 'Nunito Sans', sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.92rem; margin-bottom: 8px;\">Richtlinienregeln, der Reihe nach<\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.82rem; margin-bottom: 10px;\">Die erste passende Regel gewinnt, genau wie auf der Konsole. Eine Regel, die alles abdeckt, macht jede engere darunter unerreichbar.<\/p>\n<div id=\"mv-regeln\" style=\"display: grid; grid-template-columns: auto 1fr 1fr 1fr auto; gap: 6px 10px; align-items: center; margin-bottom: 18px;\"><\/div>\n<p>    <button id=\"mv-btn\" class=\"button\" style=\"background: var(--accent, #7ee787); color: #0b1114; border: none; padding: 12px 24px; border-radius: 6px; font-weight: 700; cursor: pointer;\">Ausfallsicherung planen<\/button><\/p>\n<div id=\"mv-ausgabe\" style=\"margin-top: 22px;\"><\/div>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"Ein zweiter Anschluss wird f\u00fcr den Tag gekauft, an dem der erste ausf\u00e4llt, und an diesem Tag entscheiden zwei Dinge, ob er hilft: wie lange die Umschaltung dauert und ob die Regeln darunter noch dorthin zeigen, wohin sie sollten. Beides ist Rechnen, und beides pr\u00fcft sich hier leichter als um drei Uhr nachts.\",\"label_intervall\":\"Pr\u00fcfung alle (s)\",\"label_fehler\":\"Fehlversuche bis zur Umschaltung\",\"label_erfolge\":\"Erfolge bis zur R\u00fcckschaltung\",\"label_ziele\":\"Pr\u00fcfziele\",\"ziele_verschieden\":\"je Anschluss verschieden\",\"ziele_gleich\":\"auf beiden dasselbe\",\"label_volumen\":\"Datenvolumen des Ersatzes (GB)\",\"label_last\":\"\u00dcbliche Last (Mbit\\\/s)\",\"h_regeln\":\"Richtlinienregeln, der Reihe nach\",\"regeln_hinweis\":\"Die erste passende Regel gewinnt, genau wie auf der Konsole. Eine Regel, die alles abdeckt, macht jede engere darunter unerreichbar.\",\"spalte_bereich\":\"Quelle\",\"spalte_dienst\":\"Verkehr\",\"spalte_wan\":\"Anschluss\",\"spalte_ausweichen\":\"darf ausweichen\",\"bereich_alle\":\"alles\",\"bereich_lan\":\"LAN\",\"bereich_iot\":\"IoT\",\"bereich_gaeste\":\"G\u00e4ste\",\"bereich_voip\":\"VoIP-Netz\",\"dienst_alle\":\"aller Verkehr\",\"dienst_voip\":\"VoIP\",\"dienst_video\":\"Video\",\"dienst_sicherung\":\"Sicherung\",\"wan_wan1\":\"WAN1\",\"wan_wan2\":\"WAN2\",\"fest\":\"(fest)\",\"knopf\":\"Ausfallsicherung planen\",\"h_zeiten\":\"Zeiten\",\"zeile_umschalt\":\"Zeit bis zur Umschaltung\",\"zeile_rueckschalt\":\"Zeit bis zur R\u00fcckschaltung\",\"zeile_volumen\":\"Ersatzvolumen reicht\",\"stunden\":\"Stunden\",\"h_regelfolge\":\"Welche Regeln tats\u00e4chlich greifen\",\"spalte_nummer\":\"#\",\"spalte_wirkung\":\"Wirkung\",\"wirkt\":\"greift\",\"verdeckt_von\":\"unerreichbar - Regel %d passt bereits\",\"keine_regeln\":\"Keine Regel ist aktiv, also folgt aller Verkehr der Standardroute.\",\"h_hinweise\":\"Was diese Auslegung bedeutet\",\"hinweis_sitzungen_brechen\":\"Eine Umschaltung wechselt die Absenderadresse, jede offene Verbindung stirbt also mit. Downloads beginnen von vorn, SSH-Sitzungen h\u00e4ngen, und ein laufendes Gespr\u00e4ch bricht ab - die Umschaltung stellt die Leitung wieder her, nicht die Verbindung.\",\"hinweis_umschaltung_langsam\":\"Mehr als drei\u00dfig Sekunden bis zur Umschaltung. F\u00fcr alles, worauf ein Mensch wartet, ist das von einem Ausfall nicht zu unterscheiden.\",\"hinweis_umschaltung_nervoes\":\"Unter zehn Sekunden schaltet die Leitung schon bei einem kurzen Paketverlust um, der sich von selbst erledigt h\u00e4tte - und jede Umschaltung kostet alle offenen Verbindungen.\",\"hinweis_rueckschaltung_zu_schnell\":\"Die R\u00fcckschaltung ist nicht tr\u00e4ger als die Umschaltung. Eine flatternde Leitung rei\u00dft dann jede Verbindung mit, zweimal je Flattern.\",\"hinweis_gleiche_pruefziele\":\"Dasselbe Pr\u00fcfziel auf beiden Anschl\u00fcssen hei\u00dft, dass eine St\u00f6rung dieses Ziels wie ein Ausfall beider Leitungen aussieht. Zwei verschiedene Ziele, am besten in verschiedenen Netzen.\",\"hinweis_volumen_knapp\":\"Das Ersatzvolumen reicht bei dieser Last keinen Tag. Eine Umschaltung w\u00e4hrend eines Systemupdates oder einer Cloud-Sicherung leert es, bevor jemand bemerkt, dass die Hauptleitung weg ist.\",\"hinweis_regel_verdeckt\":\"Mindestens eine Regel kann nie zutreffen, weil eine breitere dar\u00fcber steht. Eng vor breit einsortieren.\",\"hinweis_gepinnt_auf_ersatz\":\"Eine Regel bindet Verkehr fest an WAN2, ohne Ausweichen zu erlauben. F\u00e4llt WAN2 aus, f\u00e4llt dieser Verkehr mit aus - die Hauptleitung \u00fcbernimmt ihn nicht.\",\"hinweis_voip_bricht\":\"VoIP darf ausweichen. Die Leitung kommt zur\u00fcck, das Gespr\u00e4ch nicht; ein laufender Anruf endet im Augenblick der Umschaltung.\",\"dezimal\":\",\"};<\/p>\n<p>    const BEREICHE = ['alle', 'lan', 'iot', 'gaeste', 'voip'];\n    const DIENSTE  = ['alle', 'voip', 'video', 'sicherung'];\n    const WANS     = ['wan1', 'wan2'];\n    const ANZAHL_REGELN = 4;<\/p>\n<p>    function zahl(wert, ersatz) {\n        const n = Number(wert);\n        return isFinite(n) ? n : ersatz;\n    }<\/p>\n<p>    \/** Deckt der Bereich a den Bereich b vollstaendig ab? *\/\n    function deckt(a, b) {\n        return a === 'alle' || a === b;\n    }<\/p>\n<p>    \/**\n     * Eine Regel verdeckt eine spaetere, wenn sie deren Bereich und Dienst\n     * vollstaendig einschliesst. Getroffen wird immer die erste passende.\n     *\/\n    function regelnPruefen(regeln) {\n        const liste = (regeln || []).filter(function (r) { return r && r.aktiv; });\n        return liste.map(function (r, i) {\n            let verdecktVon = null;\n            for (let j = 0; j < i; j++) {\n                const v = liste[j];\n                if (deckt(v.bereich, r.bereich) &#038;&#038; deckt(v.dienst, r.dienst)) { verdecktVon = j; break; }\n            }\n            return {\n                nummer: i + 1,\n                bereich: r.bereich,\n                dienst: r.dienst,\n                wan: r.wan,\n                ausweichen: !!r.ausweichen,\n                wirksam: verdecktVon === null,\n                verdecktVon: verdecktVon === null ? null : verdecktVon + 1\n            };\n        });\n    }\n\n    function planen(e) {\n        const ein = e || {};\n        const intervall = Math.max(1, zahl(ein.intervall, 5));\n        const fehler    = Math.max(1, zahl(ein.fehler, 3));\n        const erfolge   = Math.max(1, zahl(ein.erfolge, 5));\n        const volumenGB = Math.max(0, zahl(ein.volumenGB, 0));\n        const lastMbit  = Math.max(0.01, zahl(ein.lastMbit, 1));\n        const ziele     = ein.ziele === 'gleich' ? 'gleich' : 'verschieden';\n\n        const umschaltzeit  = intervall * fehler;\n        const rueckschaltzeit = intervall * erfolge;\n\n        \/\/ Volumen in Sekunden: GB in Bit, geteilt durch die Rate.\n        const sekunden = volumenGB > 0 ? (volumenGB * 1073741824 * 8) \/ (lastMbit * 1000000) : 0;\n        const stunden = sekunden \/ 3600;<\/p>\n<p>        const regeln = regelnPruefen(ein.regeln);<\/p>\n<p>        const hinweise = [];\n        if (umschaltzeit > 30)  { hinweise.push('umschaltung_langsam'); }\n        if (umschaltzeit < 10)  { hinweise.push('umschaltung_nervoes'); }\n        if (rueckschaltzeit <= umschaltzeit) { hinweise.push('rueckschaltung_zu_schnell'); }\n        if (ziele === 'gleich') { hinweise.push('gleiche_pruefziele'); }\n        if (volumenGB > 0 && stunden < 24) { hinweise.push('volumen_knapp'); }\n        if (regeln.some(function (r) { return !r.wirksam; })) { hinweise.push('regel_verdeckt'); }\n        if (regeln.some(function (r) { return r.wan === 'wan2' &#038;&#038; !r.ausweichen; })) { hinweise.push('gepinnt_auf_ersatz'); }\n        if (regeln.some(function (r) { return r.dienst === 'voip' &#038;&#038; r.ausweichen; })) { hinweise.push('voip_bricht'); }\n        hinweise.push('sitzungen_brechen');\n\n        return {\n            umschaltzeit: umschaltzeit,\n            rueckschaltzeit: rueckschaltzeit,\n            volumenStunden: stunden,\n            regeln: regeln,\n            hinweise: hinweise\n        };\n    }\n\n    \/\/ --- Pruefpunkt ----------------------------------------------------------\n    window.LW_TEST = window.LW_TEST || {};\n    window.LW_TEST.MV = { planen: planen, regelnPruefen: regelnPruefen, deckt: deckt, bereiche: BEREICHE, dienste: DIENSTE };\n\n    \/\/ --- Oberflaeche ---------------------------------------------------------\n\n    const regelnBox = document.getElementById('mv-regeln');\n    const btn = document.getElementById('mv-btn');\n    const out = document.getElementById('mv-ausgabe');\n    if (!regelnBox || !btn || !out) { return; }\n\n    function el(tag, stil, text) {\n        const e = document.createElement(tag);\n        if (stil) { e.setAttribute('style', stil); }\n        if (text !== undefined) { e.textContent = text; }\n        return e;\n    }\n    function wert(id) { const e = document.getElementById(id); return e ? e.value : ''; }\n    function komma(n, stellen) {\n        return Number(n).toFixed(stellen === undefined ? 1 : stellen).replace('.', T.dezimal);\n    }\n\n    const FELD = 'width: 100%; padding: 7px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 5px; box-sizing: border-box; font-size: 0.85rem;';\n    const VORGABE = [\n        { aktiv: true,  bereich: 'voip',   dienst: 'alle',  wan: 'wan1', ausweichen: false },\n        { aktiv: true,  bereich: 'lan',    dienst: 'sicherung', wan: 'wan1', ausweichen: true },\n        { aktiv: true,  bereich: 'gaeste', dienst: 'alle',  wan: 'wan2', ausweichen: true },\n        { aktiv: false, bereich: 'alle',   dienst: 'alle',  wan: 'wan1', ausweichen: true }\n    ];\n\n    function auswahl(id, werte, vorbelegt, praefix) {\n        const s = document.createElement('select');\n        s.id = id;\n        s.style.cssText = FELD;\n        werte.forEach(function (w) {\n            const o = document.createElement('option');\n            o.value = w;\n            o.textContent = T[praefix + w];\n            if (w === vorbelegt) { o.selected = true; }\n            s.appendChild(o);\n        });\n        return s;\n    }\n\n    regelnBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', '#'));\n    regelnBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_bereich));\n    regelnBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_dienst));\n    regelnBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_wan));\n    regelnBox.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.78rem;', T.spalte_ausweichen));\n\n    for (let i = 0; i < ANZAHL_REGELN; i++) {\n        const v = VORGABE[i];\n        const nr = el('label', 'display: flex; align-items: center; gap: 6px; color: var(--text-secondary, #a0a0b0); font-size: 0.85rem;');\n        const an = document.createElement('input');\n        an.type = 'checkbox'; an.id = 'mv-aktiv-' + i; an.checked = v.aktiv;\n        an.style.cssText = 'accent-color: var(--accent, #7ee787);';\n        nr.appendChild(an);\n        nr.appendChild(el('span', '', String(i + 1)));\n        regelnBox.appendChild(nr);\n\n        regelnBox.appendChild(auswahl('mv-bereich-' + i, BEREICHE, v.bereich, 'bereich_'));\n        regelnBox.appendChild(auswahl('mv-dienst-' + i, DIENSTE, v.dienst, 'dienst_'));\n        regelnBox.appendChild(auswahl('mv-wan-' + i, WANS, v.wan, 'wan_'));\n\n        const aus = document.createElement('input');\n        aus.type = 'checkbox'; aus.id = 'mv-aus-' + i; aus.checked = v.ausweichen;\n        aus.style.cssText = 'accent-color: var(--accent, #7ee787); justify-self: center;';\n        regelnBox.appendChild(aus);\n    }\n\n    function regelnLesen() {\n        const liste = [];\n        for (let i = 0; i < ANZAHL_REGELN; i++) {\n            const an = document.getElementById('mv-aktiv-' + i);\n            const aus = document.getElementById('mv-aus-' + i);\n            liste.push({\n                aktiv: an ? an.checked : false,\n                bereich: wert('mv-bereich-' + i),\n                dienst: wert('mv-dienst-' + i),\n                wan: wert('mv-wan-' + i),\n                ausweichen: aus ? aus.checked : false\n            });\n        }\n        return liste;\n    }\n\n    const UEBERSCHRIFT = 'font-family: \\'Nunito Sans\\', sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.92rem; margin: 18px 0 8px;';\n    const ZELLE = 'padding: 5px 14px 5px 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem;';\n    const ZELLE_WERT = 'padding: 5px 14px 5px 0; color: var(--text-primary, #e8e8ee); font-size: 0.87rem; font-family: monospace;';\n\n    btn.addEventListener('click', function () {\n        const erg = planen({\n            intervall: wert('mv-intervall'),\n            fehler: wert('mv-fehler'),\n            erfolge: wert('mv-erfolge'),\n            ziele: wert('mv-ziele'),\n            volumenGB: wert('mv-volumen'),\n            lastMbit: wert('mv-last'),\n            regeln: regelnLesen()\n        });\n\n        out.innerHTML = '';\n        out.appendChild(el('div', UEBERSCHRIFT, T.h_zeiten));\n        const g = el('div', 'display: grid; grid-template-columns: auto auto; gap: 0 18px; align-items: baseline;');\n        function zeile(name, w) { g.appendChild(el('div', ZELLE, name)); g.appendChild(el('div', ZELLE_WERT, w)); }\n        zeile(T.zeile_umschalt, komma(erg.umschaltzeit, 0) + ' s');\n        zeile(T.zeile_rueckschalt, komma(erg.rueckschaltzeit, 0) + ' s');\n        zeile(T.zeile_volumen, erg.volumenStunden > 0 ? komma(erg.volumenStunden) + ' ' + T.stunden : '\u2014');\n        out.appendChild(g);<\/p>\n<p>        out.appendChild(el('div', UEBERSCHRIFT, T.h_regelfolge));\n        if (!erg.regeln.length) {\n            out.appendChild(el('div', ZELLE, T.keine_regeln));\n        } else {\n            const tab = el('div', 'display: grid; grid-template-columns: auto auto auto auto 1fr; gap: 0 16px; align-items: baseline;');\n            [T.spalte_nummer, T.spalte_bereich, T.spalte_dienst, T.spalte_wan, T.spalte_wirkung].forEach(function (k) {\n                tab.appendChild(el('div', ZELLE + ' font-weight: 700; color: var(--text-primary, #e8e8ee);', k));\n            });\n            erg.regeln.forEach(function (r) {\n                const grau = r.wirksam ? '' : ' color: var(--text-secondary, #a0a0b0); text-decoration: line-through;';\n                tab.appendChild(el('div', ZELLE_WERT + grau, String(r.nummer)));\n                tab.appendChild(el('div', ZELLE_WERT + grau, T['bereich_' + r.bereich]));\n                tab.appendChild(el('div', ZELLE_WERT + grau, T['dienst_' + r.dienst]));\n                tab.appendChild(el('div', ZELLE_WERT + grau, T['wan_' + r.wan] + (r.ausweichen ? '' : ' ' + T.fest)));\n                tab.appendChild(el('div', ZELLE + (r.wirksam ? ' color: var(--accent, #7ee787);' : ' color: #ffa94d;'),\n                    r.wirksam ? T.wirkt : T.verdeckt_von.replace('%d', String(r.verdecktVon))));\n            });\n            out.appendChild(tab);\n        }<\/p>\n<p>        out.appendChild(el('div', UEBERSCHRIFT, T.h_hinweise));\n        const liste = el('ul', 'margin: 0 0 0 18px; padding: 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem; line-height: 1.65;');\n        erg.hinweise.forEach(function (h) { liste.appendChild(el('li', '', T['hinweis_' + h])); });\n        out.appendChild(liste);\n    });\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rechnet aus, wie lange eine Umschaltung wirklich dauert, wie weit das Ersatzvolumen reicht und welche Richtlinienregeln von der dar\u00fcberliegenden verdeckt werden.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92301,92331],"class_list":["post-10444","page","type-page","status-publish","hentry","tag-networking-de","tag-unifi-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Rechnet aus, wie lange eine Umschaltung wirklich dauert, wie weit das Ersatzvolumen reicht und welche Richtlinienregeln von der dar\u00fcberliegenden verdeckt werden.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-15T12:49:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/multi-wan-failover-policy-planner\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/multi-wan-failover-policy-planner\\\/\",\"name\":\"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-08-15T12:39:54+00:00\",\"dateModified\":\"2026-08-15T12:49:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/multi-wan-failover-policy-planner\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/multi-wan-failover-policy-planner\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/multi-wan-failover-policy-planner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-2\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/","og_locale":"en_US","og_type":"article","og_title":"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln - Lukas Wojcik - Blog","og_description":"Rechnet aus, wie lange eine Umschaltung wirklich dauert, wie weit das Ersatzvolumen reicht und welche Richtlinienregeln von der dar\u00fcberliegenden verdeckt werden.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/","og_site_name":"Lukas Wojcik - Blog","article_modified_time":"2026-08-15T12:49:09+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/","name":"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-08-15T12:39:54+00:00","dateModified":"2026-08-15T12:49:09+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/multi-wan-failover-policy-planner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-2\/"},{"@type":"ListItem","position":3,"name":"Multi-WAN-Planer f\u00fcr Ausfallsicherung und Regeln"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/10444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=10444"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/10444\/revisions"}],"predecessor-version":[{"id":10462,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/10444\/revisions\/10462"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9283"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10444"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}