Apporta modifiche permanenti nella tabella di routing


10

Ho un Raspberry PI 2 modello B con la versione Raspbian Jessie e sto cercando di portare Internet dal mio PC al Raspberry. Ho 2 interfacce di rete tra loro, una è su Ethernet e l'altra è su Wifi. Ho configurato l'indirizzo IP Ethernet in Raspberry per essere statico, perché ho una piccola rete di computer a casa tutta con indirizzi IP statici e voglio che il raspberry ne faccia parte. Dato che la mia connessione Internet è molto lenta (utilizzo un modem dial-up), non voglio condividere questa connessione Internet lenta tramite l'interfaccia Ethernet perché non desidero che tutti i computer collegati a questa rete riducano la mia velocità di Internet. Dato che intendo solo portare Internet su Raspberry, ho creato un hotspot WiFi sul mio PC che assegna dinamicamente un indirizzo IP al mio Raspberry (il software hotspot ha una sorta di DHCP) e che "

Ma poi il mio problema inizia, per impostazione predefinita dopo averlo acceso (o se mi disconnetto e mi riconnetto), Raspberry non si connette a Internet. Digitando ifconfigottengo:

eth0     
Link encap:Ethernet  HWaddr b8:27:eb:4e:35:65  
inet addr:100.100.100.25  Bcast:100.100.100.255  Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe4e:3565/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     
Link encap:Ethernet  HWaddr 74:da:38:55:f3:a2  
inet addr:192.168.137.201  Bcast:192.168.137.255  Mask:255.255.255.0
inet6 addr: fec0::12:c4f1:c3fc:eb1e:3153/64 Scope:Site
inet6 addr: 2002:be0f:9cea:12:1bc0:1969:c17d:f854/64 Scope:Global
inet6 addr: fe80::bdca:7255:2e27:8341/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Quando scrivo route -nottengo:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.137.1   0.0.0.0         UG    303    0        0 wlan0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Qui puoi vedere come la metrica del mio gateway di connessione Ethernet statica (100.100.100.1) è più piccola della metrica del mio gateway di connessione Wifi DHCP (192.168.137.1), quindi il mio Raspberry tenta di ottenere Internet attraverso l'interfaccia errata

dopo aver digitato:

sudo route delete  default gateway 192.168.137.1 

e poi :

sudo route add  default gateway 192.168.137.1

la mia tabella di routing è fissa su:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.137.1   0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

e il Raspberry è in grado di accedere a Internet.

Le mie domande sono:

  1. Esiste un modo per automatizzare questo processo in modo che non debba farlo manualmente ogni volta che accendo Raspberry?
  2. C'è un modo per automatizzarlo in modo che riconoscerà sempre che deve ottenere Internet dal Wifi indipendentemente dall'intervallo IP fornito dall'hotspot DCHP a questa interfaccia?
  3. Perché la metrica inferiore è stata assegnata automaticamente all'interfaccia Ethernet?

Ho già verificato la soluzione in Come rendere persistente una modifica alla tabella di routing? ma non funziona per me perché in Raspbian Jessie non modifichi direttamente il /etc/network/interfacespiuttosto che modifichi /etc/dhcpcd.confper ottenere l'indirizzo IP statico

Risposte:


10

Esiste un modo per automatizzare questo processo in modo che non debba farlo manualmente ogni volta che accendo Raspberry?

Non è necessario se la domanda n. 2 può essere risolta - e può ...

C'è un modo per automatizzarlo in modo che riconoscerà sempre che deve ottenere Internet dal Wifi indipendentemente dall'intervallo IP fornito dall'hotspot DCHP a questa interfaccia?

In /etc/dhcpcd.confaggiunta

interface wlan0;
metric 200;

interface eth0
metric 300;

Ciò assegnerà la metrica inferiore all'interfaccia WLAN, in modo che venga scelta una per le richieste Internet.

Perché la metrica inferiore è stata assegnata automaticamente all'interfaccia Ethernet?

Perché è così che vengono assegnate le metriche secondo man dhcpcd.conf (5) :

 metric metric
         Metrics are used to prefer an interface over another one, lowest
         wins.  dhcpcd will supply a default metric of 200 +
         if_nametoindex(3).  An extra 100 will be added for wireless
         interfaces.

+1 Grazie mille non avevo ancora una risposta. Stavo eseguendo uno script manuale ogni volta che dovevo farlo
VMMF l'

Nota, questo non funziona per le connessioni non DHCP. Se si dispone di una connessione statica in / etc / network / interfaces è possibile impostare la metrica del gateway sostituendo il gateway xxx.xxx.xxx.xxx con il percorso verso l'alto aggiungere la metrica gw xxx.xxx.xxx.xxx predefinita ###
Sameer Puri

0

Quello che faccio è semplicemente farlo funzionare all'avvio.

Aggiungi sudo route delete defaulte sudo route add default gateway 192.168.137.1, in quell'ordine specifico, nel tuo /etc/init.d/rc.localfile.

Ho dimenticato se /etc/init.d/rc.localfunziona fuori dagli schemi per Jessie, o anche se dovresti toccarlo o meno, ma dovrebbe essere banale trovare un'altra soluzione (l'ho già fatto) .

E questo risolve il n. 1.


Per la priorità delle connessioni, ti consiglio di installare ifmetric. Quindi, assegna semplicemente la priorità alle tue connessioni/etc/network/interfaces

La priorità più alta è 0, la successiva è 1, quindi 2 e così via.

iface eth0 inet dhcp
 metric 1

iface wlan0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 metric 0

iface eth1 inet dhcp
 metric 2

E questo è tutto per il n. 2.


Penso che il n. 3 sia successo perché gli sviluppatori pensavano che il WiFi fosse prioritario in ambienti contadini non poweruser. Potrei solo speculare poiché non riesco a trovare alcuna informazione al riguardo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.