Birden Çok IP Adresini Tek Bir Ana Bilgisayar Adına Yönlendir


25

Windows sisteminde, bu dosya var C:\WINDOWS\system32\drivers\etc\hosts. Bu dosya, bir ana bilgisayar adına belirli bir IP adresini varsayılan olarak almamızı sağlar.

Şimdi sorun şu ki, bir ana bilgisayar adına birden fazla IP adresi ayarlayıp ayarlayamayacağım. Örneğin, böyle bir şey yapabilir miyim:

192.168.244.128   gateway.net
192.168.226.129   gateway.net

Ve tarayıcının her ikisine de çözüm bulabilmesini, hangisinin çalışacağını görmesini ve böylece birine işaret etmesini mi beklemelisin?

Olmazsa, istediğim davranışı elde etmenin başka bir yolu var mı?

Not: Bu uygulamayı kendi yerel alan ağımda kullanıyorum, bu yüzden internete gerek kalmıyor.

Yanıtlar:


25

Normalde bunu yapmak için ana bilgisayar kullanmazsınız, DNS'inizi kullanırsınız. Bölgedeki bir ada birden çok A kaydı atarsanız, çoğu DNS "Round Robin" olarak adlandırılanı sağlar.

O zaman ne yapacaktı, ilk gelen istek kabul edilecek 192.168.244.128, bir sonraki alacak 192.168.226.129ve benzeri. Ancak, tasarım gereği, yerel makineniz DNS çözünürlüğünü önbelleğe alır ve süresi doluncaya kadar genellikle aynı IP adresini kullanır (Time To Live, TTL).


1
EDIT: Nevermind, düzeltilmiş duruyorum! Aşağıda Yayınlandı
MagnaVis

17

Evet, bunu yapabilirsiniz, DNS'lerin ana bilgisayarlarına girmek zorunda kalmadan, yuvarlak-robin DNS senaryolarını test etmek için kullandım.

Bir uygulama gethostbyname'i çağırdığında, IP adreslerinin tam listesini geri alır (kitaplıklara / işletim sistemine bağlı olarak rasgele sırada).


2
Aslında soruyu cevaplamak için +1
CLF

rasgele bir seçim yapacak demek istiyorsun .. ben bir windows sunucum var
Lakshay

12

Sanırım bu konuda yanlış yoldan gidiyorsun. Burada yanlış varsayımlar yapıyorsam haberim olsun.

Senaryo:

  • Muhtemelen IIS'de aynı web uygulamasını çalıştıran iki pencere sunucunuz var.
  • Uygulamanızın hataya dayanıklı olmasını istersiniz, böylece sunuculardan biri arızalanırsa, uygulamanız hala kullanılabilir olur.
  • Bu hata toleransının tarayıcıya karşı şeffaf olmasını istersiniz, böylece kullanıcılar uygulamaya aynı ana bilgisayar adıyla (yani ağ geçidi.net) erişmeye devam edebilirler.

Yapmaya çalıştığınız şeye round-robin DNS (yani zayıf yük dengelemesi) denir , fakat bunu müşteri tarafında yapmaya çalışıyorsunuz. DNS önbelleğini temizlememe rağmen (en azından Windows XP kutumda) istenen etkiye sahip görünmüyor. Windows, yalnızca dosyadaki ilk IP'ye çözülecektir. Yine de, yuvarlak-robin DNS hataya dayanıklı değildir, bu yüzden istediğinizi elde etmenize yardımcı olmaz.

Önerilen çözüm:

Donanım yük dengeleyici: Bazı marka adları Alteon, Big-IP, Barracuda'dır. Bu temelde, kullanıcılarınıza bağlanmaları için tek bir IP sunar ve istekleri web sunucularına iletir. Sunuculardan biri kullanılamıyorsa, artık trafiği kendisine iletmeyecektir. Bu pahalı bir seçenektir.

Ağ Yükü Dengeleme Hizmetleri: Bu, Windows sunucusunda bulunan ve size tek bir kümelenmiş IP sağlayan bir Microsoft teknolojisidir. Bir donanım yük dengeleyici ile aynı sonucu elde eder, ancak farklı bir şekilde. Tek yapmanız gereken onu yapılandırmak .


1
ZEN-LB gerçekten basit ve kolay bir yük dengeleyicisidir. Onunla çok başarılı olduk ve onu sevdik çünkü açık kaynaklı (ücretsiz)
Derrick

2

Gönderen http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

IPv4 Örneği

192.168.1.1 ana bilgisayar ana bilgisayarıB 192.168.2.2 ana bilgisayar ana bilgisayarıC ana bilgisayarı-C

Bu örnekte, hostA'nın 2 IP adresi ve 3 diğer adı vardır. Alias ​​hostB ilk adresi belirtir, aliases hostC ve host-C ise ikinci adresi belirtir. LSF, her iki IP adresinin de aynı ana bilgisayara ait olduğunu belirlemek için resmi ana bilgisayar adı olan hostA'yı kullanır.


1
"LSF_CONFDIR / hosts formatı, UNIX makinelerinde / etc / hosts dosyasının formatına benzer." Yani: kaynak normal ana bilgisayar dosyaları ile ilgili değil.
gertvdijk

1

Önerim, DNS round-robin ve TTL = 0 olan dahili bir DNS sunucusu kullanmak. Bir IP / sunucu kapalıyken DNS kaydını (ayrıca otomatik ip kontrol sistemi ile) güncellerseniz, yüksek kullanılabilirlikli bir sisteme sahip olabilirsiniz.


Bu yüksek kullanılabilirlik için bir çözüm değildir. DNS bunun için tasarlanmamıştır ve yalnızca diğer başarısızlık yöntemleriyle birlikte kullanılmalıdır. Birçok çözücü TTL önbelleğini de yok sayarak bu yöntemi güvenilmez hale getirir.
Mark Henderson

1

Bunu, bir dizüstü bilgisayarın hem kablolu hem de kablosuz ağ arabirimlerine statik IP atadığım ve başka bir makinenin ana bilgisayar dosyasından, her iki ip adresine de tek bir ana bilgisayar adını işaret eden bir ev ağında yaptım. İyi çalışıyor gibi görünüyor.


1

Gönderen http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

IPv4 Örneği

192.168.1.1 ana bilgisayar ana bilgisayarıB 192.168.2.2 ana bilgisayar ana bilgisayarıC ana bilgisayarı-C

Bu örnekte, hostA'nın 2 IP adresi ve 3 diğer adı vardır. Alias ​​hostB ilk adresi belirtir, aliases hostC ve host-C ise ikinci adresi belirtir. LSF, her iki IP adresinin de aynı ana bilgisayara ait olduğunu belirlemek için resmi ana bilgisayar adı olan hostA'yı kullanır.

Bu örneğe dayanarak aşağıdaki 10.18.yx 192.168.zx hostA'yı yaptım.

Burada hostA, hem dahili ağdan (192.168.yx) hem de VPN'den (10.8.zx) erişmeyi düşündüğüm bir sunucunun ana bilgisayar adıdır.

ping hostA
sending 'ping' on 192.168.y.x [10.8.z.x]
Answer from 10.8.z.x : bytes=32 time=98 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=78 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=111 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=136 ms TTL=64

Bu yüzden iyi çalışıyor ve samba'nın VNP üzerinden hostname kullanarak çalışmasını sağlayabiliyorum, bu yüzden her iki durumda da bağlı sürücülerimin pencerelerde (LAN veya VPN bağlı) olması benim için iyi.

Saygılarımla.


0

@ Plamen Dimitrov Bu tür dengeyi idare etmek için bir cihaza, muhtemelen BGP'nizin önünde BGP'yi kaldırabilecek bir şalter veya fW'nizi kullanabiliyorsanız kullanmanız gerekecektir. Ciscos’unuz BGP’yi kullanıyorsa, bunu uygulamaya çalışın. Bu şekilde, her iki ISS'nizin IP'sinin Cisco / veya anahtarına girmesini sağlayabilirsiniz ve hedef sunucular geçerli 24-bit kamu IP'lerine (2 ISP IP'DEN FARKLI) sahip olacaktır. Bu noktada (3 farklı ortak IP bloğu kullanıyorsunuz, sunucularınız için bir tane BIT OLMALIDIR), ISS'nizden her birinin bu çözümü bilmesini ve bunun için destek olmaya istekli olmaları gerekir. BGP çözümü, aralarında çoğu yapacak. Şimdi, FQDN'niz çözüldüğünde, 1 ISS hattı düşse bile 24 bitlik IP bloğunuzda çözülecektir. Amaç, 24 bit adresleriniz, ISS'lerin bu 24 bit adresini kendi hatları üzerinden yönlendirmeyi kabul etmeleri nedeniyle her zaman erişilebilir olacaktır. Bu, VPN için de çalıştığından, VPN için kullandığınız tek şey, cisco / veya anahtarınıza taktığınız İSS'deki IP'lerden değil, 24bit adresler olduğundan. Bu noktada, BGP FLAPPING'e dikkat etmelisiniz; burada satırlarınız çok fazla artarsa, DOS'a giden bir satır nedeniyle, DNS adresleri o kadar çok değişecek ki, internette DNS sunucularının IP'leri OTOMATİK OLARAK ÇIKARILACAK 24 bitlik IP bloğunuzu takip edin. Bu BGP çözümlerine bir DOS saldırısı. Bu noktada, BGP FLAPPING'e dikkat etmelisiniz; burada satırlarınız çok fazla artarsa, DOS'a giden bir satır nedeniyle, DNS adresleri o kadar çok değişecek ki, internette DNS sunucularının IP'leri OTOMATİK OLARAK ÇIKARILACAK 24 bitlik IP bloğunuzu takip edin. Bu BGP çözümlerine bir DOS saldırısı. Bu noktada, BGP FLAPPING'e dikkat etmelisiniz; burada satırlarınız çok fazla artarsa, DOS'a giden bir satır nedeniyle, DNS adresleri o kadar çok değişecek ki, internette DNS sunucularının IP'leri OTOMATİK OLARAK ÇIKARILACAK 24 bitlik IP bloğunuzu takip edin. Bu BGP çözümlerine bir DOS saldırısı.


0

Burada, en azından Windows dünyasında biraz açıklama: Bir ana bilgisayar dosyasında tek bir ad için iki IP adresiniz olabilir. Sorgulandığında, tüm adresler döndürülür. Uygulama (yani tarayıcı), bir bağlantı yapılana kadar sırayla her birine bağlanmaya çalışır. IOW, zaman aşımına uğramadan önce tüm adresleri deneyecek. (Bu, çoğu insanın yalnızca "ilk" adresi deneyeceğine inandığı için bu yaygın bir yanlış anlamadır.)

Bunu aşağıdaki deneyle doğrulayabilirsiniz:

Ana bilgisayar dosyasında, biri gerçek diğeri sahte olan bir ana bilgisayar için iki veya daha fazla adres ekleyin. (Sahte adresleri alfabetik olarak daha küçük yapın.) Bir tarayıcı açın ve ana bilgisayar adına bağlanmayı deneyin. Netstat -no komutunu aynı anda çalıştırın. Sahte adrese bağlantı girişimlerini görmelisin. (SYN_SENT'te sıkışmış) Tarayıcı sonunda iyi adrese ulaşacak ve bağlanacaktır. Bağlantıda bir gecikme var, ancak işe yarayacak.


Yanıldığını söylemiyorum ama sadece Win 10 Pro'umda Chrome kullanarak denedim ve çalışmadı. Hosts dosyamı çimdikledim (ve sakladım), sonra ipconfig /flushdnsönceki kararların unutulduğundan emin olmak için koştum . Önbellek sonuçlarını engellemek için siteyi (makinemde yerel olarak) Chrome'da gizli bir pencerede açmaya çalıştı. Sadece başarısız oldu (ve sonunda çalışıp çalışmayacağını görmek için birkaç dakika bekledim). Emin olmak için yenileme düğmesine basın. Sonra sahte IP'yi ana bilgisayar dosyamdan yorumladım. Başka bir şey yapmadan sayfayı yeniledi ve işe yaradı. Firefox ile aynı şey.
Andrew Steitz

Bu nedenle, uygulamaya göre çalışabilir, ancak kesinlikle iki modern tarayıcıda çalışmaz.
Andrew Steitz

-1

Hosts dosyasıyla bunu yapamazsınız.

Bunu DNS ile de yapamazsınız: tek bir ad için birden fazla IP sunabilirsiniz, ancak tarayıcı bu çoklu IP'lerden yalnızca birini seçecek, deneyecek ve bu ana bilgisayar şu anda kapalıysa, tarayıcı bir bağlantı hatası gösterecektir .

Muhtemel bir çözüm, bir proxy sunucusu kurmak ve bu iki IP'yi hizmet ettikleri etki alanı için ebeveynler olarak yapılandırmaktır. En azından Squid durumunda, proxy bir sunucuyu dener ve başarısız olursa ikinci sunucuyu dener. Ardından tarayıcınızı bu proxy sunucusunu kullanacak şekilde yapılandırın.


Robin turu için doğru değil: www-archive.mozilla.org/docs/netlib/dns.html google beğenilerinin çoklu DNS kayıtları getirdiğini unutmayın. RFC3484'ün yeniden sıralanmasına rağmen, açıkça birden çok IP'nin yerine çalışma stratejisi olarak geri gönderilmesine yardımcı oluyor.
BrianEss,

Evet hosts dosyası ile yapabilirsiniz
warren
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.