Ottimizzo la tua rete, proteggo il tuo futuro!

Come creare un Ambiente di Rete Completo con OSPF, VPN, EoIP e Failover

ambiente di rete con OSPF:
Ho deciso di creare un laboratorio che unisce buona parte (non tutte) delle configurazioni che ho trattato negli articoli precedenti, aggiungendo però una configurazione di routing dinamico tramite OSPF.

Devo dire che per questo LAB sono state necessarie diverse ore di lavoro.
Ho dovuto risolvere varie problematiche e modificare alcune soluzioni che avevo inizialmente pensato, ma che si sono rivelate inadatte durante l’implementazione.

Quando l’infrastruttura diventa più complessa, diventa fondamentale saper analizzare la rete per individuare i problemi che inevitabilmente si presentano e risolverli.

Non si tratta solo di ricordare a memoria come configurare VPN, OSPF, Failover, ecc., ma di saper individuare e risolvere le problematiche.

Ad esempio, ho riscontrato alcuni problemi con la configurazione delle VPN, uno dei quali era un errore banale sugli indirizzi IP.
Analizzando il traffico, ho notato che le richieste arrivavano da un IP diverso da quello previsto, e da lì ho capito qual era il problema.
Inoltre, ho avuto problemi di connessione OSPF sulle VPN: analizzando il traffico, ho visto che negli allowed address non avevo inserito la rete 224.0.0.0/24.

Ho risolto altre problematiche che avrebbero compromesso il funzionamento del laboratorio, ma grazie all’analisi e ai test progressivi, sono riuscito a sistemare tutto.
Dopo numerosi test posso dire che ora tutto funziona correttamente.

Ma vediamo innanzitutto nel dettaglio la configurazione, metto un’immagine del laboratorio in modo che possa essere tutto più comprensibile.

Foto con l’ ambiente di Rete con OSPF

Come potete vedere dall’immagine, ho creato 4 nodi: A, B, C e D, ognuno con la propria LAN ed eventuali VLAN.
È necessario inoltre che una porta delle sedi B e D sia collegata a un tunnel Layer 2, in modo che, collegando un dispositivo su quella porta, questo venga inserito nella rete LAN del Nodo A, e sia il router R1-A ad assegnargli l’IP e a gestire il traffico.

Ogni nodo ha una propria connessione a internet.
I nodi A e B hanno un IP pubblico e sono collegati tra di loro anche tramite un ponte radio, mentre C e D sono due sedi secondarie con IP nattato, quindi non raggiungibili direttamente.

Lo scopo del laboratorio è collegare tutte le sedi, creare ridondanza e gestire il routing in modo dinamico, permettendo la gestione automatica delle tabelle di routing in base alla disponibilità delle connessioni.

Per fare questo, oltre al collegamento PtP, è necessario creare delle VPN Wireguard che consentano al Nodo A di raggiungere B, C e D, e al Nodo B di collegarsi a C e D.

Una volta creati tutti questi tunnel VPN, si passa alla configurazione del protocollo OSPF e all’assegnazione delle priorità.

Così facendo, se il nodo A o B dovesse perdere la connessione internet primaria, riuscirebbero comunque a comunicare tramite il ponte radio e a mantenere la connessione con tutti gli altri nodi.
Allo stesso modo, se il ponte radio tra A e B dovesse cadere, sarebbero comunque in grado di dialogare grazie alla Wireguard, senza perdere nessuna connessione o rotta.

Di seguito la configurazione di tutti gli apparati:


R1-A:

Iniziamo con l’assegnare dei commenti alle porte Ethernet per identificarle meglio.
Ether1 è impostata come WAN, Ether3 è configurata per il collegamento PtP (ho anche modificato l’MTU a 1480 perchè essendo virtuale aveva preso un valore diverso e faceva si che il protocollo OSPF non funzionasse correttamente), mentre Ether4 è la porta LAN e VLAN.

/interface ethernet
set [ find default-name=ether1 ] comment=WAN
set [ find default-name=ether3 ] comment=”PtP Radio” mtu=1480
set [ find default-name=ether4 ] comment=LAN

Ho creato tre interfacce WireGuard, ognuna con la propria chiave privata e porta di ascolto. WG-B si connette al nodo B, WG-C al nodo C, e WD-D al nodo D.

/interface wireguard
add listen-port=13280 mtu=1420 name=WD-D private-key=…
add listen-port=13250 mtu=1420 name=WG-B private-key=…
add listen-port=13270 mtu=1420 name=WG-C private-key=…

Ho creato una VLAN 20 sull’interfaccia Ether4.

/interface vlan
add comment=VLAN interface=ether4 name=vlan20 vlan-id=20

Ho creato una lista per la WAN, così posso facilmente applicare regole di firewall e routing.

/interface list
add name=WAN

Ho creato due pool DHCP, uno per la LAN e uno per la VLAN 20.

/ip pool
add name=dhcp_pool_Lan ranges=192.168.10.200-192.168.10.253
add name=dhcp_pool_Vlan20 ranges=192.168.20.200-192.168.20.253

Ho configurato i server DHCP per assegnare gli IP sia sulla LAN che sulla VLAN.

/ip dhcp-server
add address-pool=dhcp_pool_Lan interface=ether4 name=dhcp_Lan
add address-pool=dhcp_pool_Vlan20 interface=vlan20 name=dhcp_Vlan20

Ho abilitato OSPF e impostato l’ID del router.
L’area backbone è la zona dove avviene il routing dinamico.

/routing ospf instance
add disabled=no name=default router-id=10.0.0.1
/routing ospf area
add disabled=no instance=default name=backbone

Ho aggiunto ether1 alla lista WAN

/interface list member
add interface=ether1 list=WAN

Ho configurato i peer per collegare il nodo A con B, C e D, includendo gli indirizzi consentiti e le chiavi pubbliche per ogni connessione. (questa parte bisogna stare molto attenti perchè se ci si dimentica anche di una sola rete compromette tutto il funzionamento)

/interface wireguard peers
add allowed-address=”10.10.1.0/30,10.10.3.0/30,10.10.4.0/30,10.10.200.0/30,10.\
10.201.0/30,192.168.50.0/24,192.168.60.0/24,192.168.100.0/24,192.168.150.0\
/24,224.0.0.0/24″ comment=”To Node B” endpoint-address=172.20.20.2 \
endpoint-port=13250 interface=WG-B persistent-keepalive=30s public-key=\
“NRhwqc/2ddHaBHDtXn+BIAQFvMBoOl5bi59GjnVoDWQ=”

add allowed-address=”10.10.3.0/30,10.10.1.0/30,10.10.4.0/30,10.10.200.0/30,10.\
10.201.0/30,224.0.0.0/24,192.168.50.0/24,192.168.60.0/24,192.168.100.0/24,\
192.168.150.0/24″ comment=”To Node C” endpoint-address=172.24.24.2 \
endpoint-port=13270 interface=WG-C persistent-keepalive=30s public-key=\
“GhEldkZly7T4OwVXizbXgo2lhcLqyRg/hOCi3ioD+iA=”

add allowed-address=”10.10.4.0/30,10.10.3.0/30,10.10.1.0/30,192.168.50.0/24,19\
2.168.60.0/24,192.168.100.0/24,192.168.150.0/24,224.0.0.0/24″ comment=\
“To Node D” endpoint-address=172.30.30.2 endpoint-port=13250 interface=\
WD-D persistent-keepalive=30s public-key=\
“xgVPBKaJY/4Zy6YU1hl6vFcIbwsqZF3ZEk3zZ1wkC3g=”

Ho assegnato gli IP a tutte le interfacce

/ip address
add address=172.16.16.2/30 interface=ether1 network=172.16.16.0
add address=192.168.10.1/24 interface=ether4 network=192.168.10.0
add address=192.168.20.1/24 interface=vlan20 network=192.168.20.0
add address=10.10.1.1/30 interface=WG-B network=10.10.1.0
add address=10.10.10.1/30 interface=ether3 network=10.10.10.0
add address=10.10.3.1/30 interface=WG-C network=10.10.3.0
add address=10.10.4.1/30 interface=WD-D network=10.10.4.0
add address=10.10.11.1/30 interface=ether3 network=10.10.11.0

Ho impostato i server DNS

/ip dns
set servers=8.8.8.8,1.1.1.1

Per il firewall, ho creato regole per accettare il traffico da Winbox, WireGuard e altre connessioni essenziali, e infine ho aggiunto una regola per bloccare tutto il traffico non autorizzato sulla WAN

/ip firewall filter
add action=accept chain=input comment=”Allow Winbox” in-interface-list=WAN \
port=8291 protocol=tcp
add action=accept chain=input disabled=yes in-interface=WG-B
add action=accept chain=input comment=”Accept wireguard 13280″ in-interface=\
ether1 port=13280 protocol=udp
add action=accept chain=input comment=”Accept wireguard 13270″ in-interface=\
ether1 port=13270 protocol=udp
add action=accept chain=input comment=”Accept wireguard 13260″ in-interface=\
ether1 port=13260 protocol=udp
add action=accept chain=input comment=”Accept wireguard 13250″ in-interface=\
ether1 port=13250 protocol=udp
add action=accept chain=input in-interface=ether3 src-address=10.10.10.0/30
add action=accept chain=input comment=”Allow established and related” \
connection-state=established,related in-interface-list=WAN
add action=drop chain=input comment=”Drop all” in-interface-list=WAN

Ho abilitato il masquerading per il traffico in uscita verso la WAN

/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN

ho impostato le rotte di default con priorità per l’accesso a internet e il failover tramite il ponte radio.

/ip route
add check-gateway=ping disabled=no dst-address=0.0.0.0/0 gateway=172.16.16.1
add check-gateway=ping disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.10.11.2

Ho configurato OSPF su tutte le interfacce, assegnando costi e reti.
Attenzione perchè il protocollo OSPF funziona su Layer2 ma è possibile farlo passare anche in tunnel Layer3 bisogna però impostare le VPN come Type PtP.

/routing ospf interface-template
add area=backbone cost=20 disabled=no interfaces=ether4 networks=\
192.168.10.0/24
add area=backbone cost=20 disabled=no interfaces=vlan20 networks=\
192.168.20.0/24
add area=backbone cost=10 disabled=no interfaces=ether3 networks=\
10.10.10.0/30
add area=backbone cost=40 disabled=no interfaces=WG-B networks=10.10.1.0/30 \
type=ptp
add area=backbone cost=30 disabled=no interfaces=WG-C networks=10.10.3.0/30 \
type=ptp
add area=backbone cost=30 disabled=no interfaces=WD-D networks=10.10.4.0/30 \
type=ptp

Infine, ho impostato il nome del router come R1-A.

/system identity
set name=R1-A


Finchè siamo sul nodo A vediamo anche la configurazione dello switch SW-A:

Ho creato un bridge chiamato bridgeLan con il filtraggio VLAN attivato

/interface bridge
add ingress-filtering=no name=bridgeLan vlan-filtering=yes

Ho commentato le porte per una gestione più rapida ed immediata

/interface ethernet
set [ find default-name=ether1 ] comment=”To R1″
set [ find default-name=ether3 ] comment=LAN
set [ find default-name=ether4 ] comment=VLAN20

Ho configurato due tunnel EoIP.
Uno verso il Nodo B con ID di tunnel 10, e l’altro verso il Nodo D con ID di tunnel 20.

/interface eoip
add comment=”To Node B” local-address=192.168.10.254 name=eoip-tunnel remote-address=192.168.50.254 tunnel-id=10
add comment=”To Node D” local-address=192.168.10.254 name=eoip-tunnel1 remote-address=192.168.150.1 tunnel-id=20

Ho creato la VLAN 20 sull’interfaccia bridgeLan

/interface vlan
add interface=bridgeLan name=vlan20 vlan-id=20

Qui ho associato le interfacce Ethernet e i tunnel EoIP al bridge.
La Ether4 è configurata con pvid=20 per indicare che è la porta assegnata alla VLAN 20.

/interface bridge port
add bridge=bridgeLan ingress-filtering=no interface=ether1
add bridge=bridgeLan ingress-filtering=no interface=ether2
add bridge=bridgeLan ingress-filtering=no interface=ether3
add bridge=bridgeLan ingress-filtering=no interface=ether4 pvid=20
add bridge=bridgeLan interface=eoip-tunnel
add bridge=bridgeLan interface=eoip-tunnel1

Ho configurato il bridge per gestire la VLAN 20, inoltre ho taggato sempre la vlan 20 sulla ether1 in quanto è la porta trunk collegata all’R1-A

/interface bridge vlan
add bridge=bridgeLan tagged=bridgeLan,ether1 vlan-ids=20

Ho assegnato l’indirizzo IP statico al BridgeLan

/ip address
add address=192.168.10.254/24 interface=bridgeLan network=192.168.10.0

Ho configurato un client DHCP per la VLAN 20, senza impostare la rotta di default

/ip dhcp-client
add add-default-route=no interface=vlan20

Qui ho creato la rotta di default, con gateway 192.168.10.1

/ip route
add check-gateway=ping disabled=no dst-address=0.0.0.0/0 gateway=192.168.10.1 routing-table=main suppress-hw-offload=no

Infine, ho assegnato il nome SW-A al dispositivo.

/system identity
set name=SW-A


R1-B:

Qui assegno i commenti alle interfacce Ethernet per organizzare meglio i collegamenti.
Ether1 è la WAN, Ether2 gestisce il collegamento PtP, Ether3 è la LAN.

/interface ethernet
set [ find default-name=ether1 ] comment=WAN
set [ find default-name=ether2 ] comment=”PtP Ponte Radio” mtu=1480
set [ find default-name=ether3 ] comment=LAN

Ho creato tre interfacce WireGuard: WG-A per il collegamento con il nodo A, WG-C per il nodo C e WG-D per il nodo D

/interface wireguard
add listen-port=13250 mtu=1420 name=WG-A private-key=…
add listen-port=13360 mtu=1420 name=WG-C private-key=…
add listen-port=13370 mtu=1420 name=WG-D private-key=…

Qui configuro una VLAN 60 sull’interfaccia ether3

/interface vlan
add interface=ether3 name=vlan60 vlan-id=60

Creo una lista WAN

/interface list
add name=WAN

Creo i pool DHCP per la LAN e per la VLAN 60

/ip pool
add name=dhcp_pool_Lan ranges=192.168.50.200-192.168.50.253
add name=dhcp_pool_vlan60 ranges=192.168.60.200-192.168.60.254

Configuro i server DHCP

/ip dhcp-server
add address-pool=dhcp_pool_Lan interface=ether3 name=dhcp_Lan
add address-pool=dhcp_pool_vlan60 interface=vlan60 name=dhcp_vlan60

Attivo OSPF su R1-B con l’ID del router

/routing ospf instance
add disabled=no name=Default router-id=10.0.0.2
/routing ospf area
add disabled=no instance=Default name=backbone

Aggiungo Ether1 alla lista WAN

/interface list member
add interface=ether1 list=WAN

Configuro i peer WireGuard per collegare R1-B ai nodi A, C e D

/interface wireguard peers
add allowed-address=”10.10.1.0/30,10.10.3.0/30,10.10.4.0/30,10.10.200.0/30,10.10.201.0/30,192.168.10.0/24,192.168.20.0/24,192.168.100.0/24,192.168.150.0/24,224.0.0.0/24″ comment=”To Node A” endpoint-address=172.16.16.2 endpoint-port=13250 interface=WG-A persistent-keepalive=30s public-key=”Tx9F6wWujag3tSXOqqrIU9MYzmTrT3nKd5RWols87ho=”

add allowed-address=”10.10.1.0/30,10.10.3.0/30,10.10.4.0/30,10.10.200.0/30,10.10.201.0/30,192.168.10.0/24,192.168.20.0/24,192.168.100.0/24,192.168.150.0/24,224.0.0.0/24″ comment=”To Node C” endpoint-address=172.24.24.2 endpoint-port=13360 interface=WG-C persistent-keepalive=30s public-key=”N3B2U50LNupfqmPNIJC0aKEnE7UUseoiSlG2vEUtf2o=”

add allowed-address=”10.10.1.0/30,10.10.3.0/30,10.10.4.0/30,10.10.200.0/30,10.10.201.0/30,192.168.10.0/24,192.168.20.0/24,192.168.100.0/24,192.168.150.0/24,224.0.0.0/24″ comment=”To Node D” endpoint-address=172.30.30.2 endpoint-port=13370 interface=WG-D persistent-keepalive=30s public-key=”2wd8YVExiKsrAvKnBj/ycUw9HWBnC4uD/z9gXZ/vQmI=”

Assegno gli indirizzi IP alle interfacce

/ip address
add address=172.20.20.2/30 interface=ether1 network=172.20.20.0
add address=10.10.10.2/30 interface=ether2 network=10.10.10.0
add address=192.168.50.1/24 interface=ether3 network=192.168.50.0
add address=192.168.60.1/24 interface=vlan60 network=192.168.60.0
add address=10.10.1.2/30 interface=WG-A network=10.10.1.0
add address=10.10.200.1/30 interface=WG-C network=10.10.200.0
add address=10.10.201.1/30 interface=WG-D network=10.10.201.0
add address=10.10.11.2/30 interface=ether2 network=10.10.11.0

Qui assegno degli indirizzi statici allo SW-B

/ip dhcp-server lease
add address=192.168.50.254 client-id=1:50:0:0:e:0:0 mac-address=50:00:00:0E:00:00 server=dhcp_Lan
add address=192.168.60.254 client-id=1:50:0:0:e:0:0 mac-address=50:00:00:0E:00:00 server=dhcp_vlan60

Imposto i server DNS

/ip dns
set servers=8.8.8.8,1.1.1.1

Creo regole per il firewall

/ip firewall filter
add action=accept chain=input comment=”Allow Winbox” in-interface-list=WAN port=8291 protocol=tcp
add action=accept chain=input in-interface=WG-A
add action=accept chain=input comment=”Accept wireguard 13360″ in-interface=ether1 port=13360 protocol=udp
add action=accept chain=input comment=”Accept wireguard 13370″ in-interface=ether1 port=13370 protocol=udp
add action=accept chain=input comment=”Accept wireguard 13250″ in-interface=ether1 port=13250 protocol=udp
add action=drop chain=input comment=”Drop all” in-interface-list=WAN

Imposto il masquerading per il traffico in uscita verso la WAN

/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN

Imposto le rotte di default

/ip route
add check-gateway=ping disabled=no dst-address=0.0.0.0/0 gateway=172.20.20.1
add check-gateway=ping disabled=no distance=2 dst-address=0.0.0.0/0 gateway=10.10.11.1

Configuro OSPF per le interfacce, assegnando costi e specificando le reti

/routing ospf interface-template
add area=backbone cost=10 disabled=no interfaces=ether2 networks=10.10.10.0/30
add area=backbone cost=20 disabled=no interfaces=ether3 networks=192.168.50.0/24
add area=backbone cost=20 disabled=no interfaces=vlan60 networks=192.168.60.0/24
add area=backbone cost=40 disabled=no interfaces=WG-A networks=10.10.1.0/30 type=ptp
add area=backbone cost=30 disabled=no interfaces=WG-C networks=10.10.200.0/30 type=ptp
add area=backbone cost=30 disabled=no interfaces=WG-D networks=10.10.201.0/30 type=ptp

Infine, assegno il nome R1-B al router.

/system identity
set name=R1-B


SW-B:

Qui ho creato due bridge: bridgeLan per la LAN principale con il filtraggio VLAN abilitato e bridgeNodeA per gestire il tunnel EoIP verso il nodo A

/interface bridge
add ingress-filtering=no name=bridgeLan vlan-filtering=yes
add name=bridgeNodeA

Ho configurato un tunnel EoIP tra SW-B e NodeA

/interface eoip
add local-address=192.168.50.254 mac-address=02:F3:95:43:7B:89 name=eoip-tunnel remote-address=192.168.10.254 tunnel-id=10

Creo la VLAN 60 sull’interfaccia bridgeLan

/interface vlan
add interface=bridgeLan name=vlan60 vlan-id=60

Qui aggiungo le porte Ethernet e il tunnel EoIP ai rispettivi bridge, Le porte Ether1, Ether3 e Ether4 fanno parte di bridgeLan, mentre Ether2 e il tunnel EoIP sono parte di bridgeNodeA. La porta Ether4 ha PVID 60

/interface bridge port
add bridge=bridgeLan ingress-filtering=no interface=ether1
add bridge=bridgeLan ingress-filtering=no interface=ether3
add bridge=bridgeLan ingress-filtering=no interface=ether4 pvid=60
add bridge=bridgeNodeA ingress-filtering=no interface=ether2
add bridge=bridgeNodeA interface=eoip-tunnel

Configuro il bridge per gestire la VLAN 60

/interface bridge vlan
add bridge=bridgeLan tagged=ether1,bridgeLan vlan-ids=60

Assegno l’indirizzo IP 192.168.50.254 al bridgeLan

/ip address
add address=192.168.50.254/24 interface=bridgeLan network=192.168.50.0

Configuro un client DHCP per la VLAN 60, senza impostare una rotta di default

/ip dhcp-client
add add-default-route=no interface=vlan60

Configuro la rotta di default

/ip route
add check-gateway=ping disabled=no dst-address=0.0.0.0/0 gateway=192.168.50.1 routing-table=main suppress-hw-offload=no

Infine, assegno il nome SW-B al dispositivo.

/system identity
set name=SW-B


R1-C:

Ho creato un bridge per la LAN locale

/interface bridge
add name=bridgeLAN

Ho creato due interfacce WireGuard: WG-A per connettere il nodo C con il nodo A, e WG-B per connettere il nodo C con il nodo B

/interface wireguard
add listen-port=13250 mtu=1420 name=WG-A private-key=…
add listen-port=13360 mtu=1420 name=WG-B private-key=…

Ho configurato un pool DHCP per la rete LAN

/ip pool
add name=dhcp_pool_Lan ranges=182.168.100.250-182.168.100.254

Ho configurato un server DHCP sulla LAN

/ip dhcp-server
add address-pool=dhcp_pool_Lan interface=bridgeLAN name=dhcpLan

Ho abilitato OSPF su R1-C, impostando l’ID del router

/routing ospf instance
add disabled=no name=default router-id=10.0.0.3
/routing ospf area
add disabled=no instance=default name=backbone

Ho collegato le interfacce Ethernet ether2, ether3 e ether4 al bridge LAN

/interface bridge port
add bridge=bridgeLAN ingress-filtering=no interface=ether2
add bridge=bridgeLAN ingress-filtering=no interface=ether4
add bridge=bridgeLAN ingress-filtering=no interface=ether3

Configuro i peer WireGuard per collegare il router R1-C ai nodi A e B

/interface wireguard peers
add allowed-address=”10.10.3.0/30,10.10.1.0/30,10.10.4.0/30,10.10.10.0/30,224.0.0.0/24,192.168.10.0/24,192.168.20.0/24,192.168.50.0/24,192.168.60.0/24,192.168.150.0/24″ comment=”To Node A” endpoint-address=172.16.16.2 endpoint-port=13270 interface=WG-A persistent-keepalive=30s public-key=”ZJAJkPTILOpnSR4vRBUIzpZpd8rWqN7NCIwc417jui8=”

add allowed-address=”10.10.200.0/30,10.10.201.0/30,10.10.1.0/30,10.10.3.0/30,10.10.4.0/30,10.10.10.0/30,192.168.10.0/24,192.168.20.0/24,192.168.50.0/24,192.168.60.0/24,192.168.150.0/24,224.0.0.0/24″ comment=”To Node B” endpoint-address=172.20.20.2 endpoint-port=13360 interface=WG-B persistent-keepalive=30s public-key=”zk8L2MNB/Vmvddfve10WqUtAPc/4lVGsuIsJfzYnsTs=”

Ho assegnato gli indirizzi IP alle interfacce

/ip address
add address=172.24.24.2/30 interface=ether1 network=172.24.24.0
add address=192.168.100.1/24 interface=bridgeLAN network=192.168.100.0
add address=10.10.3.2/30 interface=WG-A network=10.10.3.0
add address=10.10.200.2/30 interface=WG-B network=10.10.200.0

Configuro la rete DHCP per la LAN

/ip dhcp-server network
add address=182.168.100.0/24 gateway=182.168.100.1

Imposto i server DNS

/ip dns
set servers=8.8.8.8,1.1.1.1

Aggiungo regole al firewall

/ip firewall filter
add action=accept chain=input comment=”Allow Winbox” in-interface=ether1 port=8291 protocol=tcp
add action=accept chain=input comment=”Allow established and related” connection-state=established,related in-interface=ether1
add action=drop chain=input comment=”Drop all” in-interface=ether1

Abilito il masquerading per il traffico in uscita verso la WAN (ether1)

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1

Imposto la rotta di default

/ip route
add check-gateway=ping disabled=no dst-address=0.0.0.0/0 gateway=172.24.24.1

Configuro OSPF su tutte le interfacce, con costi e reti

/routing ospf interface-template
add area=backbone cost=30 disabled=no interfaces=WG-A networks=10.10.3.0/30 type=ptp
add area=backbone cost=20 disabled=no interfaces=bridgeLAN networks=192.168.100.0/24
add area=backbone cost=30 disabled=no interfaces=WG-B networks=10.10.200.0/30 type=ptp

Infine, assegno il nome R1-C al dispositivo

/system identity
set name=R1-C


R1-D:

Ho creato due bridge: uno per la LAN locale, chiamato bridgeLan, e un secondo bridge bridgeNodeA per gestire il collegamento tramite tunnel EoIP con il nodo A

/interface bridge
add name=bridgeLan
add name=bridgeNodeA

Ho configurato due interfacce WireGuard: WG-A per collegare il nodo D con il nodo A, e WG-B per collegare il nodo D con il nodo B

/interface wireguard
add listen-port=13250 mtu=1420 name=WG-A private-key=…
add listen-port=13370 mtu=1420 name=WG-B private-key=…

Ho creato un tunnel EoIP per collegare il nodo D al nodo A

/interface eoip
add comment=”To Node A” local-address=192.168.150.1 name=eoip-tunnel remote-address=192.168.10.254 tunnel-id=20

Ho configurato un pool DHCP

/ip pool
add name=dhcp_pool_Lan ranges=192.168.150.200-192.168.150.254
/ip dhcp-server
add address-pool=dhcp_pool_Lan interface=bridgeLan name=dhcp_Lan

Ho configurato OSPF su R1-D con ID router

/routing ospf instance
add disabled=no name=default router-id=10.0.0.4
/routing ospf area
add disabled=no instance=default name=backbone

Ho collegato le interfacce Ethernet ether2, ether3 e ether4 ai rispettivi bridge.
Ether2 ed Ether4 sono aggiunti a bridgeLan, mentre Ether3 e il tunnel EoIP sono aggiunti a bridgeNodeA

/interface bridge port
add bridge=bridgeLan interface=ether2
add bridge=bridgeNodeA interface=ether3
add bridge=bridgeLan interface=ether4
add bridge=bridgeNodeA interface=eoip-tunnel

Configuro i peer WireGuard per collegare R1-D con i nodi A e B

/interface wireguard peers
add allowed-address=”10.10.4.0/30,10.10.3.0/30,10.10.1.0/30,10.10.10.0/30,192.\
168.10.0/24,192.168.20.0/24,192.168.50.0/24,192.168.60.0/24,192.168.100.0/\
24,224.0.0.0/24″ comment=”To Node A” endpoint-address=172.16.16.2 \
endpoint-port=13280 interface=WG-A persistent-keepalive=30s public-key=\
“zLhguR+e551AdaqtE2YtG7iQDl7OSUaRegYstIu7rBs=”

add allowed-address=”10.10.1.0/30,10.10.3.0/30,10.10.4.0/30,10.10.200.0/30,10.\
10.201.0/30,10.10.10.0/30,192.168.10.0/24,192.168.20.0/24,192.168.50.0/24,\
192.168.60.0/24,192.168.100.0/24,224.0.0.0/24″ comment=”To Node B” \
endpoint-address=172.20.20.2 endpoint-port=13370 interface=WG-B \
persistent-keepalive=30s public-key=\
“VaxfxBfMdC1Jf9QjWTPTuaM1WWBYtl3HLtBvwVK6B3E=”

Configuro la rete DHCP per la LAN

/ip dhcp-server network
add address=192.168.150.0/24 gateway=192.168.150.1

Imposto i server DNS

/ip dns
set servers=8.8.8.8,1.1.1.1

Aggiungo regole al firewall

/ip firewall filter
add action=accept chain=input comment=”Allow Winbox” in-interface=ether1 port=8291 protocol=tcp
add action=accept chain=input comment=”Allow established and related” connection-state=established,related in-interface=ether1
add action=drop chain=input comment=”Drop all” in-interface=ether1

Abilito il masquerading per il traffico in uscita tramite la WAN

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1

Configuro la rotta di default

/ip route
add check-gateway=ping disabled=no dst-address=0.0.0.0/0 gateway=172.30.30.1

Configuro OSPF su tutte le interfacce, assegnando costi

/routing ospf interface-template
add area=backbone cost=20 disabled=no interfaces=bridgeLan networks=192.168.150.0/24
add area=backbone cost=30 disabled=no interfaces=WG-A networks=10.10.4.0/30 type=ptp
add area=backbone cost=30 disabled=no interfaces=WG-B networks=10.10.201.0/30 type=ptp

Infine, assegno il nome R1-D

/system identity
set name=R1-D


Dopo aver completato la configurazione di questo ambiente di rete con OSPF, ho eseguito diversi test e le rotte si aggiornano correttamente in base alla disponibilità delle connessioni.

Il sistema di routing dinamico con OSPF e VPN funziona come previsto, garantendo ridondanza e continuità del servizio anche in caso di interruzioni su uno dei percorsi.

In conclusione, configurare un ambiente di rete con OSPF rappresenta una soluzione efficace per ottimizzare la gestione delle reti. Integrando OSPF con VPN, EoIP e meccanismi di failover, è possibile creare un’infrastruttura di rete robusta e affidabile. Investire nella comprensione di queste tecnologie porterà a miglioramenti significativi nelle prestazioni e nella sicurezza della rete, garantendo una connettività fluida e continua per tutte le esigenze aziendali.


Se ti appassiona il mondo Mikrotik, ho anche creato un corso completo dove tratto molte configurazioni pratiche! Lo trovi su Udemy a questo indirizzo.

Hai un’azienda ed hai bisogno di supporto o assistenza? Contattami direttamente! 🚀

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Come posso aiutarti?