This guide will be written in Italian, but first of all I need to say a huge thank you to the 8311 community members, mainly djGrrr, without him this would not have been possible. The guide will be based on the original one available here: https://pon.wiki/guides/swap-out-the-nokia-xs-010x-q-for-a-small-form-factor-pluggable-was-110/
Questa guida illustrerà tutti i passaggi che ho effettuato per arrivare alla sostituzione dell'ONT Nokia XS-010X-Q con una XGSPON-ONU-STICK WAS-110 su rete Easy IP 10Gbps simmetrica, inoltre tramite un Hook script la gestione della VLAN ID non sarà più necessaria lato router, permettendo così ai possessori dei TP-Link di utilizzare la Link Aggregation, come ad esempio sul BE800, che è proprio quello che verrà utilizzato in questa guida.
TL;DR
Premi per mostrare
Premi per nascondere
Non c'è bisogno di leggere tutto questo papiro, ma reputo interessante capire i vari passaggi eseguiti per arrivare al risultato voluto. Inoltre sarà presente anche il metodo di export del MIB, che è stato essenziale per scoprire gli ultimi dati mancanti per farsi voler bene dall'OLT e quindi poter rendere visibili le VLAN Tables.
Questo perchè, il "PON PLOAM Status: 05.1, Associated state" può essere fake, nel senso che l'ONT è visibile in rete, ma l'OLT non gli passa i dati perchè c'è qualcosa che non gli piace.
By the way, eccovi qui l'elenco di tutti gli attributi da inserire nella stick:
- PON Serial Number (ONT ID) =
Serial number
- Vendor ID =
Vendor ID
- Equipment ID =
_________XS-010X-Q__
- Hardware Version =
ONT P/N. + ICS (tutto attaccato, questi dati si trovano nell'etichetta dell'ONT)
- Sync Circuit Pack Version =
✔
- Software Version A =
Active software version
- Software Version B =
Standby software version
- Firmware Version Match =
^(3FE4933\d[A-Z]OCK\d{2})$
- MIB File =
/etc/mibs/prx300_1U.ini
- OMCC Version =
0xA0
- PON Slot =
1 (non è un errore, è 1)
- IP Host MAC Address =
MAC address
E l'hook script:
#!/bin/sh
ANI_VLAN=100
internet_ds_rules() {
tc_flower_add dev eth0_0 egress handle 0x1 protocol 802.1Q pref 1 flower vlan_id $ANI_VLAN skip_sw action vlan pop pass
tc_flower_add dev eth0_0 egress handle 0x2 protocol 802.1Q pref 2 flower skip_sw action drop
tc_flower_add dev eth0_0 egress handle 0x3 protocol all pref 3 flower skip_sw action drop
}
internet_us_rules() {
tc_flower_add dev eth0_0 ingress handle 0x1 protocol 802.1Q pref 1 flower skip_sw action drop
tc_flower_add dev eth0_0 ingress handle 0x2 protocol all pref 2 flower skip_sw action vlan push id $ANI_VLAN priority 0 pass
}
internet_ds_rules || { tc_flower_clear dev eth0_0 egress; internet_ds_rules; }
internet_us_rules || { tc_flower_clear dev eth0_0 ingress; internet_us_rules; }
Have fun 🤓
CAPITOLO 1 | ACQUISTO E UNBOXING DELLA STICK
Dato il costo elevato tra acquisto, spedizione e dogana, consiglio di creare dei gruppi di acquisto o informarsi su pon.wiki per accedere ad alcuni in via di creazione, così vi arriverà la stick anche già flashata con il firmware OpenWRT: https://pon.wiki/xgs-pon/ont/bfw-solutions/was-110/#value-added-resellers
Io personalmente ho deciso di acquistare la stick da FiberMall ( https://fibermall.com/sale-460693-xgspon-onu-sfp-stick.htm ) e ho dovuto sorbirmi i seguenti costi per una singola unità:
- Stick: 153.60 Euro
- Spedizione DHL: 36.52 Euro
- Dogana: 58.28 Euro
- Totale = 248.40 Euro
BONUS, anzi, MALUS: se non avete a disposizione un Media Converter o uno Switch con almeno una porta SFP+ dovrete comprarne uno. Io ho optato per un Media Converter, acquistato su Amazon 93,99 Euro, il modello è questo: https://www.amazon.it/dp/B0C37BHJJP. Se potessi tornare indietro acquisterei uno Switch Managed, così in caso di problemi potete anche catturare il traffico tramite Port Mirroring.
Devo ammettere che la spedizione è stata veramente veloce, inserendo i miei dati fiscali e pagando la dogana tutto online, in 3 giorni mi è arrivata a casa in Italia dalla Cina (partita il 5 Febbraio sera ora Cinese e arrivata il 7 mattina ora Italiana).
Il pacco è arrivato in una busta DHL con all'interno la box di cartone con vari strati di polistirolo, ordine stampato e una bustina di plastica per contenere la Stick, devo dire tutto ben imballato. Sotto lo spoiler varie foto.
Premi per mostrare
Premi per nascondere
CAPITOLO 2 | INSTALLAZIONE FIRMWARE COMMUNITY 8311
Per procedere all'inserimento dei dati dell'OLT Nokia per mascherare il WAS-110, bisogna sostituire il firmware originale della stick con uno basato su OpenWRT creato dalla community 8311, i quali ringrazio infinitamente di nuovo per il loro pieno supporto.
Come prima cosa scarichiamo il firmware, al momento della scrittura di questo post l'ultimo disponibile è la v2.8.0, quindi eseguiamo il comando curl -L --output-dir ~/Downloads -O https://github.com/djGrrr/8311-was-110-firmware-builder/releases/download/v2.8.0/WAS-110_8311_firmware_mod_v2.8.0_basic.7z
Ora decomprimiamo il file .7z tramite sevenzip, in questo modo ci assicuriamo che il file local-upgrade.tar non venga modificato, cosa che capita ad esempio con l'utility di decompressione di macOS.
Potete installare sevenzip da brew tramite il comando brew install sevenzip e poi estrapolare il tutto in /tmp
7zz e '-i!local-upgrade.*' ~/Downloads/WAS-110_8311_firmware_mod_<version>_basic.7z -o/tmp
Colleghiamo la stick al Mac e configuriamo la scheda di rete in modo da poter accedere all'interfaccia web, impostando:
- Indirizzo IP: 192.168.11.2
- Maschera sottorete: 255.255.0.0
- Router: 192.168.11.1
Premi per mostrare
Premi per nascondere
Aprite il browser e digitate 192.168.11.1 ed eseguite il login:
- Username: admin
- Password:
QsCg@7249#5281
Premi per mostrare
Premi per nascondere
Andate in Service --> Service Control ed abilitate il servizio SSH mettendo la spunta e premendo su Save
Premi per mostrare
Premi per nascondere
PS-1: se collegate già il vostro cavo in fibra, potrete vedere dallo Status il valore di attenuazione, così prima del flash del firmware sapete se la stick sta funzionando bene. Inoltre potrete confrontare il valore con quello dell'ONT Nokia, che dovrà essere (più o meno) uguale. Sotto lo spoiler trovate anche una tabella postata in un vecchio thread con i valori e relativa qualità: https://forum.fibra.click/d/4706-valori-accettabili-di-rumore-su-fibra-ftth/21
Premi per mostrare
Premi per nascondere
Adesso che il servizio SSH è abilitato, possiamo accederci da terminale come root, tramite l'algoritmo ssh-rsa
ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1
inseriamo la password QpZm@4246#5753 ed eseguiamo un bel dump del firmware tramite il comando
mkdir -p /tmp/fw; for part in kernelA bootcoreA rootfsA kernelB bootcoreB rootfsB; do VOL=$(ubinfo /dev/ubi0 -N "$part" | grep "Volume ID" | awk '{print $3}'); [ -n "$VOL" ] && { DEV="/dev/ubi0_$VOL"; OUT="/tmp/fw/ubi0_$VOL-$part.img"; echo "Dumping $part ($DEV) to: $OUT"; dd if="$DEV" of="$OUT"; }; done; exit
a questo punto quando lo script terminerà la sessione SSH, creiamo una cartella ont e dal nostro Mac ci copiamo il dump
cd ~/; scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa 'root@192.168.11.1:/tmp/fw/ubi*' ./
Premi per mostrare
Premi per nascondere
Con il backup salvato e messo da parte per qualsiasi evenienza, possiamo spostare il file .tar del community firmware dalla nostra cartella /tmp a quella della stick
scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa /tmp/local-upgrade.tar root@192.168.11.1:/tmp/
Premi per mostrare
Premi per nascondere
E avviare finalmente l'installazione dal terminale del Mac
ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1 'tar xvf /tmp/local-upgrade.tar -C /tmp/ -- upgrade.sh && /tmp/upgrade.sh -y -r /tmp/local-upgrade.tar'
Premi per mostrare
Premi per nascondere
A fine installazione ritorniamo nel browser ed attendiamo finchè all'indirizzo 192.168.11.1 comparirà la schermata di login di OpenWRT
Premi per mostrare
Premi per nascondere
Prima di continuare, torniamo nel terminale per eliminare il vecchio host ID (dato che il firmware è cambiato) e proviamo a loggare di nuovo in ssh, da ora possiamo non utilizzare l'algoritmo ssh-rsa
ssh-keygen -R 192.168.11.1
ssh root@192.168.11.1
Se è tutto ok, possiamo uscire dalla sessione e ritornare sul browser all'indirizzo https://192.168.11.1/cgi-bin/luci/admin/8311/firmware in cui potremo vedere due versioni diverse di firmware installate.
Dobbiamo andare a sostituire il firmware originale ancora salvato, con quello della community, quindi premiamo su Browse e selezioniamo il file local-upgrade.tar precedentemente estratto
Premi per mostrare
Premi per nascondere
Una volta completato farà in automatico un riavvio
Premi per mostrare
Premi per nascondere
E a questo punto avremo la stick pronta da utilizzare con entrambi i firmware uguali
Premi per mostrare
Premi per nascondere
PS-2: se state utilizzando il mio stesso Media Converter, potrete capire che il community firmware è stato flashato perchè si accenderà la spia SD (Signal Detected) anche se la stick non è connessa alla fibra
Premi per mostrare
Premi per nascondere
Firmware originale

Firmware community

CAPITOLO 3 | RECUPERO DATI NOKIA PER IL MASCHERAMENTO
A questo punto possiamo disconnettere la stick e connettere l'ONT direttamente al Mac e modificare di nuovo le impostazioni della scheda di rete:
- Indirizzo IP: 192.168.100.2
- Maschera sottorete: 255.255.0.0
- Router: 192.168.100.1
Premi per mostrare
Premi per nascondere
Aprite il browser e digitate 192.168.100.1 ed eseguite il login (attenzione al protocollo, http:// e non https://)
- Username: admin
- Password:
1234
Premi per mostrare
Premi per nascondere
Dopo il login comparirà una finestra in cui bisogna premere More info
Premi per mostrare
Premi per nascondere
A questo punto avremo tutti i dati, segniamoceli dato che ci serviranno al prossimo capitolo. In più potremo vedere anche l'attenuazione della linea, in caso vogliate fare un confronto con la stick
Premi per mostrare
Premi per nascondere
CAPITOLO 4 | IMMISSIONE DATI NELLA STICK E CONNESSIONE ROUTER
Ora dobbiamo fare il contrario del capitolo 3, disconnettiamo l'ONT e riconnettiamo la stick, modificando di nuovo le impostazioni della scheda di rete:
- Indirizzo IP: 192.168.11.2
- Maschera sottorete: 255.255.0.0
- Router: 192.168.11.1
Premi per mostrare
Premi per nascondere
Andiamo all'indirizzo https://192.168.11.1/cgi-bin/luci/admin/8311/config e inseriamo i seguenti dati nel tab PON:
- PON Serial Number (ONT ID) =
Serial number
- Vendor ID =
Vendor ID
- Equipment ID =
_________XS-010X-Q__
- Hardware Version =
ONT P/N. + ICS (tutto attaccato, questi dati si trovano nell'etichetta dell'ONT)
- Sync Circuit Pack Version =
✔
- Software Version A =
Active software version
- Software Version B =
Standby software version
- Firmware Version Match =
^(3FE4933\d[A-Z]OCK\d{2})$
- MIB File =
/etc/mibs/prx300_1U.ini
- OMCC Version =
0xA0
- PON Slot =
1 (non è un errore, è 1)
- IP Host MAC Address =
MAC address
Premi per mostrare
Premi per nascondere
A questo punto passiamo al tab ISP Fixes, selezioniamo Hook script only e inseriamo il seguente Hook script e premiamo i due Save:
#!/bin/sh
ANI_VLAN=100
internet_ds_rules() {
tc_flower_add dev eth0_0 egress handle 0x1 protocol 802.1Q pref 1 flower vlan_id $ANI_VLAN skip_sw action vlan pop pass
tc_flower_add dev eth0_0 egress handle 0x2 protocol 802.1Q pref 2 flower skip_sw action drop
tc_flower_add dev eth0_0 egress handle 0x3 protocol all pref 3 flower skip_sw action drop
}
internet_us_rules() {
tc_flower_add dev eth0_0 ingress handle 0x1 protocol 802.1Q pref 1 flower skip_sw action drop
tc_flower_add dev eth0_0 ingress handle 0x2 protocol all pref 2 flower skip_sw action vlan push id $ANI_VLAN priority 0 pass
}
internet_ds_rules || { tc_flower_clear dev eth0_0 egress; internet_ds_rules; }
internet_us_rules || { tc_flower_clear dev eth0_0 ingress; internet_us_rules; }
Premi per mostrare
Premi per nascondere
Opzionale, nella tab Device possiamo forzare la link-speed della stick a 10G e disabilitare l'Early serial console, se volete approfondire la questione potete visitare il seguente link: https://pon.wiki/guides/troubleshoot-connectivity-issues-with-the-was-110/#lan-troubleshooting
Premi per mostrare
Premi per nascondere
Facciamo un bel reboot della stick da System --> Reboot e una volta eseguito dobbiamo assicurarci che:
- In 8311 --> PON Status (tab Optical Status) sia presente il valore Receive power
Premi per mostrare
Premi per nascondere
- In 8311 --> PON Status (tab Status) sia presente il valore PON PLOAM Status a 05.1, Associated state
Premi per mostrare
Premi per nascondere
- In 8311 --> VLAN Tables sia visibile la VLAN Table
Premi per mostrare
Premi per nascondere
Disconnettiamo la stick e colleghiamola al router, dalla dashboard selezioniamo la porta SFP+ e inseriamo i dati PPPoE senza nessuna VLAN ID settata
Premi per mostrare
Premi per nascondere
Se tutto sarà ok, potrete navigare, eccovi uno speedtest eseguito con il BE800 connesso al WAS-110
Premi per mostrare
Premi per nascondere
FINE! 😎 tengo a precisare che questa guida è stata scritta il più possibile semplice per poter dare la possibilità di fare lo swap anche alle persone che non sono esperte di informatica. I dati statici presenti in questa guida sono stati trovati grazie al dump del MIB del Nokia. Se a voi non funziona Internet, potete eseguirne uno tramite la guida a questo link: https://forum.fibra.click/d/64821-guida-come-eseguire-il-dump-del-mib-del-nokia-xs-010x-q
L'Hook script è stato scritto direttamente da djGrrr dopo vari comandi che mi ha fatto eseguire dal terminale del WAS-110, dato che la PPPoE non saliva. A quanto pare perchè, cito lui stesso:
interesting, so i was right. which means that some of the packets must not be priority 0. i remember the chinese gpon firmware had an option to make it ignore vlan priotity on downstream
Nello script mi ha fatto anche il favore di inserirci la gestione della VLAN ID per potermi far usare la Link Aggregation del TP-Link. Qualsiasi utente esperto del forum è libero di creare hook script diversi e pubblicarli qui, se volete potete anche spiegare cosa fa il mio, dato che non essendo un esperto di OpenWRT purtroppo non saprei dirvelo.
Have fun 🥳