associare il software a diverse interfacce di rete


37

Ho due diverse interfacce di rete, collegate a 2 reti. Uno è un eth0 e l'altro un wlan0. Come posso dire a un software di usare solo un'interfaccia specifica?

Fondamentalmente voglio che Firefox usi eth0 perché è la rete LAN universitaria e devo andare su siti intranet, l'altro è una rete wifi aperta su Internet e voglio collegarlo a Chrome.

Sto lavorando e ho bisogno di usare Intranet. Quindi eth0 è la mia scelta, ma eth0 è una rete intranet senza accesso a Internet (ovviamente). Dal momento che desidero l'accesso a Internet sono connesso a wlan0 (wifi universitario per gli studenti).

Il problema è che se entrambi mi sono connesso a volte il browser cerca www.stackoverflow.com usando eth0. Quindi volevo assegnare un browser per utilizzare solo un'interfaccia specifica.


Il routing non è una soluzione migliore per i tuoi problemi? Voglio dire, le connessioni a ubuntu.stackexchange.com dovrebbero usare la stessa interfaccia da qualsiasi programma.
Javier Rivera,

Risposte:


23

Non è possibile associare il software client a interfacce di rete specifiche, ma è possibile indicare al kernel che si desidera utilizzare solo un'interfaccia di rete per alcuni indirizzi IP e l'altra per tutto il resto. Questo si chiama "routing" e può essere configurato usando i comandi /sbin/routee /sbin/ip.

Se ho letto correttamente la tua domanda, vuoi connetterti agli indirizzi IP della Intranet usando l'interfaccia eth0e a Internet usando l'interfaccia wlan0.

Se esegui il comando ip route list, dovresti vedere un output come il seguente (i numeri saranno diversi e puoi anche avere più righe):

$ ip route list
10.60.44.0/25 dev eth0  proto kernel  scope link  src 10.60.44.39  metric 1 
192.168.80.0/21 dev wlan0  proto kernel  scope link  src 192.168.84.122  metric 2 
[...]
default via 10.60.44.1 dev eth0  proto static 

Le prime due righe descrivono le reti connesse alle interfacce eth0e wlan0: il traffico di rete diretto ai computer su tali reti verrà inviato loro direttamente tramite l'interfaccia corrispondente.

L'ultima riga indica quale sia la "route predefinita": se il tuo computer vuole parlare con un computer su una rete a cui non è collegato (ad es. Il server eth0stackoverflow.com ), indirizzerà il traffico attraverso , rispondendo attraverso l'host 10.60.44.1( chiamato "gateway predefinito").

Quindi, per instradare il traffico Internet wlan0, dovresti assicurarti che l'ultima riga ip route listnell'output sia simile a:

default via A.B.C.D dev wlan0 proto static

dove si A.B.C.Dtrova l'indirizzo IP del gateway sulla LAN wireless. Se l'output non contiene "dev wlan0", è possibile modificarlo con il comando:

sudo ip route change to default dev wlan0 via A.B.C.D

Puoi scoprire il corretto A.B.C.Dper wlan0in due modi:

  1. Cerca nella directory /var/lib/dhcp3/: dovresti trovare alcuni dhclient-...-wlan0.leasefile. Apri la più recente e cerca una riga con la stringa option routeral suo interno: il resto della riga ti dice l'indirizzo IP A.B.C.D.

  2. Chiedi ai tuoi amministratori di rete locali. (Probabilmente la cosa migliore da fare, comunque.)

Con questa configurazione, dovresti essere in grado di:

  • navigare in Internet attraverso wlan0
  • sfogliare la tua Intranet eth0, purché sia ​​su una singola rete .

Se la tua intranet si estende su più reti, dovrai aggiungere percorsi per loro - e questo è sicuramente qualcosa che richiede di interagire con gli amministratori della rete locale. :-)


Solo per curiosità: cosa succede se voglio associare dns (per includere sottodomini) piuttosto che indirizzi IP?
dierre,

1
@dierre In breve: non è possibile, il routing si basa su indirizzi IP. La lunga storia inizia raccontando che il routing è una cosa di livello 3 di rete, quindi non saprà nemmeno sui nomi DNS, la cui risoluzione avviene più in alto nello stack del protocollo di rete ...
Riccardo Murri,

sì sì, non intendevo con routing. Intendo in generale. Si può fare? Associare DNS alle interfacce di rete?
dierre,

@dierre Che cosa vuoi fare esattamente? Far rispondere un server DNS solo su una specifica interfaccia di rete? O avere un client DNS (ovvero una risoluzione DNS) utilizza solo un'interfaccia selezionata?
Riccardo Murri,

1

2

"ip netns" crea spazi dei nomi di rete. È quindi possibile creare interfacce virtuali (ip link add ... veth) e associarle agli spazi dei nomi.

Gli spazi dei nomi possono essere configurati per utilizzare percorsi diversi, ad esempio (utilizzando quindi interfacce diverse)

Quindi puoi eseguire comandi in quello spazio dei nomi, che utilizzerà lo spazio dei nomi creato .. "ip netns exec NAME cmd ..."

Fonte: http://manpages.ubuntu.com/manpages/saucy/en/man8/ip-netns.8.html

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.