WireGuard: tunnel site-to-site tra due sede
Configura un tunnel WireGuard site-to-site su RouterOS v7: creazione interfaccia, scambio chiavi pubbliche, assegnazione IP, routing e regola firewall.
WireGuard è il protocollo VPN più moderno disponibile su RouterOS v7: usa crittografia ellittica (Curve25519), autenticazione implicita tramite coppie di chiavi e non ha negoziazione complessa. La configurazione è simmetrica tra i due router.
Come ragiona WireGuard. Non esistono "client" e "server": ci sono solo peer. Ogni peer ha una coppia chiave privata/pubblica. Si scambiano le chiavi *pubbliche* (fuori banda) e ciascuno autorizza l'altro tramite allowed-address. allowed-address ha doppio ruolo: è il filtro (quali IP sorgente accetto da quel peer) ed è anche la rotta interna del tunnel (cryptokey routing). Per questo va elencata con cura ogni rete remota raggiungibile.
Sede A (10.1.101.0/24 — IP pubblico 203.0.113.1)
# Crea l'interfaccia; le chiavi vengono generate automaticamente /interface/wireguard/add name=wg-siteB listen-port=13231 # Visualizza la chiave pubblica da comunicare al Router B /interface/wireguard/print # Assegna l'indirizzo sul link del tunnel (punto-a-punto /30) /ip/address/add address=10.255.255.1/30 interface=wg-siteB # Aggiungi il peer: chiave pubblica di B, IP endpoint, reti ammesse /interface/wireguard/peers/add \ interface=wg-siteB \ public-key="<CHIAVE_PUBBLICA_ROUTER_B>" \ endpoint-address=203.0.113.2 \ endpoint-port=13231 \ allowed-address=10.255.255.2/32,10.1.102.0/24 \ persistent-keepalive=25 # Rotta verso la rete della sede B /ip/route/add dst-address=10.1.102.0/24 gateway=wg-siteB # Firewall: consenti UDP 13231 in ingresso /ip/firewall/filter/add \ chain=input protocol=udp dst-port=13231 \ action=accept comment="WireGuard ingresso" \ place-before=0
Sede B (10.1.102.0/24 — IP pubblico 203.0.113.2)
# Interfaccia WireGuard sul Router B /interface/wireguard/add name=wg-siteA listen-port=13231 # Recupera la chiave pubblica da dare al Router A /interface/wireguard/print # Indirizzo tunnel lato B /ip/address/add address=10.255.255.2/30 interface=wg-siteA # Peer: punta al Router A /interface/wireguard/peers/add \ interface=wg-siteA \ public-key="<CHIAVE_PUBBLICA_ROUTER_A>" \ endpoint-address=203.0.113.1 \ endpoint-port=13231 \ allowed-address=10.255.255.1/32,10.1.101.0/24 \ persistent-keepalive=25 # Rotta verso la rete della sede A /ip/route/add dst-address=10.1.101.0/24 gateway=wg-siteA # Firewall ingresso /ip/firewall/filter/add \ chain=input protocol=udp dst-port=13231 \ action=accept comment="WireGuard ingresso" \ place-before=0
/interface/wireguard/print). Il parametro persistent-keepalive=25 mantiene aperto il tunnel anche dietro NAT.Difesa in più: pre-shared key (PSK)
Oltre alle chiavi asimmetriche, WireGuard supporta una chiave simmetrica condivisa per peer (preshared-key) che aggiunge resistenza a futuri attacchi quantistici. Generala una volta e impostala identica su entrambi i lati.
# Genera una PSK casuale (eseguila una volta, copia il valore) :put [/interface/wireguard/generate-key] # Imposta la stessa PSK sul peer di ENTRAMBI i router /interface/wireguard/peers/set [find interface=wg-siteB] \ preshared-key="<PSK_GENERATA>"
Verifica connettività
# Stato del peer (last-handshake, rx, tx) /interface/wireguard/peers/print detail # Ping dall'endpoint del tunnel /ping 10.255.255.2 /ping 10.1.102.1
last-handshake è 0 o molto vecchio, controlla che la chiave pubblica del peer sia corretta e che la porta UDP sia raggiungibile (verifica firewall su entrambi i router e sull'eventuale NAT a monte).Scenario WISP: solo un lato ha IP pubblico
Tipico nei POP dietro CGNAT: la BTS non ha IP pubblico raggiungibile. Soluzione: configura l'endpoint solo sul lato dietro NAT (la BTS "chiama" il NOC che ha IP pubblico); sul NOC non impostare endpoint-address per quel peer. Mantieni persistent-keepalive=25 sul lato dietro NAT per tenere viva la mappatura.
10.255.0.0/16 per i link tunnel) e annunci i loopback dei router via OSPF *sopra* il tunnel (vedi articolo OSPF over tunnel). Così il routing converge da solo quando aggiungi nuovi POP.Continua con
Configura senza fatica con l'AI
In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.
Prova WispOS