[Ninux-Calabria] Stato delle dorsali di NewSpig (brodo, hpcc)
Stefano De Carlo
stefanauss a gmail.com
Lun 22 Feb 2016 12:20:05 CET
Il 22/02/2016 12:18, Stefano De Carlo ha scritto:
> Ciao a tutti,
>
> come nota a margine (!) degli studi su NewSpig volevo ricapitolare la situazione dorsale: la dorsale di punti-punti tra HPCC->NewSpig->Brodo->Lappano è dispiegata sui tetti ma è solo parzialmente operativa.
>
> Di seguito (in due mail separate) trovate i dettagli
>
>
/* Brodo <-> NewSpig */
* Il Link Brodo -> NewSpig, dopo il semplice switch dall'AP alla PtP, è perfetto, i parametri wireless sono perfetti.
* Il link NewSpig -> Brodo ha parametri wifi perfetti in apparenza, ma oltre a non avere il throughput desiderato (e che c'è vs lappanux) è spesso inutilizzato nel routing reale. Le due cose sono probabilmente collegate.
* Il passaggio di traffico più consistente di quello di controllo avviene sempre o quasi sulla tratta Brodo->Lappanux->Musk->Newspig, ovvero il routing preferisce 2 hop in più invece della dorsale!
L'asimmetria si nota eseguendo dall'output della topology table OLSR, che è la tabella dove OLSR riporta tutti i link nella mesh, ed è identica tra tutti i router:
# link brodo->newspig-ptp e brodo->lappanux
$: watch -n 5 'curl -s [ip_groundrouter]:2006 | egrep -w 172.17.87.39 | egrep -w "172.17.87.3|172.17.87.30"'
# link musk->lappanux e musk->newspig
$: watch -n 5 'curl -s [ip_groundrouter]:2006 | egrep -w 172.17.87.7 | egrep -w "172.17.87.30|172.17.87.3"'
Come si legge la topology table: l'estratto prodotto avrà delle righe "di segno opposto" perchè listano tutte le connessioni OLSR in NinuCS, e ovviamente vale che se musk è linkato a lappanux, varrà anche che lappanux è linkato a musk.
I tre valori elencati sono rispettivamente LQ (Link Quality), NLQ (Neighbor Link Quality), e ETX (il costo, come concepito da OLSR). Una definizione veloce, ma vi invito a leggere la documentazione ^^ [1]
* Il primo IP nella tabella è il "vicino" della riga
* Il secondo IP è il nodo "sorgente" della riga
Importante: Ogni nodo è definito da un singolo IP, anche se ha più interfacce OLSR! Quindi, ad esempio, anche se brodo usa il 172.17.87.50 per linkarsi al .32 di lappanux, i nodi vengono messi in alias con .39 e .30, rispettivamente. Potete leggere gli alias nella tabella dei MID.
$: curl -s [ip_gr]:2006
<snip>
Table: MID
IP address Aliases
172.17.87.39 172.17.87.50;172.17.87.46;172.17.87.40;172.17.87.41
172.17.87.7 172.17.87.29;172.17.87.8
172.17.87.30 172.17.87.32;172.17.87.31
</snip>
* LQ: la qualità del link percepita dal sorgente, ovvero nella direzione vicino->sorgente
* NLQ: la qualità del link percepita dal vicino, ovvero nella direzione sorgente->vicino
* EXT: il costo del link, la formula è semplice: 1/(LQ*NLQ)
Un output tipico dei link di brodo è:
172.17.87.39 172.17.87.3 1.000 0.121 8.226
172.17.87.39 172.17.87.30 1.000 1.000 1.000
172.17.87.3 172.17.87.39 0.180 1.000 5.543
172.17.87.30 172.17.87.39 1.000 1.000 1.000
(e quando va bene, invece:)
172.17.87.39 172.17.87.3 1.000 0.427 2.339
172.17.87.39 172.17.87.30 1.000 1.000 1.000
172.17.87.3 172.17.87.39 0.553 1.000 1.808
172.17.87.30 172.17.87.39 1.000 1.000 1.000
Un output tipico dei link di musk è:
172.17.87.7 172.17.87.3 1.000 1.000 1.000
172.17.87.3 172.17.87.7 1.000 1.000 1.000
172.17.87.30 172.17.87.7 1.000 1.000 1.000
172.17.87.7 172.17.87.30 1.000 1.000 1.000
La tratta Brodo->Lappano->Musk->Newspig ha un ETX che oscilla tra 3.000 e 3.128, causa link musk->newspig non perfetto.
La tratta Brodo->NewSpig dovrebbe essere 1.000 fisso e invece oscilla tipicamente tra 1.500 e INFINITE.
Ogni volta che questa oscillazione eccede 3.000, brodo arriva a newspig tramite giro lunghissimo. L'oscillazione varia di entità in momenti della giornata e in giorni diversi, ma c'è. Ad esempio, adesso mediamente brodo va direttamente a NewSpig, ma ieri pomeriggio ogni ping causava il cambio di rotta verso lappano.
Nei momenti in cui OLSR riporta cose brutte, cose brutte ci sono effettivamente, i numeri funzionano. Un tcpdump su brodo rivela che:
root a Brodolini:~# tcpdump -i eth1.7 src 172.17.87.5 and port 698
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1.7, link-type EN10MB (Ethernet), capture size 65535 bytes
11:57:39.307839 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55a3, length 692
11:57:40.910807 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55a4, length 972
11:57:49.927486 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55a9, length 748
11:57:51.530838 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55aa, length 840
11:57:54.936830 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55ac, length 884
11:57:58.243148 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55ae, length 516
11:58:01.548923 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b0, length 632
11:58:03.402577 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b1, length 840
11:58:05.204305 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b2, length 864
11:58:07.207622 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b3, length 600
11:58:08.763401 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b4, length 756
11:58:10.417686 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b5, length 836
11:58:13.972667 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b7, length 844
11:58:15.676592 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55b8, length 684
11:58:21.038328 IP 172.17.87.5.698 > 172.17.255.255.698: OLSRv4, seq 0x55bb, length 700
^C
Notate i buchi nei numeri di sequenza, che diventano sempre più ampi quanto il link si degrada.
Lato opposto, non ci sono buchi, a NewSpig arriva tutto ciò che brodo manda dalla ptp.
Il tutto non è limitato al traffico di controllo OLSR. Nei momenti in cui brodo switcha alla tratta lunga, cercando su NewSpig di forzare (ping -I eth0.5 -s 1024 10.87.22.1) il traffico ad uscire in direzione brodo risulta in pacchetti persi.
Fino a poco tempo fa Brodo aveva addirittura 3 path verso NewSpig, ma ora l'antenna di Spax (che sta comunque per dismettere il nodo) si è girata col vento ed è puntata nella direzione opposta; inoltre, Musk ogni tanto vuole particolarmente bene all'ENEL. In questa situazione un contemporaneo momento brutto del ptp con NewSpig isolerebbe brodolini.
I sintomi sembrano tipici di quel che è successo al primo puntamento musk-lappano: le antenne si linkavano, ma con i lobi laterali, risultando in segnali forti ma disconnessioni e asimmetrie. Con un leggero aggiustamento, anche di inclinazione orizzontale, il link diventò rock solid. In questo caso il puntamento non c'è stato proprio!
All'atto pratico non cambia molto, la ridondanza c'è e funziona, e il calendario degli interventi prevedeva comunque il puntamento con brodo. Pensavamo erroneamente di aver azzeccato il puntamento ad occhio, che scemi :)
Brodo potrebbe prevenire il rischio di eventuali isolamenti ri-switchando temporaneamente al vecchio (e perfetto) link con la Rocket di NewSpig, sceglierà Peppe. Principalmente questo riassunto ha lo scopo di integrare controlli sul routing e sulla qualità _effettiva_ del link nelle nostre pratiche e conoscenze ;-)
Stefanauss.
[1] http://www.olsr.org/docs/README-Link-Quality.html
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: signature.asc
Tipo: application/pgp-signature
Dimensione: 819 bytes
Descrizione: OpenPGP digital signature
URL: <http://ml.ninux.org/pipermail/calabria/attachments/20160222/836888de/attachment-0001.sig>
Maggiori informazioni sulla lista
Calabria