# conflitti di rete - wifi V eth

## cloc3

forse ho mangiato la foglia.

quando la tabella è così non funziona:

```

cloc3 ~ # route -en

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         192.168.0.12    0.0.0.0         UG        0 0          0 wnet0

127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo

127.0.0.0       127.0.0.1       255.0.0.0       UG        0 0          0 lo

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wnet0

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 enet0

```

quando è così funziona:

```

cloc3 ~ # route -en

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         192.168.0.12    0.0.0.0         UG        0 0          0 wnet0

127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo

127.0.0.0       127.0.0.1       255.0.0.0       UG        0 0          0 lo

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 enet0

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wnet0

```

a volte, mi capita di voler usare contemporaneamente, sul mio portatile, sia la connessione ethernet, sia quella wifi.

il risultato, però, è sempre drammatico: le connessioni si bloccano per ragioni incomprensibili e mi rassegno a lavorare a senso unico alternato.

guardando le due tabelle di routing, sono finalmente riuscito a riconoscere una asimmetria, che probabilmente è la causa del guasto:

 si dovrebbe riuscire a capire il perché, ma non ne sono sicurissimo.

il gateway, in entrambe, è associato alla rete wifi e non alla eth, mentre l'ordine di accesso alle due interfacce cambia.

la conseguenza pratica è che, se connetto prima il wifi e dopo la rete ethernet, come accade il 99% delle volte, non funziona, se connetto prima l'eth e dopo il wifi, funziona. Ora, la tabella di routing è creata passivamente da NetworkManager, che è un po' stupido.

come potrei convicerlo a farsi furbo?

----------

## pierino_89

Dato che il gateway è in entrambi i casi sul wifi, dovresti poter risolvere semplicemente specificando la metrica delle routes.

Ora non so che interfaccia tu stia usando per configurare NetworkManager, ma in KDE quando modifichi la connessione trovi il pulsante "Rotte" in basso a destra nel tab "IPv4".

----------

## cloc3

 *pierino_89 wrote:*   

> Dato che il gateway è in entrambi i casi sul wifi, dovresti poter risolvere semplicemente specificando la metrica delle routes.
> 
> Ora non so che interfaccia tu stia usando per configurare NetworkManager, ma in KDE quando modifichi la connessione trovi il pulsante "Rotte" in basso a destra nel tab "IPv4".

 

grazie. se sei gentile, rispondi anche a queste domande.:

con metrica, intendi il parametro mtu?

per quanto riguarda il pulsante "Rotte", non ho mai capito bene come si usa.

cosa dovrei scriverci dentro?

a quali comandi di ifconfig o di route corrisponde?

----------

## pierino_89

 *cloc3 wrote:*   

> 
> 
> con metrica, intendi il parametro mtu?
> 
> 

 

Nein, MTU indica la dimensione in bytes del pacchetto ethernet. NON devi modificarla, altrimenti rischi che non funzioni più nulla (dovresti allineare tutte le periferiche in rete sullo stesso MTU).

Per vedere la metrica devi usare "route -v"

 *Quote:*   

> 
> 
> per quanto riguarda il pulsante "Rotte", non ho mai capito bene come si usa.
> 
> cosa dovrei scriverci dentro?
> ...

 

Le rotte (-> routes) si manipolano solo con "route" o "ip".

Dal momento che vuoi editare quelle di default, dovresti spuntare "Ignora le rotte ottenute automaticamente" e poi aggiungere sopra:

```

Indirizzo:         Netmask:           Gateway:           Metrica:

192.168.0.0     255.255.255.0    0.0.0.0                 X

```

Dato che vuoi usare come interfaccia primaria il wifi, il valore della metrica per la tua route ethernet deve essere maggiore di quello della route locale del wifi e minore di quello della route col gateway. Dato che io mi trovo 0 per la route locale e 1024 per quella del gateway, 50 dovrebbe essere un valore appropriato.

----------

## djinnZ

usare il bridging?

Non conosco NM mi fa ribrezzo.

----------

## pierino_89

Essendo la stessa sulla stessa rete più che bridging direi bonding... Però rimane una situazione scomoda quando si esce di casa  :Rolling Eyes: 

----------

## djinnZ

Il bonding non va a mode 5/6 che sarebbero utili in questo caso con schede differenti (e non le supporta tutte comunque). Dubito che possa funzionare efficacemente con wlan e lan insieme. Il mode 0, di fatto, non serve a nulla perchè seleziona la prima disponibile. A meno che non fai traffico esagerato è raro che venga usata anche la seconda per quel che so.

Il problema è che non so NM cosa fa con il bridging o con il bonding e come si comporta. So openrc "normale" hai delle chiamate alternative e le puoi gestire. Con NM che vuol fare tutto lui nel più stupido dei modi... non saprei.

Visto che c'è il prof di mezzo potrei suggerire di dare uno sguardo anche al team driver ethernet.

Pensavo ad una situazione del genere avere in /etc/init.d net.eth0 e net.wlan0 con le impostazioni "normali" ed net.brx che carica le due interfacce insieme.

Forse per quanto imbecille e perverso NM potrebbe capire.di dover attivare alternativamente le interfacce.

----------

## pierino_89

In teoria dovrebbe trattare singolarmente tutte le interfacce, quindi prima si connette la wlan e poi si connette il bridge/bond/quel che è. Però resta comunque scomodo su portatile, perché bisognerebbe esplodere il bridge/bond ogni volta che si esce di casa.

----------

## djinnZ

Non è così. A livello di initscript hai tre interfacce: eth wlan e bond/bridge/team. Nessuna delle tre va avviata in automatico.

Se chiami eth o wlan tutto uguale, se chiami il bridge lui assorbe le due intefacce.

Il problema è che non so se NM, programma sviluppato per cretini  a mio avviso, sia in grado di gestire situazioni che vanno oltre il banale.

Altrimenti in preup di net.wlan dovresti andare a gestire la chiamata al bridge se trova la wifi di casa (con apposita invocazione a wpa_cli). Creando un bridge vuoto ovviamenete ed aggiungendo eth nello script.

Tutto da verificare. Con bonding sicuramente non dovrebbe funzionare.

----------

## pierino_89

 *djinnZ wrote:*   

> Non è così. A livello di initscript hai tre interfacce: eth wlan e bond/bridge/team. Nessuna delle tre va avviata in automatico.
> 
> Se chiami eth o wlan tutto uguale, se chiami il bridge lui assorbe le due intefacce.

 

Lo so come funziona la gestione della rete di OpenRC, indicavo semplicemente che se ogni giorno passo da 3-4 reti wifi diverse mi serve un tool più comodo di un initscript per la gestione   :Wink: 

 *Quote:*   

> 
> 
> Il problema è che non so se NM, programma sviluppato per cretini  a mio avviso, sia in grado di gestire situazioni che vanno oltre il banale.

 

Per essere un software per cretini non è male quanto pensi, gestisce VPN, bond, bridge e VLAN, puoi impostare un mac address differente dal tuo ed aggiungere rotte personalizzate ad ogni connessione. Mi pareva di aver visto anche la possibilità di eseguire script in risposta ad alcuni comportamenti, ma non trovo più la casella.

Poi se parliamo del fatto che senza una GUI non si possa usare, che consumi risorse e che su una macchina fissa non ce ne sia bisogno mi trovi pienamente d'accordo.

 *Quote:*   

> Tutto da verificare. Con bonding sicuramente non dovrebbe funzionare.

 

Essendo lo stesso segmento ethernet secondo me attivo-passivo sarebbe perfetto, perché fai passare tutto su cavo se c'è, e se non c'è si dirotta su wifi. Qualsiasi altra modalità finirebbe per fare casini data la differenza di velocità fra i due link.

----------

## djinnZ

Quando avevo il portatile (che alla fine ho riavuto ma è dura reinstallare tutto e sto diventando pazzo con un servizio di assistenza che sa solo rendere idrofobi) passavo continuamente tra la mia rete e quella dello studio al piano di sotto senza far niente altro che avviare net.net0 e wpa_supplicant se la vedeva da solo.

Certo ci sarebbe da smanettare un tantino con wpa_cli in scripting ma non la vedo impossibile da realizzare.

Se riesco ad avere lo stramaledetto pc funzionante è una delle cose che mi ero prefisso di fare.

Bonding e wpa_supplicant/hostapd non vanno molto d'accordo. Feci dei tentativi e riuscivo solo a schiantare la macchina. Anche solo con due schede wifi identiche.

----------

