lunedì 17 dicembre 2012

Script PowerShell per SNR NetGear DGN2200

In questo articolo propongo uno script di Windows PowerShell per effettuare alcune operazioni con il router NetGear DGN2200 (funziona solo sulla versione v1).
Come saprete, questo router è dotato di un chip Broadcom che ha tra le sue peculiarità la possibilità di settare il margine di rumore minimo per la connessione ADSL.
Solitamente il margine di rumore minimo delle ADSL residenziali è di 12dB, ma se non si raggiunge la velocità massima prevista dal contratto abbassando questo valore sarà possibile instaurare una connessione a velocità più elevata.

I comandi dello script vengono inviati al router attraverso la porta 23, ma non è necessario che sia installato Telnet sul vostro sistema perchè fa tutto PowerShell (necessaria la v.2, inclusa da Windows Vista in poi). Serve invece un piccolo programmino telnetEnable.exe - che troverete nell'archivio assieme allo script - che abilita il router alla ricezione dei comandi attraverso la porta 23, abilitazione che deve essere fatta ogni volta che il router viene spento e poi riacceso. Se ne occuperà lo script in automatico, ma è fondamentale che sia piazzato nella stessa cartella di telnetEnable.exe.
Un requisito importante è che abbiate abilitato nel vostro sistema l'esecuzione degli script PowerShell, che per sicurezza è disabilitata di default. Avviate PowerShell con i diritti di amministrazione (facendo clic destro sull'eseguibile e scegliendo Esegui come amministratore) e digitate il cmdlet

Set-Executionpolicy RemoteSigned

seguito dal tasto Invio, e confermate digitando S e poi Invio nuovamente.


In questo modo sarà possibile eseguire gli script in locale, mentre eventuali script scaricati dalla rete potranno essere eseguiti solo se firmati da un produttore certificato (cosa che mantiene la sicurezza elevata).

A questo punto dovete procedere con una modifica all'interno dello script, è necessario infatti inserire il corretto indirizzo MAC del router (ovviamente varia da computer a computer). Accedete al menu di configurazione del DGN2200 ed andate alla scheda Stato del router, troverete l'indirizzo MAC nella sezione LAN (nell'esempio seguente è contornato in rosso).


Adesso dovete inserirlo nello script, fate clic destro su 2200.ps1 e scegliete Edita, scorrete fino alla riga 62 e modificate l'indirizzo MAC avendo cura di digitarlo senza i due punti tra coppia e coppia:


salvate il file ed uscite, ora è tutto concluso.
Fate clic destro su 2200.ps1 e scegliete Esegui con PowerShell, ecco lo script in esecuzione:


premete 1, 2, 3, R o E in base all'operazione che volete effettuare e premete Invio:

1. imposta il margine di rumore (target noise) della connessione a 6dB
2. cambia l'indirizzo IP esterno del router
3. imposta il margine di rumore (target noise) della connessione al valore di default di 12dB
4. riavvia il router
5. esce dallo script

Tenete presente che i comandi impostati nello script per la variazione del SNR potrebbero non essere corretti per tutti i profili ADSL: se non c'è corrispondenza tra il comando usato ed il margine di rumore effettivamente risultante al riavvio del router, editate lo script e scorretelo fino alle righe 38 e 48:


il valore evidenziato in rosso è quello che imposta il margine a 6dB, quello in giallo a 12dB. Provvedete a cambiarli e fate delle prove finchè trovate quelli giusti (usate sempre numeri interi).

Qualora invece non abbiate piazzato telnetEnable.exe nella stessa cartella lo script ve lo segnalerà e non sara possibile effettuare alcuna operazione:


Riassumendo, questi i requisiti affinchè lo script funzioni correttamente:

1. NetGear DGN2200 v.1
2. PowerShell 2.0 installato nel sistema
3. Esecuzione degli script .PS1 abilitata
4. telnetEnable.exe nella stessa cartella dello script
5. Modifica dello script con l'inserimento dell'indirizzo MAC del router
5. Indirizzo del router 192.168.0.1 (potete editare lo script e cambiarlo alla bisogna)
6. Impostazioni del firewall corrette per PowerShell e telnetEnable.exe (debbono poter comunicare con l'indirizzo del router)

Download 2200.zip

Segnalatemi problemi e malfunzionamenti. Grazie!

34 commenti:

antonio ha detto...

Intanto grazie per lo script,che funziona perfettamente ,
mi ha permesso senza troppe complicazioni di abbassare snr del netgear 2200 v1 a 6.1db con relativo aumento di banda di circa 3 mega(ero a snr 9.1 impostato dal gestore)

Non ho ancora fatto molti test ma volevo chiederti se lo script è automatico solo con pc acceso immagino e quindi senza questa condizione ad un ravvio del router tornerei alle impostazioni della centrale telefonica di default,
confermi?

skynet81 ha detto...

Ciao Antonio, mi fa piacere che lo script funzioni bene.
Quanto alla tua domanda, purtroppo l'impostazione a 6dB resta valida fino a che il router non viene riavviato. Per mantenere fisso il SNR l'unico modo è installare un firmware modificato (ne girano in rete), ma ciò invalida la garanzia.
Oppure, se la linea rimane comunque stabile, chiedi al tuo gestore se è possibile abbassare il target noise a 6dB.

antonio ha detto...

grazie ancora dell'attenzione, volevo chiederti un consiglio:
in questo momento infostrada sta verificando la linea per un update 20 mega ,io sulla 8 mega avevo valori SNR 20 DB e attenuazione lin. 20db quindi banda piena senza problemi.
ora ho forzato i 6db di SNR con lo script dato che il gestore ,nonostante non siano avvenute disconnessioni ha ugualmente alzato SNR da 7 a 9 con relativa perdita di banda (non si capisce il perche?),
secondo te dato che ora la connessione è stabile con portante 16999 da circa 20 ore,
forzando i 6db di SNR creo danni o benefici ai fini della scelta finale da parte di infostrada del profilo definitivo ADSL ?

skynet81 ha detto...

Intanto posso dirti che con quel router sei a cavallo, la mia linea è al limite sono riuscito a farmi settare la 7mega con target noise 6dB senza mai una disconnessione.
Per quanto riguarda Infostrada è ovvio che loro si tengano un po' al sicuro aumentando di due punti il SNR. Io penso che tu faccia bene a tenere forzati i 6dB in modo che se loro monitorano si accorgono che la linea può reggere tranquillamente.
Riesci nell'arco di una giornata a monitorare il SNR? Accendi il router alla mattina presto e ogni mezz'ora controlla e prendi nota del valore... se hai scostamenti in negativo entro i due punti secondo me non ci sono problemi.

Unknown ha detto...
Questo commento è stato eliminato dall'autore.
Unknown ha detto...

bella guida tutto chiaro!solo che a me non cambia snr !quando premo 1 per portare a 6db mi esce una scritta verde invio comandi ma quando entro nel router il mio margine e sempre 16db!soluzioni?grazie per la guida.

skynet81 ha detto...

Ciao Salvatore, posso chiederti a che velocità si connette il router? Perchè se sei già al massimo consentito dal tuo profilo ADSL, abbassare il SNR non comporta alcuna differenza.

Ravellron ha detto...

idem con Salvatore, ho un dgn2200 v1 aggiornato all'ultimo fw disponibile, potrebbe essere questa la causa della mia non possibilità di comunicare con il router, praticamente nemmeno se premo R il modem non si riavvia, sembra non riuscire a comunicare..

skynet81 ha detto...

Ciao Ravellron, sei sicuro di aver inserito nello script il mac address del router corretto senza i due punti (:) che intervallano ogni coppia di cifre?
Se hai un firewall installato assicurati che telnetenable e powershell possano comunicare con l'indirizzo del router

Ravellron ha detto...

grazie per la repentina risposta..
riguardo al MAC son sicurissimo, per il firewall invece ho addirittura disinserito quello e l'antivirus per vedere se funzionava..
per chiarirci ho un dgn2200 nudo e crudo senza nessun tipo di scritta V1 da nessuna parte e spero sia lo stesso modem che tratta la tua guida.
preciso che non sono cablato al pc ma utilizzo una chiavetta wifi netgear WN111

Ravellron ha detto...

nulla ho fatto, sono un coglione, ho inserito il Mac non del lan ma dell'internet port, ora connette ma non riesco a schiodarmi dall'11db sotto non va..

skynet81 ha detto...

Come sopra, dimmi iche profilo adsl hai e postami i valori della velocità di connessione, snr ed attenuazione che trovi sullo stato adsl

Ravellron ha detto...

piccolo aggiornamento, ho telecom come gestore ed utilizzando il comando 1 (1) ottengo 11,3 db e non vado sotto, utilizzando il comando 3 (100) torno a 12,4db, ho provato a sostiruire il valore 1 con 65500 in powerpoint e come per magia ottengo 9,1db.
il gestore puo cambiare unita di misura per impostare snr?

skynet81 ha detto...

Potrebbe dipendere dal DSLAM in centrale forse. Ma noti miglioramenti nella velocità di collegamento?

Ravellron ha detto...

praticamente ora sembra essersi stabilizzato a 8,2db però non noto miglioramenti ai 9,1db di prima, il modem aggancia sempre a circa 12mb, scarico sui 9,75mb
tempo fa avevo una 20 mega ed il modem agganciava a quasi 17mb, da quando ho attivato internet play il ping è ovviamente calato però il modem non è piu stato tin grado di agganciare i 17mb ma era sceso a 12, perciò ho deciso di cambiare piano attivando la 10 mb, ora aggancio esattamente quello che agganciavo prima con la 20, immagino sia arrivato al culmine..

Ravellron ha detto...

oggi provo con il comando 65450, in rete molti hanno giovato più che con il 65500

Ravellron ha detto...

niente, non è cambiato nulla, il mio rate massimo di dwl è 9,75mbs, sono al colmo :)
grazie skynet per la guida, ottima

skynet81 ha detto...

Se posti i valori di data rate, snr ed attenuazione della pagina delle statistiche ti dico, comunque mi pare che sfrutti appieno

Ravellron ha detto...

connection speed 11614kbps down 943 up
attenuation 26db down 12.8db up
noise 8.6db down 12.3db up

skynet81 ha detto...

Ok è tutto chiaro, agganci portante piena della 10 mega per questo SNR non può scendere oltre. Hai poco meno di 3dB di margine, attivando un profilo 6dB della 20 mega arriveresti forse a 13000kbps circa ma secondo me non vale la pena. Però, se ti fai attivare il profilo 10 mega a 6dB (i165) guadagni qualcosa in upload

Ravellron ha detto...

ecco perchè con la 20 agganciavo a 13..
ma attivare un profilo significa chiamarli telefonicamente e chiedergli tutto ciò con costi aggiuntivi?

skynet81 ha detto...

Se chiedi il profilo 6dB della 10 mega non hai costi aggiuntivi

Ravellron ha detto...

ho chiesto ad un amico che lavora in telecom, riguardo la richiesta del profilo mi ha detto di non saperne nulla

skynet81 ha detto...

Il tuo amico lavora al commerciale? Hai provato eventualmente a chiamare il 187 e chiedere il nuovo profilo?

Daddo ha detto...

Salve, volevo capire una cosa, se da powershell una volta settato l'snr che desidero, volessi disabilitare di nuovo l'esecuzione degli script (in pratica il contrario del comandoSet-Executionpolicy RemoteSigned) e tornare alla situazione di partenza come si fa? Sono consapevole che dovrei riabilitarlo ogni volta che riavviandosi il router voglio eseguire lo script, ma mi piacerebbe tornare in piena sicurezza dopo averlo eseguito...

skynet81 ha detto...

Salve Danilo, deve dare il comando
Set-ExecutionPolicy Restricted

Daddo ha detto...

Grazie mille. Volevo sottoporti un altro quesito. E' normale che tale procedura abbia effetto praticamente solo sulla banda download? Cioè siccome io ho bisogno dia umentare i db dell'snr ho visto che la sola portante in download viene regolata da wuesto script, mentre quella in upload rimane uguale. Purtroppo io però ho un problema, quando mi squilla il telefono noto che si abbassa drasticamente l'snr della sola banda upload e spesso cade la portante. Per questo ti chiedo, secondo te sarebbe possibile creare uno script per regolare solo l'snr dell'upstream? Grazie.

skynet81 ha detto...

Si è normale, purtroppo il comando (inviato via telnet dallo script) non può agire sull'upload in quanto quest'ultimo è regolato solo dal profilo impostato in centrale sul DSLAM.
Per quanto riguarda la caduta della portante, sicuro che le prese siano in parallelo? In questo stesso blog c'è una guida per l'ottimizzazione dell'impianto domestico per ADSL.

Daddo ha detto...

Sì, sono sicuro perchè circa 14 anni fa quando misi l'adsl per la prima volta, il tecnico che venne a casa fece proprio questo, mettere le prese in parallelo. E poi è un problema che mis ta facendo da un mesetto a questa parte. Come puoi immaginare ho già fatto tanti tentativi, connettere il telefono da un'altra presa, provare il router senza filtri e telefono nell'altra presa con i filtri. Ho anche comprato dei filtri nuovi ma niente...e per i tecnici è tutto a posto...per questo stavo provando questo metodo.
Che in realtà sembra funzionare, rimango anche 20 ore connesso, però quando squilla il telefono l'snr del solo upload arriva anche a 2,5db! Se rispondo subito poi torna normale, ma se faccio squillare per qualche secondo di più spesso la portante cade...

skynet81 ha detto...

Ti direi di contattare il servizio tecnico del tuo gestore segnalando il problema e specificando tutte le prove che hai già fatto, chiedendo una verifica della linea.

Daddo ha detto...

Come ho detto prima, l'ho già fatto...per loro è tutto a posto. In ogni caso non era un problema solo quando squilla il telefono, ma la portante cadeva 4-5 volte al giorno anche senza telefonate in arrivo. Poi da due giorni ho provato questo metodo, portante abbassata a 14473 kbps e riesce a reggere anche 20 ore. Però rimane il problema di quando squilla il telefono, che abbassa solo l'snr dell'upstream...per questo chiedevo se c'era modo di alzare solo quello...

skynet81 ha detto...

Come ti dicevo non è possibile. Non riesci a farti prestare un altro router per provare?

Sebastian ha detto...
Questo commento è stato eliminato dall'autore.
Sebastian ha detto...
Questo commento è stato eliminato dall'autore.