Da Tomato a Asuswrt-Merlin: come potenziare il tuo router wireless
Dopo aver utilizzato per diversi anni un router Cisco, quando questo mi ha abbandonato ho valutato l'acquisto di un nuovo router e la scelta è caduta sull'Asus RT-AC68U, un router wireless DualBand con 5 porte Gigabit e con un buon rapporto qualità/prezzo.
Uno dei principali motivi che mi ha convinto ad acquistare l'Asus è la sua compatibilità con tutta una serie di firmware alternativi. Segnalo che anche nella gamma dei router Linksys e Netgear ci sono diversi modelli compatibili.

In Rete si possono infatti trovare varie versioni di firmware che permettono di incrementare le possibilità di configurazione, permettendo di ottenere funzionalità presenti spesso solo in router molto più costosi.
Tra i firmware alternativi più popolari posso citare:
- DD-WRT
- Tomato
- OpenWrt
- Asuswrt-Merlin (una versione potenziata del firmware Asus standard)
Il router Asus RT-AC68U è compatibile con tutti e 4 i firmware. Inizialmente avevo scelto il firmware Tomato, nella versione AdvancedTomato, basata sul firmware Tomato by Shibby, che presenta un'interfaccia grafica molto più moderna e curata rispetto alla versione classica.
Rispetto al DD-WRT il firmware Tomato è solitamente più stabile, semplice da configurare e offre un miglior supporto a OpenVPN, ma offre qualche possibilità in meno a livello di personalizzazione ed è compatibile con un minor numero di modelli di router.
Cosa permette di fare un firmware come Tomato rispetto a quello di serie installato sull'Asus?
Ecco alcuni esempi:
- Configurare fino a un massimo due client VPN sul router, ad esempio NordVPN, per fare in modo che tutti i dispositivi della LAN possano accedere a Internet con l'IP della VPN. È anche possibile configurare il router per fare in modo che solo uno o alcuni dispositivi della LAN transitino dalla VPN e che gli altri accedano direttamente a Internet.
- Sfruttare una funzionalità QoS (Quality of Service) piuttosto avanzata che consente di determinare a quali attività online allocare più banda, in modo ad esempio da evitare che un utente che sta tutto il giorno collegato a BitTorrent possa impedire agli altri di navigare con una velocità accettabile.
- Potenziare il segnale wireless del router, sia nella banda 2.4 Ghz che in quella 5 Ghz.
- Disporre di grafici dettagliati per monitorare le prestazioni, il traffico e il consumo di banda.
- ...e molto altro ancora, come la possibilità di creare script personalizzati da avviare manualmente o programmare a determinati orari.

Se sei curioso, puoi consultare l'elenco dei router che supportano il firmware DD-WRT e qui invece l'elenco dei router supportati da AdvancedTomato. Si tratta generalmente di router e non di modem router. È bene prestare attenzione a questo aspetto, dato che anche nel caso dell'ASUS il modem router DSL-AC68U, che potrebbe sembrare simile al modello RT-AC68U non è compatibile con i firmware alternativi.
È opportuno inoltre tenere ben presente che aggiornare il firmware del proprio router è un'operazione piuttosto rischiosa. Se infatti il processo non va a buon fine si rischia di trasformare il router in un pezzo di plastica inutilizzabile. È necessario quindi procedere con molta cautela.
Alcuni consigli utili se utilizzi il firmware Tomato
Come programmare l'accensione e lo spegnimento del segnale WiFi
Nella sezione "Administration" -> "Scheduler" dell'interfaccia di amministrazione del firmware Tomato è possibile programmare determinate operazioni mediante script.
Utilizzando ad esempio i comandi:
wl radio on wl -i eth2 radio on
e
wl radio off wl -i eth2 radio off
si può rispettivamente accendere e spegnere la connessione wireless del proprio router. In questo modo è possibile evitare di lasciarla attiva tutto il giorno, magari anche quando siamo fuori casa (se ovviamente non ci serve attiva ;)).
I comandi sono due (wl radio e wl -i eth2) perché un comando è relativo alla trasmissione da 2.4 Ghz e l'altro è quello relativo alla trasmissione a 5 Ghz.

Come attivare il client VPN solo per un determinato indirizzo IP della propria LAN
Con il firmware Tomato è possibile disporre di due distinti client VPN sul proprio router. Se vuoi utilizzare un client in modo da far collegare un determinato indirizzo IP della tua rete locale mediante VPN, puoi farlo. Questo può essere utile se ad esempio vuoi utilizzare questo sistema per sfruttare ad esempio la VPN per guardare la programmazione statunitense di Netflix da una singola postazione, e vuoi evitare che tutto il traffico della tua rete transiti dalla VPN.
Dopo aver configurato il client VPN in base alle impostazioni fornite dal tuo fornitore (io uso NordVPN) è importante configurare alcune impostazioni e inserire un paio di script.
Nella scheda "Basic" di configurazione del client VPN lasciare disattivata la voce "Create NAT on tunnel".
Nella scheda "Advanced" di configurazione del client VPN non attivare la voce "Redirect Internet traffic" ma selezionare "Ignore Redirect Gateway (route-nopull)".
Nella scheda "Routing Policy" inserire un'impostazione come quella che vedi nell'immagine sottostante (modificando ovviamente 192.168.1.7 con l'indirizzo IP interno che vuoi far collegare attraverso la VPN).

Successivamente vai nella sezione "Administration" -> "Scripts" dell'interfaccia di amministrazione del firmware Tomato e inserisci queste righe nella scheda "Firewall":
iptables -I FORWARD -i br0 -o tun12 -j ACCEPT
iptables -I FORWARD -i tun12 -o br0 -j ACCEPT
iptables -I INPUT -i tun12 -j REJECT
iptables -t nat -A POSTROUTING -o tun12 -j MASQUERADE
Usa tun12 se utilizzi il client VPN numero 2, tun11 se utilizzi il client VPN numero 1.
Mentre nella scheda "WAN Up" inserisci queste righe:
sleep 30
ip route flush table 200
ip route flush cache
ip rule add from 192.168.1.7 lookup 200
VPN_GW=`ifconfig tun12 | awk '/inet addr/ {split ($2,A,":"); print A[2]}'`
ip route add table 200 default via $VPN_GW dev tun12
Anche in questo caso modifica, se necessario, tun12 con tun11 e, al posto di 192.168.1.7 inserisci l'IP che ti interessa. Riavvia il router e tutto dovrebbe funzionare correttamente.
Aggiornamento Giugno 2018: da Tomato a Asuswrt-Merlin :)
Dopo quasi 3 anni di utilizzo del firmware Tomato, il mio router Asus è ancora perfettamente funzionante ma ora ho deciso di passare al firmware Asuswrt-Merlin.
Avendo letto parecchi pareri positivi in merito a questo firmware ho deciso di provarlo e le prime impressioni sono decisamente positive. L'utilizzo è molto più semplice e intuitivo rispetto al Tomato. Inoltre, essendo basato sul firmware originale Asus ha il vantaggio che l'interfaccia di gestione è praticamente identica a quella originale, ma con molte funzioni in più.

Rispetto al Tomato è stato incredibilmente più semplice configurare servizi come il server OpenVPN, così come la creazione di reti wireless temporanee per consentire l'accesso agli ospiti.
Anche le prestazioni di rete mi sembrano migliori rispetto al firmware Tomato precedentemente installato, ma non ho effettuato test precisi al riguardo.
Una funzionalità che trovavo comoda nel firmware Tomato era quella di poter attivare e disattivare le regole di port forwarding, mantenendole però salvate nella configurazione del router. Con il nuovo firmware Asuswrt-Merlin tali regole possono invece essere solo create o eliminate, ma non disattivarle semplicemente senza cancellarle.