Bir ad sunucusu IP adreslerini bazı stratejilere göre dinamik olarak çözebilir mi?


11

Çeşitli veri merkezlerine dağıtılan web sitemiz için DNS çözümlemesi için bazı ad sunucuları kaydettik.

Mevcut DNS çözümleme stratejimiz, farklı istemci IP adreslerine dayanarak, ad sunucusunun aynı etki alanı için farklı IP adresleri döndürmesidir. Örneğin, istemci IP adresi Kuzey Amerika'dan geliyorsa, ad sunucusu Kuzey Amerika veri merkezimizin IP adresi olan bir IP adresi döndürür.

Ancak istemci IP adresi bazen kullanıcıların gerçek IP adresi olmayabilir. Bir ISS'ye veya proxy sunucusuna ait bir DNS IP adresi olabilir. Öte yandan, veri merkezlerimizden biri kapalıysa, isim sunucumuzun çökmüş veri merkezine ait IP adresini hariç tutmasını istiyoruz. Bu nedenle, DNS çözümlememiz için daha dinamik bir strateji alabileceğimizi umuyoruz. Bunun için bir çözüm var mı?


Bu, herhangi bir yayın için bir dava gibi geliyor.
Ron Maupin

1
@RonMaupin Herhangi bir yayın yapmak için, Sağlayıcıdan Bağımsız adres bloğu tahsisine sahip olması ve daha da önemlisi her veri merkezinden öneklerin reklamını yapmak için BGP çalıştırması gerektiği belirtilmelidir. Bu tamamen yeni bir operasyon seviyesi ve pek çok "içerik odaklı" şirketin deneyimleyeceği bir şey değil. DNS tabanlı çözüm çok daha kolay görünüyor.
IPX

@IPX, dünya çapında veri merkezlerine sahip bir şirketin, soruda göründüğü gibi, sağlayıcıdan bağımsız adreslemeye ve kendi AS numarasına sahip olacağını hayal ediyorum. Bununla, anycast ücretsiz ve kolaydır.
Ron Maupin

1
@RonMaupin OP'nin şirketi aslında dünyada birden fazla veri merkezi işletiyorsa evet, ama muhtemelen burada nispeten basit bir soru sormayacaklardı . Bahse girerim, sadece birkaç ticari veri merkezinde kendi veya işe alınmış HW'leri birlikte bulurlar ve gelişmiş ağ op'larını gerçekten önemsemezler. Birçok orta ölçekli şirketin işten çıkarılma için yaptığını gördüm. Durum buysa , yönlendirme değil, DNS yanıttır .
IPX

@IPX, sorudan çıkardığım şey, şirketin dünya çapında veri merkezlerine sahip olması ve bir veri merkezinin çökmesi durumunda, yönlendirilen trafiğin farklı bir veri merkezine yönlendirilmesi gerektiğidir (" veri merkezlerimizden biri çalışmıyorsa .." . "). Soruyu üçüncü taraf barındırma hakkında tahmin etmeye çalışmak yerine sorulduğu gibi cevapladım ve bunlardan bazılarını da yapıyoruz, ancak yine de kendi sağlayıcı bağımsız adresleme ve ISS'lere bakmak için kullanılan AS numaramız var. Bu, ağların yeniden okuma işlemlerini aksatmadan sözleşmelerin müzakere edilmesine ve ISS'lerin değiştirilmesine izin verir.
Ron Maupin

Yanıtlar:


16

Herhangi bir yayın istediğiniz gibi geliyor. Google gibi sitelerin kullandığı şey budur. Tüm web siteleriniz için tek bir adresiniz (DNS tarafından çözülür) vardır ve Internet yönlendirme protokolünün (BGP) kullanıcıları en yakın (yönlendirme protokolü tarafından) siteye yönlendirmesine izin verirsiniz. Bir site kapanırsa, bir sonraki en yakın site BGP tarafından otomatik olarak İnternet yönlendirme tablosuna yerleştirilir.

Klasik örnek 8.8.8.8DNS içindir. Dünyanın farklı yerlerine gider ve bir konum düşerse, bir sonraki en yakın konuma gider.

Cevap DNS değil, yönlendirme.


2
Anycast normalde TCP tabanlı protokoller için yararlı değildir, çünkü aynı bağlantıya ait paketler farklı sunuculara gidebilir.
Paŭlo Ebermann

2
@ PaŭloEbermann, BGP yönlendirme ile yaptığınız bir sorun değildir, çünkü güzergahlar ilan edildiğinde genellikle değişmez (sadece küçük değişiklikler)
Ferrybig

2
@ PaŭloEbermann Tüm yük dengeleyicileriniz arka uçların nasıl seçileceği konusunda hemfikir olduğu sürece DSR tabanlı yük dengeleyicilerde herhangi bir yayın yapabilirsiniz.
kasperd

3
@ PaŭloEbermann, bu bir yanılgıdır. Bir ana bilgisayardan gelen tüm trafik bir sunucuya gider, bu sunucu kapanmadığı sürece trafik farklı bir sunucuya yönlendirilir. Evet, bu TCP bağlantısını keser, ancak bağlandığınız sunucu her kapatıldığında durum böyle olur. Anycast, yuvarlak robin türü bir şey değildir. Yönlendirme deterministiktir, bu nedenle anycast deterministiktir.
Ron Maupin

2
@RonMaupin Anycast yönlendirme, ima ettiğiniz kadar kararlı değil. Google, herhangi bir yayını yayınladığınız şekilde kullanmaz. Google'ın bunu nasıl yaptığını öğrenmek istiyorsanız, Google tarafından yayınlanan Site Güvenilirliği Çalışma Kitabında sayfa 227'ye bakın. Kısacası, herhangi bir yayın yönlendirmesinin arkasındaki yük dengeleme katmanı, aksi takdirde TCP bağlantılarını kesecek olan kaçınılmaz yönlendirme değişikliklerini telafi eder.
kasperd

9

Tek ihtiyacın olan tam neyi Amazon Route53 DNS servis sunar:

Sen gerekmez özel datacentres alanına dağıtılmış hizmetlerle o olacak mutlu eser, Route53 kullanmak edebilmek için AWS web sitenizin ana.

Bir Facebook veya Google değilseniz fiyatlandırma, milyon istek başına 0,40 ABD dolarından başlayan bir sorun olmamalıdır ( fiyatlandırma ayrıntılarına bakın ).

Umarım yardımcı olur :)


Bunun için hiç Amazon dışı ürün kullandınız mı?
civcivler

@ chicks hayır hayır. Her zaman iş için en iyi aracı kullanma eğilimindeyim ve Route53 çoğu durumda faturaya uyuyor. Ancak google "geo dns service" gibi bir şey yaparsanız bazı seçenekler elde edersiniz. Hızlı bir şekilde birkaç baktı ama oldukça pahalı görünüyor (yaklaşık 50 $ / ay - muhtemelen AWS Route53 ile harcamak çok daha fazla).
MLu

2
Çoğu aracı için en iyi aracı bulduğum ilk aracı çağırmadan önce bakış açımı biraz daha genişletirdim. Route53 herkes için en iyisi olabilir, ama başka bir şey denemediyseniz nasıl anlarsınız?
civcivler

-1

Bu fikre sahiptim ve kodlamaya başlamıştım ama ihtiyaç önce buharlaştıkça hiç bitmedi.

DNS sunucusu, LAN'ındaki tüm makinelerin ana bilgisayar adlarına ve MAC adreslerine ve bunlara erişmenin bir yoluna sahiptir. Tanıdığı bir makine için bir istek aldığında, MAC adresi verilen IP adresi için bir ters ARP gönderir ve yanıtı DNS cevabını oluşturmak için kullanır.

Bu, yapmaya çalıştığınız şeyle ilgisi yoktur, ancak konuyu açıklar. Bir DNS sunucusu teorik olarak, adları IP adreslerine çözümlemek istediğiniz yeni düzeni uygulamak için kodlanabilir.

Asıl soru, müşterinin IP adresini nasıl göndereceğine nasıl karar vereceği gibi görünüyor. Bu küçük bir XY problemidir. Gerçekten istediğiniz müşterinin ISS'sinin coğrafi konum belirlemesi ve bunu 8.8.4.4 veya başka bir DNS yönlendirme hizmeti olmadığı varsayılarak, istekte bulunan doğrudan IP adresinden yapabilirsiniz. Benim düşünceme göre, DNS yeniden yönlendiricileri için en iyi çözüm sorunu görmezden gelmek ve kendi kendine göreli bir coğrafi konum (DNS sunucusundan arayan IP adresini bulmaya çalışın) yapmak ve uygun şekilde yeniden yönlendirmektir. Coğrafi konum belirleme için buraya bakın: /programming/2574542/location-detecting-techniques-for-ip-addresses

Gerçekten burada herhangi bir yayın istemiyorsun ama daha aklı başında bir şey. Anycast can sıkıcı bir özelliğe sahiptir, TCP akışınızın ortasında paketleri yeniden yönlendirebilir ve toplu karışıklığa neden olabilir.

Ron Maupin, anycast'in TCP için rota-güvenilir olduğunu iddia ediyor. Aksi gösteren traceroute:

 3  cr1-rhe-a-be153.bb.as11404.net (174.127.183.14)  20.657 ms  20.763 ms  19.660 ms
 4  cr1-che-b-be-2.as11404.net (192.175.29.161)  22.550 ms  23.562 ms  23.538 ms
 5  * cr1-9greatoaks-hu-0-6-0-20-0.bb.as11404.net (192.175.28.108)  24.409 ms  38.083 ms
 6  72.14.222.146 (72.14.222.146)  40.038 ms  39.106 ms  39.125 ms
 7  108.170.242.225 (108.170.242.225)  37.930 ms 108.170.243.1 (108.170.243.1)  35.434 ms 108.170.242.225 (108.170.242.225)  33.694 ms
 8  209.85.240.249 (209.85.240.249)  33.476 ms 108.170.232.65 (108.170.232.65)  31.683 ms 108.170.234.155 (108.170.234.155)  30.754 ms
 9  google-public-dns-b.google.com (8.8.4.4)  30.491 ms  28.644 ms  25.718 ms

Akış yukarı IP adreslerini coğrafi olarak konumlandırmaya çalışırsanız, her ikisini de Wichita'da bulabilirsiniz. Bu, basit bir fizik gösterisinin yeterli olacağı doğru değildir.

8.8.4.4 aralığı, ilk 18 ms yerel ceza olan 30 ms'de ölçülür (hop 3, ISS'imin yerel yönlendiricisidir). Wichita'ya olan mesafem 1297 km. Bu nedenle minimum gidiş-dönüş süresi 18.55ms olan saniyede 1297 * 2 mil / 225.000 kilometredir (camdaki ışık hızı). Bu nedenle, 28 ms'den daha hızlı geri dönüş almamalıyım ama 25 ms içinde bir geri aldım.

Paketler Google'a iki farklı BGP yolu ile geliyor. BGP en yakını seçmedi.



Yorumlar uzun tartışmalar için değildir; bu görüşme sohbete taşındı .
Ward - Monica'yı yeniden

Tüm yorumları sohbete taşıdım, ancak çok fazla ve bazıları otomatik olarak taşındığı için, daha sonraki sohbetin hepsine sahip olup olmadığından emin değilim. Her durumda, bu cevabın geçerliliği ve yönlendiricilerin nasıl çalıştığı hakkında daha fazla tartışma yorumlarda olmamalı, sohbet odalarından birinde tutulmalıdır. Buradaki diğer yorumlar silinecek.
Ward - Monica'yı eski

-2

İhtiyacınız olan şey, DNS anycast ve RFC-7871'in bir kombinasyonuyla elde edilebilir.


1
Daha fazla ayrıntı yanıtınızı geliştirir
Dave M
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.