{"id":85,"date":"2026-09-03T12:47:24","date_gmt":"2026-09-03T12:47:24","guid":{"rendered":"https:\/\/anderlini.com\/?p=85"},"modified":"2026-09-03T12:57:49","modified_gmt":"2026-09-03T12:57:49","slug":"mikrotik-dual-wan-vlan-dedicate-e-failover-ricorsivo","status":"publish","type":"post","link":"https:\/\/anderlini.com\/?p=85","title":{"rendered":"MikroTik dual WAN: VLAN dedicate e failover ricorsivo"},"content":{"rendered":"<p>Salve a tutti, dopo una lunga pausa ritorno con un altro articolo sempre per MikroTik. Spero che possa essere d&#8217;aiuto a qualcuno. Buona lettura.<\/p>\n<p>Questo laboratorio GNS3 nasce con l\u2019obiettivo di utilizzare due connessioni Internet PPPoE su un router MikroTik, assegnando a ciascuna rete locale una WAN preferenziale e mantenendo il passaggio automatico alla linea alternativa in caso di guasto.<\/p>\n<figure class=\"wp-block-image\" style=\"width:100%;max-width:760px;margin:2rem auto;text-align:center;box-sizing:border-box;\"><img decoding=\"async\" src=\"https:\/\/anderlini.com\/wp-content\/uploads\/2026\/09\/schema-mikrotik-dual-wan-vlan.png\" alt=\"Schema della rete MikroTik dual WAN con VLAN 1 su WAN2 e VLAN 20 su WAN1, entrambe con failover\" style=\"display:block;width:100%;max-width:100%;height:auto;margin:0 auto;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.08);\"\/><figcaption class=\"wp-element-caption\" style=\"margin-top:.75rem;font-size:.9rem;line-height:1.4;color:#666;\">Schema logico del laboratorio: VLAN 1 e VLAN 20 utilizzano WAN differenti con failover automatico.<\/figcaption><\/figure>\n<h2>Obiettivo del progetto<\/h2>\n<p>La LAN principale, corrispondente alla VLAN 1 e alla rete <strong>192.168.10.0\/24<\/strong>, utilizza normalmente la WAN2. La VLAN 20, con rete <strong>192.168.1.0\/24<\/strong>, utilizza invece la WAN1. Se la navigazione Internet della linea primaria non \u00e8 pi\u00f9 disponibile, anche quando la sessione PPPoE risulta ancora connessa, il traffico viene instradato automaticamente sulla seconda WAN.<\/p>\n<ul>\n<li><strong>VLAN 1:<\/strong> WAN2 primaria, WAN1 di backup.<\/li>\n<li><strong>VLAN 20:<\/strong> WAN1 primaria, WAN2 di backup.<\/li>\n<li><strong>ether7:<\/strong> VLAN 1 untagged\/native e VLAN 20 tagged.<\/li>\n<li><strong>WAN1:<\/strong> client PPPoE su ether1.<\/li>\n<li><strong>WAN2:<\/strong> client PPPoE su ether2.<\/li>\n<\/ul>\n<h2>Perch\u00e9 usare il routing ricorsivo<\/h2>\n<p>Controllare soltanto lo stato della PPPoE non \u00e8 sufficiente: la sessione pu\u00f2 rimanere attiva anche quando il provider non consente pi\u00f9 di raggiungere Internet. Per questo vengono utilizzati due indirizzi pubblici come probe: <strong>9.9.9.9<\/strong> \u00e8 vincolato alla WAN1 e <strong>1.1.1.1<\/strong> alla WAN2. Il parametro <code>check-gateway=ping<\/code> viene applicato alle default route ricorsive, non alle rotte \/32 dei probe.<\/p>\n<h2>Bridge e VLAN<\/h2>\n<pre><code>\/interface bridge\nadd name=bridge1Lan vlan-filtering=no pvid=1\n\n\/interface bridge port\nadd bridge=bridge1Lan interface=ether7 pvid=1 ingress-filtering=yes frame-types=admit-all\n\n\/interface bridge vlan\nadd bridge=bridge1Lan vlan-ids=1 untagged=bridge1Lan,ether7\nadd bridge=bridge1Lan vlan-ids=20 tagged=bridge1Lan,ether7\n\n\/interface vlan\nadd interface=bridge1Lan name=vlan20 vlan-id=20\n\n\/interface bridge\nset bridge1Lan vlan-filtering=yes<\/code><\/pre>\n<p>Il bridge deve comparire tra le porte tagged della VLAN 20 perch\u00e9 rappresenta la CPU port del MikroTik. Senza questa associazione l\u2019interfaccia VLAN creata sopra il bridge non riceve correttamente il traffico tagged.<\/p>\n<h2>Indirizzamento e DHCP<\/h2>\n<pre><code>\/ip address\nadd address=192.168.10.1\/24 interface=bridge1Lan\nadd address=192.168.1.1\/24 interface=vlan20\n\n\/ip pool\nadd name=dhcp_pool_vlan1 ranges=192.168.10.2-192.168.10.254\nadd name=dhcp_pool_vlan20 ranges=192.168.1.2-192.168.1.254\n\n\/ip dhcp-server\nadd name=dhcp_vlan1 interface=bridge1Lan address-pool=dhcp_pool_vlan1 disabled=no\nadd name=dhcp_vlan20 interface=vlan20 address-pool=dhcp_pool_vlan20 disabled=no<\/code><\/pre>\n<h2>PPPoE e tabelle di routing<\/h2>\n<pre><code>\/interface pppoe-client\nadd name=pppoe-out1 interface=ether1Wan1 user=&lt;UTENTE_WAN1&gt; add-default-route=no use-peer-dns=no disabled=no\nadd name=pppoe-out2 interface=ether2Wan2 user=&lt;UTENTE_WAN2&gt; add-default-route=no use-peer-dns=no disabled=no\n\n\/routing table\nadd name=rtabVlan20 fib<\/code><\/pre>\n<p>Le default route automatiche delle PPPoE vengono disabilitate perch\u00e9 la scelta della linea \u00e8 gestita esplicitamente dalle tabelle di routing.<\/p>\n<h2>Probe e default route ricorsive<\/h2>\n<pre><code>\/ip route\nadd dst-address=9.9.9.9\/32 gateway=pppoe-out1 routing-table=main scope=10 comment=\"Probe WAN1\"\nadd dst-address=1.1.1.1\/32 gateway=pppoe-out2 routing-table=main scope=10 comment=\"Probe WAN2\"\n\n# Main: WAN2 primaria, WAN1 backup\nadd dst-address=0.0.0.0\/0 gateway=1.1.1.1@main routing-table=main distance=1 check-gateway=ping scope=30 target-scope=11\nadd dst-address=0.0.0.0\/0 gateway=9.9.9.9@main routing-table=main distance=2 check-gateway=ping scope=30 target-scope=11\n\n# VLAN20: WAN1 primaria, WAN2 backup\nadd dst-address=0.0.0.0\/0 gateway=9.9.9.9@main routing-table=rtabVlan20 distance=1 check-gateway=ping scope=30 target-scope=11\nadd dst-address=0.0.0.0\/0 gateway=1.1.1.1@main routing-table=rtabVlan20 distance=2 check-gateway=ping scope=30 target-scope=11<\/code><\/pre>\n<p>Le rotte \/32 dei probe devono risiedere nella tabella <code>main<\/code> ed essere vincolate alla relativa PPPoE. Le default route della tabella personalizzata utilizzano invece la sintassi <code>gateway=IP_PROBE@main<\/code>, necessaria affinch\u00e9 RouterOS possa risolvere correttamente il next-hop.<\/p>\n<h2>Policy routing della VLAN 20<\/h2>\n<pre><code>\/routing rule\nadd dst-address=192.168.0.0\/16 action=lookup-only-in-table table=main comment=\"Reti locali via main\"\nadd src-address=192.168.1.0\/24 action=lookup-only-in-table table=rtabVlan20 comment=\"VLAN20 via WAN1\"<\/code><\/pre>\n<p>La prima regola conserva la comunicazione con le reti locali. La seconda invia il traffico proveniente dalla VLAN 20 nella tabella dedicata, dove WAN1 ha distanza 1 e WAN2 distanza 2.<\/p>\n<h2>NAT<\/h2>\n<pre><code>\/ip firewall nat\nadd chain=srcnat action=masquerade out-interface=pppoe-out1 comment=\"NAT WAN1\"\nadd chain=srcnat action=masquerade out-interface=pppoe-out2 comment=\"NAT WAN2\"<\/code><\/pre>\n<h2>Comportamento del failover<\/h2>\n<p>In condizioni normali i client della VLAN 1 navigano attraverso WAN2 e quelli della VLAN 20 attraverso WAN1. Se il probe associato alla linea primaria smette di rispondere, RouterOS disattiva la relativa default route ricorsiva e utilizza quella con distanza 2. Quando la connettivit\u00e0 viene ripristinata, la route primaria torna attiva automaticamente.<\/p>\n<h2>Errori riscontrati durante il laboratorio<\/h2>\n<p>La prima configurazione non funzionava perch\u00e9 il probe della WAN1 era stato collocato nella tabella personalizzata e la default route non utilizzava correttamente il suffisso <code>@main<\/code>. Di conseguenza il gateway ricorsivo risultava inattivo e il traffico della VLAN 20 ricadeva sulla default route della WAN2. Mancavano inoltre la route di backup nella tabella VLAN20 e il bridge tra le porte tagged della VLAN 20.<\/p>\n<h2>Verifica<\/h2>\n<pre><code>\/ip route print detail where routing-table=rtabVlan20\n\/tool traceroute 8.8.8.8 routing-table=rtabVlan20\n\/interface pppoe-client disable pppoe-out1\n\/interface pppoe-client enable pppoe-out1<\/code><\/pre>\n<p>Disabilitando WAN1, la VLAN 20 deve passare su WAN2; dopo la riattivazione deve tornare automaticamente su WAN1. Lo stesso comportamento, con priorit\u00e0 opposta, \u00e8 previsto per la VLAN 1.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salve a tutti, dopo una lunga pausa ritorno con un altro articolo sempre per MikroTik. Spero che possa essere d&#8217;aiuto a qualcuno. Buona lettura. Questo laboratorio GNS3 nasce con l\u2019obiettivo di utilizzare due connessioni Internet PPPoE su un router MikroTik, assegnando a ciascuna rete locale una WAN preferenziale e mantenendo il passaggio automatico alla linea [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-85","post","type-post","status-publish","format-standard","hentry","category-networking"],"_links":{"self":[{"href":"https:\/\/anderlini.com\/index.php?rest_route=\/wp\/v2\/posts\/85","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/anderlini.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anderlini.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anderlini.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/anderlini.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=85"}],"version-history":[{"count":3,"href":"https:\/\/anderlini.com\/index.php?rest_route=\/wp\/v2\/posts\/85\/revisions"}],"predecessor-version":[{"id":89,"href":"https:\/\/anderlini.com\/index.php?rest_route=\/wp\/v2\/posts\/85\/revisions\/89"}],"wp:attachment":[{"href":"https:\/\/anderlini.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=85"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anderlini.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=85"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anderlini.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=85"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}