Che cosa sono i canali di rilascio?

Sono le “corsie” su cui MikroTik pubblica le versioni di RouterOS. Ogni canale ha un compromesso diverso fra novità e stabilità, e quando un router controlla gli aggiornamenti guarda solo il canale impostato.

  • long-term: un ramo più vecchio, mantenuto a lungo con le sole correzioni importanti. Per le reti di produzione che devono cambiare il meno possibile.
  • stable: l’ultima versione considerata pronta, con novità e correzioni. Per la maggior parte delle installazioni.
  • testing: le release candidate (rc) della prossima versione stable. Per il laboratorio e i test prima del rilascio.
  • development: le beta, con le funzioni più nuove e meno collaudate. Solo laboratorio.

Qual è la differenza fra stable e long-term?

Stable porta tutte le novità della versione corrente: nuove funzioni, nuovi dispositivi supportati, correzioni. Long-term resta su un ramo precedente e riceve solo correzioni di sicurezza e di problemi gravi, senza cambiamenti di funzionamento. Su questo blog ne vedi un esempio negli articoli della categoria Firmware: la stessa correzione LTE uscita sia per la stable sia per la long-term, con due numeri di versione diversi.

In pratica: long-term per chi non vuole sorprese, stable per chi ha bisogno di funzioni o hardware recenti.

E testing e development?

Testing contiene le release candidate, cioè le versioni che diventeranno la prossima stable: servono per verificare in anticipo che la propria configurazione continui a funzionare. Development contiene le beta, con le funzioni appena sviluppate. Entrambe possono avere regressioni: vanno provate in laboratorio o su un CHR, mai sulla rete dei clienti.

Come si sceglie il canale su un MikroTik?

Da terminale, in tre comandi:

/system package update set channel=long-term
/system package update check-for-updates
/system package update install

Al posto di long-term si scrive stable, testing o development. In WinBox la stessa cosa è in System → Packages → Check For Updates, con il menu a tendina Channel.

Dopo l’aggiornamento di RouterOS va aggiornato anche il firmware della scheda (RouterBOOT), con un secondo riavvio:

/system routerboard upgrade
/system reboot

Come si aggiorna a mano un router senza internet?

Quando il router non raggiunge i server MikroTik (rete isolata, laboratorio, apparato appena tolto dalla scatola) il comando install non può scaricare nulla: il pacchetto si porta sul router a mano. Bastano un PC con WinBox e cinque passi.

Passo 1: che architettura e che pacchetti ha il router?

/system resource print
/system package print

Annota la riga architecture-name (per esempio arm64, mmips, tile) e l’elenco dei pacchetti installati: oltre a routeros possono esserci wifi-qcom, wireless, container e altri. Tutti i pacchetti devono avere la stessa versione, quindi dovrai scaricare anche quelli aggiuntivi.

Passo 2: come scarico i file giusti?

Dall’Archivio RouterOS: scegli l’architettura e la versione e la pagina ti dà i link diretti a download.mikrotik.com. Il file principale è routeros-<versione>-<architettura>.npk; i pacchetti aggiuntivi stanno nello zip all_packages, da cui estrai solo quelli che hai installati.

Passo 3: prima di toccare il router, un backup

/system backup save name=prima-aggiornamento
/export file=prima-aggiornamento

Copia i due file sul PC (WinBox, Files, trascinandoli fuori). Controlla anche che ci sia spazio: in /system resource print la riga free-hdd-space deve superare la dimensione dei pacchetti. Sugli apparati con 16 MB di memoria conviene caricare solo i pacchetti indispensabili.

Passo 4: come carico i pacchetti sul router?

In WinBox apri Files e trascina i file .npk nella finestra, nella cartella principale (non in una sottocartella). In alternativa da PC con scp:

scp routeros-7.23.7-arm64.npk admin@192.168.88.1:/

Al posto di admin e dell’indirizzo metti l’utente e l’IP del tuo router.

Passo 5: riavvio e controllo

/system reboot

RouterOS installa i pacchetti durante il riavvio e poi cancella i file .npk. Quando torna su, verifica:

/system package print
/log print where topics~"system"

Se la versione è rimasta la vecchia, nel log trovi il motivo: di solito un pacchetto aggiuntivo con versione diversa, o spazio insufficiente. Infine aggiorna anche il firmware della scheda, con un secondo riavvio:

/system routerboard upgrade
/system reboot

Come si torna a una versione precedente?

Scegliere un canale più conservativo non fa tornare indietro da solo il router. Per un downgrade si caricano nella memoria del router i pacchetti .npk della versione desiderata, presi dall’Archivio RouterOS, che trova anche le versioni vecchie, con gli stessi passi dell’aggiornamento a mano. L’unica differenza è il comando finale, al posto del semplice riavvio:

/system package downgrade

Il router chiede conferma, si riavvia e installa la versione caricata. Il backup del passo 3 qui è ancora più importante: le configurazioni scritte con funzioni nuove possono non essere comprese da una versione più vecchia.

E se il router non si avvia più?

Si usa Netinstall, il programma MikroTik che reinstalla RouterOS dalla rete: il PC fa da server, il router si avvia dalla porta Ethernet (di solito tenendo premuto il tasto reset all’accensione) e riceve il sistema da capo. Netinstall per Windows e Linux si scarica, nella stessa versione dei pacchetti, dall’Archivio RouterOS. Attenzione: Netinstall cancella la configurazione, a meno di non indicargli uno script da applicare.

Che cosa conviene fare in produzione?

Una regola semplice, che uso anche io:

  • router dei clienti e reti critiche: long-term, oppure stable dopo qualche settimana dall’uscita;
  • prima di aggiornare: leggere il changelog, in particolare le righe con introduced in (indicano regressioni corrette) e quelle che citano il proprio modello;
  • prima in laboratorio: la stessa versione su un CHR o su un apparato identico, con la propria configurazione;
  • mai testing o development fuori dal laboratorio.

Quando esce una correzione di sicurezza importante, però, non si aspetta: è il caso in cui conviene aggiornare subito, sul canale che si sta già usando.

Com’era nel 2015?

Nel 2015, con RouterOS 6.31, MikroTik aggiunse un terzo ramo ai due esistenti: accanto alla versione corrente e alle release candidate nacque un ramo “bugfix only”, con le sole correzioni. Lo avevo raccontato allora su wirelessguru.it. Quel ramo è l’antenato dell’attuale long-term, e lo schema a quattro canali è rimasto lo stesso anche in RouterOS 7.

Domande frequenti

Quale canale di RouterOS usare in produzione?

In produzione si usa il canale long-term, oppure stable dopo qualche settimana dall’uscita di una versione. I canali testing e development sono riservati al laboratorio.

Che differenza c’è fra RouterOS stable e long-term?

Stable è l’ultima versione pronta con tutte le novità; long-term è un ramo precedente che riceve solo correzioni di sicurezza e di problemi gravi, senza cambiare il funzionamento.

Cambiare canale fa tornare indietro la versione?

No. Per tornare a una versione precedente si caricano i pacchetti .npk di quella versione nella memoria del router e si usa il comando /system package downgrade. I pacchetti delle versioni vecchie si trovano nell’archivio di download di MikroTik.

Come si aggiorna un MikroTik senza internet?

Si scarica su un PC il pacchetto .npk della versione e dell’architettura del router, lo si carica nella finestra Files di WinBox e si riavvia: RouterOS installa il pacchetto all’avvio. Tutti i pacchetti installati devono avere la stessa versione.

Dopo l’aggiornamento di RouterOS cosa devo fare?

Aggiornare il firmware della scheda con /system routerboard upgrade e riavviare: RouterBOOT si aggiorna solo con quel comando e un secondo riavvio.