Mikrotik VRF + NAT – Gestione di device con lo stesso indirizzo ip
Di recente un amico mi ha chiesto una mano per configurare una Mikrotik.
La richiesta non era molto semplice, l’idea è che doveva gestire simultaneamente da un pc quattro host dove non era possibile cambiare la configurazione della rete.
Tutti questi dispositivi avevano le stesse impostazioni IP e Netmask ma non avevano settati ne il Gateway e ne il DNS.
Una situazione strana ma possibile, quindi non entrando in merito dell’impossibilità di riconfigurare l’indirizzo ip vedremo come risolvere questa problematica con
Mikrotik.
Quindi ecco i dati iniziali:
1. Quattro dispositivi con le stesse classe – 192.168.1.1/24; GW e DNS non sono specificati e non è possibile modificarli.
2. Il PC da cui è necessario accedere contemporaneamente a tutti e quattro i dispositivi.
3. Una semplice MikroTik con 5 porte.
Il primo problema che andremo ad affrontare è l’utilizzo dello stesso indirizzo IP/Classe IP su diverse interfacce del router per raggiungere i diversi device.
L’integrazione con una singola tabella di routing non è possibile, quindi dobbiamo fare vartie tabelle e in questo ci verrà in aiuto il Virtual Routing and Forwarding (VRF).
Non ci immergeremo molto nella configurazione del VRF faremo una configurazione base dove specifichiamo una tabella di routing per ogni interfaccia dove metteremo la stessa classe ip:
/ip route vrf add interfaces=ether1 routing-mark=DEV1 add interfaces=ether2 routing-mark=DEV2 add interfaces=ether3 routing-mark=DEV3 add interfaces=ether4 routing-mark=DEV4
L’indirizzo IP 192.168.2.1 verrà utilizzato per amministrare la MikroTik:
/ip address add address=192.168.2.1/24 interface=ether5 network=192.168.2.0 add address=192.168.1.2/24 interface=ether1 network=192.168.1.0 add address=192.168.1.2/24 interface=ether2 network=192.168.1.0 add address=192.168.1.2/24 interface=ether3 network=192.168.1.0 add address=192.168.1.2/24 interface=ether4 network=192.168.1.0
Ricordiamo che su i dispositivi che devono essere gestiti non vi è la possibilità di configurare un gateway. Quindi abbiamo il bisogno di separarli in qualche modo per l’accesso da parte del PC e naturalmente usando dei NAT. Per ogni dispositivo selezioniamo un IP Della subnet 192.168.2.0/24 e lo configuriamo sull’interfaccia ether5:
/ip address add address=192.168.2.11/24 interface=ether5 network=192.168.2.0 add address=192.168.2.12/24 interface=ether5 network=192.168.2.0 add address=192.168.2.13/24 interface=ether5 network=192.168.2.0 add address=192.168.2.14/24 interface=ether5 network=192.168.2.0
Prima di configurare il NAT dobbiamo fare in modo che i pacchetti vengano trasmessi tra le diverse tabelle di routing, per fare questo è necessario taggare le rotte in base ad i nuovi indirizzi IP che subito dopo saranno Nattati.
Secondo la documetazione le tabelle Mangle responsabili di marcare il traffico vengono eseguiti prima della tabella NAT, quindi sulla base di questa informazione procediamo come segue:
/ip firewall mangle add action=mark-routing chain=prerouting dst-address=192.168.2.11 new-routing-mark=DEV1 add action=mark-routing chain=prerouting dst-address=192.168.2.12 new-routing-mark=DEV2 add action=mark-routing chain=prerouting dst-address=192.168.2.13 new-routing-mark=DEV3 add action=mark-routing chain=prerouting dst-address=192.168.2.14 new-routing-mark=DEV4
Sulla base di queste regole i pacchetti che arrivano dall’interfaccia ether5 in base alla destinazione si sposterà sulla tabella di routing corretta , i pacchetti di ritorno devono ripassare dall’interfaccia ether5 e quindi sulla sua tabella di routing che in questo caso è la main. Per fare questo aggiungiamo una nuova regola Mangle:
/ip firewall mangle add action=mark-routing chain=prerouting dst-address=192.168.2.2 new-routing-mark=main
In base a questa regola, tutti i pacchetti che hanno come indirizzo di destinazione l’ip 192.168.2.2 verranno trasferiti alla tabella di routing “main” in cui si trova l’interfaccia del PC di gestione. Ora per raggiungere/distinguere i vari dispositivi faremo dei NAT:
/ip firewall nat add action=dst-nat chain=dstnat dst-address=192.168.2.11 in-interface=ether5 to-addresses=192.168.1.1 add action=src-nat chain=srcnat out-interface=ether1 to-addresses=192.168.1.2 add action=dst-nat chain=dstnat dst-address=192.168.2.12 in-interface=ether5 to-addresses=192.168.1.1 add action=src-nat chain=srcnat out-interface=ether2 to-addresses=192.168.1.2 add action=dst-nat chain=dstnat dst-address=192.168.2.13 in-interface=ether5 to-addresses=192.168.1.1 add action=src-nat chain=srcnat out-interface=ether3 to-addresses=192.168.1.2 add action=dst-nat chain=dstnat dst-address=192.168.2.14 in-interface=ether5 to-addresses=192.168.1.1 add action=src-nat chain=srcnat out-interface=ether4 to-addresses=192.168.1.2
Quindi usando il NAT ed il VRF riusciamo a raggiungere i diversi host nonostante abbiano lo stesso indirizzo IP. Per accedere ad i diversi dispositivi (ex. tramite l’interfaccia web) dal PC di gestione inseriremo come host nel browser i seguenti indirizzi:
DEV1 - 192.168.2.11 DEV2 - 192.168.2.12 DEV3 - 192.168.2.13 DEV4 - 192.168.2.14
Spero possa essere utile a chi come me si è trovato a gestire questo caso anomalo 🙂
Se ti è stato utile offrimi una birra 😉
Submit a Comment