yazılımı farklı ağ arayüzlerine bağlayın


37

İki ağa bağlı iki farklı ağ arayüzüm var. Biri eth0, diğeri wlan0. Bir yazılıma yalnızca belirli bir arayüz kullanmasını nasıl söyleyebilirim?

Temelde Firefox'un eth0 kullanmasını istiyorum çünkü bu üniversite lan ağı ve intranet sitelerine gitmek zorundayım, diğeri internete açık bir wifi ağı ve onu Chrome'a ​​bağlamak istiyorum.

Çalışıyorum ve intranet kullanmam gerekiyor. Bu yüzden eth0 benim tercihim ama eth0 internet bağlantısı olmayan bir intranet (belli ki). İnternet erişimi istediğimden beri wlan0'a bağlıyım (öğrenciler için üniversite wifi).

Sorun şu ki, her ikisini de bağladıysam, tarayıcı eth0 kullanarak www.stackoverflow.com adresini arar. Bu yüzden sadece belirli bir arayüzü kullanmak için bir tarayıcı atamak istedim.


Yönlendirme sorunlarınız için daha iyi bir çözüm değil mi? Yani, ubuntu.stackexchange.com 'a olan bağlantılar, herhangi bir programdan aynı arayüzü kullanmalıdır.
Javier Rivera

Yanıtlar:


23

İstemci yazılımını belirli ağ arayüzlerine bağlayamazsınız, ancak çekirdeğe bazı IP adresleri için sadece bir ağ arayüzü, diğerini her şey için kullanmak istediğinizi söyleyebilirsiniz. Bu "yönlendirme" denir ve komutları kullanarak yapılandırılabilir /sbin/routeve /sbin/ip.

Sorunuzu doğru okuduysanız, arayüzü kullanarak intranet IP adreslerine eth0ve arayüzü kullanarak internete bağlanmak istiyorsunuz wlan0.

Komutu çalıştırırsanız, ip route listaşağıdaki gibi bir çıktı görmelisiniz (sayılar farklı olacaktır ve ayrıca daha fazla satır da olabilir):

$ 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 

İlk iki satır size arayüzlere bağlı ağlar hakkında bilgi verir eth0ve wlan0: bu ağlardaki bilgisayarlara yönelik ağ trafiği doğrudan ilgili arayüz üzerinden kendilerine gönderilir.

Son satırda "varsayılan yol" nedir: bilgisayarınız bağlı olmadığı bir ağdaki bir bilgisayarla konuşmak istiyorsa (örneğin, stackoverflow.com sunucusu), trafiği eth0, ana bilgisayardan ulaşarak yönlendirir 10.60.44.1( "varsayılan ağ geçidi" olarak adlandırılır).

Bu nedenle, İnternet trafiğini yönlendirmek wlan0için ip route listçıktıdaki son satırın aşağıdaki gibi bir şey okuduğundan emin olmalısınız :

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

A.B.C.Dkablosuz LAN üzerindeki ağ geçidinin IP adresi nerede . Çıktı "dev wlan0" içermiyorsa, şu komutla değiştirebilirsiniz:

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

Doğru öğrenebilirsiniz A.B.C.DFOR wlan0iki şekilde:

  1. Dizine bak /var/lib/dhcp3/: bazı dhclient-...-wlan0.leasedosyalar bulmalısın . En sonuncuyu açın ve içindeki dizeyle bir satır arayın option router: satırın geri kalanı size IP adresini söyler A.B.C.D.

  2. Yerel ağ yöneticinize sorun. (Muhtemelen yapılacak en iyi şey zaten.)

Bu yapılandırma ile şunları yapabilmeniz gerekir:

  • interneti taramak wlan0
  • aracılığıyla göz senin İntranet eth0, tek bir ağ üzerinde olması koşuluyla .

İntranetiniz birden fazla ağa yayılıyorsa, onlar için yollar eklemeniz gerekir - ve bu kesinlikle yerel ağ yöneticileriyle etkileşime geçmenizi gerektiren bir şeydir. :-)


Sadece meraktan: IP adresleri yerine dns'i (alt alanları dahil etmek için) bağlamak istersem?
dierre

1
Kısacası: asker: Yönlendirme IP adreslerine dayanır. Hatta kimin çözünürlük ağ protokolü yığını daha yukarı olur, DNS adları hakkında bilmeyecektir kadar uzun hikaye o yönlendirme anlatarak başlar ... bir ağ katmanı 3 şey
Riccardo Murri

evet evet, yönlendirme ile demek istemedim. Genel olarak kastettim. Yapılabilir mi? DNS'i ağ arayüzlerine bağlamak?
dierre

@dierre Tam olarak ne yapmak istiyorsun? Bir DNS sunucusunun sadece belirli bir ağ arayüzünde cevap vermesi mi? Veya bir DNS istemcisine sahip olmak (yani, DNS çözünürlüğü) yalnızca seçili bir arayüz kullanıyor mu?
Riccardo Murri


2

"ip ağları" ağ ad alanları yaratır. Daha sonra sanal arayüzler oluşturabilir (ip link add ... veth) ve bunları ad alanlarıyla ilişkilendirebilirsiniz.

Ad alanları, örneğin farklı yollar kullanacak şekilde yapılandırılabilir (böylece farklı arayüzler kullanılarak).

Daha sonra bu isim alanında komutları çalıştırabilirsiniz, bu da oluşturulan isim alanını kullanacaktır. "İp netns exec NAME cmd ..."

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.