it-swarm.asia

DNS / Ana Bilgisayar Adları veya Belirli bir IP'ye çözüm bulmak için diğer yollar nasıl kullanılır: Bağlantı Noktası

Bu, DNS/Ana Bilgisayar Adlarının IP'lere/Bağlantı Noktalarına çözümlenmesiyle ilgili Kurallı Bir Soru

Örnek 1

80 numaralı bağlantı noktasında bir web sunucusu ve 87 numaralı bağlantı noktasında başka bir sunucu çalıştırıyorum. Www.example.com'un 87 numaralı bağlantı noktasına gitmesi için DNS kullanmak istiyorum. Bunu yalnızca DNS kullanarak nasıl yapabilirim?

ÖRNEK 2

Sunucumda standart olmayan bir bağlantı noktasında bir hizmet çalıştırıyorum. İstemcilerin bu standart dışı bağlantı noktasına otomatik olarak bağlanmalarını nasıl sağlayabilirim? DNS kullanabilir miyim? DNS'nin IP ve Bağlantı Noktası'nı gösterebileceği uygulamaya özel bir destek var mı?

ÖRNEK 3

Bazı uygulama protokolleri özellikle ana bilgisayar adı farkındalığını destekliyor mu ve bu bilgilere dayanarak özel işlemlerin yapılmasına izin veriyor mu? Sunucu Hatası'nda bunlardan bazılarını kapsayan başka sorular var mı?

Commandeering: Bu soru aslında IIS ve Apache'nin aynı sunucuda çalıştırılması hakkında soruyordu, ancak aynı kavramlar istemcilerden bağlantı alan herhangi bir sunucu yazılımına uygulanabilir. istemcinin bağlanması için bir bağlantı noktası numarası atamak üzere DNS ve uygulama protokolü desteğini kullanma çözümleri.

51
Tomasz Smykowski

Bir bağlantı noktasını işaret etmek için DNS'yi kullanamazsınız (istemci SRV kayıtlarını desteklemediği sürece, çoğu desteklemez).

Ana Bilgisayar Üstbilgilerine Sahip Web Siteleri ve Protokoller

Bunu yapmak için bazı ön uç yöntemini yerleştirmeniz gerekecektir. Genellikle, bağlantıyı başlıkta istenen sunucunun adına göre 80 numaralı bağlantı noktasından bağlantı noktası! 80'e yönlendirmek için bir ön uç web sunucusu veya özel bir proxy yazılımı kullanırsınız. Bazı güvenlik duvarları Ana Bilgisayar üstbilgisine göre de iletebilir.

SRV Kayıtları

Bazı istemciler, belirtilen hizmet için ana makine adını ve sunucunun bağlantı noktası numarasını belirten SRV kayıtlarının aramalarını destekler (yani kullanıcı "example.com" belirtir, istemci bir SRV kaydını arar ve bağlantı noktasında "server101.example.com" alır 255) "; sonra buna bağlanır). Bazı istemciler bunu gerekli olmadığı yerlerde de uygular (örneğin son akıllı telefonum, örneğin yeni bir e-posta hesabı oluştururken SRV kayıtlarını arar).

Ne yazık ki SRV kayıtları için destek oldukça nadirdir. Sadece birkaç dikkate değer protokol desteklenmesini zorunlu kılar (Jabber/XMPP, Kerberos, LDAP, SIP) ve her müşteri zorunlu olduğunda bile desteklemez.

34
user9517

Tarayıcınıza http://www.domain.com yazdığınızda, HTTP bağlantı noktasının 80 üzerinde olduğu anlaşılır. Bu nedenle, www.etkialani.com adresini bağlantı noktasına yönlendirmenin doğrudan bir yolu yoktur. 87, zaten IIS'de bu bağlantı noktasında çalışan bir hizmetiniz varsa.

Bununla birlikte, birkaç "geçici çözüm" vardır.

  • Sadece http://www.domain.com:87/ kullanın - bu sunucunuzdaki 87 numaralı bağlantı noktasına (Apache) bağlanacaktır.
  • http://www.domain.com/Apache adresinin www.domain.com:87 adresine yönlendirilmesini (veya süslemek istiyorsanız proxy'yi) yönlendirmesini sağlayabilirsiniz.
  • Www.domain2.com sitesinin www.domain.com ile paylaşılan 80 numaralı bağlantı noktasında kalmasını sağlamak için bir "VirtualHost" ayarlayabilirsiniz. IIS'yi değiştirmeden bunu ayarlayamazsınız.

Sam haklıdır, DNS bağlantı noktaları konusunda agnostiktir. Herhangi bir bağlantı noktası yeniden yönlendirmesi, o bağlantı noktasında çalışan hizmet tarafından gerçekleştirilir. Bu nedenle, bunu gerçekleştirmek için 80 numaralı bağlantı noktasında bırakmaktan başka seçeneğiniz yoksa IIS) ile bir şeyler yapmanız gerekir.

Ayrıca, Apache'de mod_proxy kullanarak durumunuzu ele aldım, IIS ile bunu yapmanın bir yolu olup olmadığından emin değilim.

15
Dave Drager

Korkarım etki alanı adları yalnızca bir IP adresiyle ilişkilendirilebilir, bir bağlantı noktasıyla ilişkilendirilemez.

Çoğu web sunucusu ör. (Apache, IIS vb.), Web isteklerinin isteğin kendisindeki etki alanını tanımlayan bir Ana Bilgisayar üstbilgisi alanı içerdiği gerçeğini kullanarak aynı IP adresinde iki alan adının barındırılmasına izin verir .

Kullandığınız web sunucusunun ne olduğunu söylerseniz, insanların sunucunuzu istediğiniz gibi ayarlamak için sizi ilgili belgelere yönlendirebileceğinden eminim

12
Phil

Teknik olarak, tarayıcılara hangi sunucuların http (alt) etki alanı için hangi bağlantı noktalarını işlediğini bildirmek için RFC 2782 içinde tanımlanan DNS sunucularında SRV kayıtları kullanabilirsiniz:

_http._tcp.www.example.com.  IN      SRV 0    5      80   www.example.com.
_http._tcp.www2.example.com. IN      SRV 0    5      87   www.example.com.

Bu, özellikle SRV kayıtlarının kullanımının protokol belirtiminde zaten tanımlanmış olduğu birçok protokol/hizmet için iyi çalışır.

Ancak bu " Hall of Shame " belirttiği gibi, web tarayıcılarının/istemcilerinin çoğu bunu desteklemez (HTTP için). Ayrıca bkz neden-do-tarayıcılar-kullanmama-srv-kayıtlar .

Anlaşma temel olarak, SRV'nin http protokolüne bir zorunluluk olarak dahil edilmemesi, bu nedenle onu uygulayan her tarayıcı URL'leri olmayan tarayıcılardan farklı şekilde çözüyor.

Bu nedenle, bunu yalnızca içerik açısından hangi sunucunun seçildiği önemli olmayan bazı isteğe bağlı yük dengeleme olarak kullanmalısınız. "İsteğe bağlı" çünkü yalnızca birkaç istemci bunu uygularsa yükün çoğunu dengelemez.

12
JonnyJD

Standart olmayan bağlantı noktasında herhangi (TBT) hizmetini kullanmak ve URI'de bağlantı noktası yazmamak için herkes, RFC 2782'de tanımlanan SRV kayıtlarını kullanabilir.

_http._tcp.www.example.com. IN      SRV 0    5      87   www.example.com.

Bölgedeki diğer tüm http ana bilgisayarlar hala 80 numaralı varsayılan bağlantı noktasında sunulur

6
Lazy Badger

DNS, belirli bir Bağlantı Noktasına yeniden yönlendirme özelliğine sahip değildir, tüm DNS'nin önem verdiği şey, bir adın IP adresi çözümlemesidir ve bunun tersi de geçerlidir.

NO-IP gibi Dinamik IP DNS sağlayıcıları gibi bazı hizmetler, ev DNS hizmetlerindeki IP'lerin yuvarlak olarak engellenmesine benzer bir şey yapmanıza yardımcı olabilecek bir serivce sağlar.

6
Sam Cogan

En basit yol, ters proxy kullanmak ve bunu web proxy'niz olarak ayarlamaktır. Bunun için bir nginx veya Apache yapılandırabilirsiniz. Geçmişte temelde aynı sorunu yaşadım ve bu tür bir yapılandırmayı basit bir şekilde elde etmek için bir araç yaptım. Ergo: https://github.com/cristianoliveira/ergo

Bunu kullanıyorum ve temelde, bir cazibe gibi çalışıyor :)

2

Aynı ana bilgisayara iki web sunucusu dağıtmak için bir yaklaşım, her ikisinin de 80 numaralı bağlantı noktasını iki farklı IPv6 adresinde dinlemesini sağlamaktır. IPv6, bir arabirime iki adres atayabileceğinizi resmi olarak belirtir ve adresleri tükenmeden bunu yapabileceğiniz yeterli IPv6 adresi vardır.

Bu geleceğe dönük bir kanıttır ve iki alan adınızın her birinin farklı IP adreslerini gösteren AAAA kayıtları olabilir, bu nedenle alan adları farklı web sunucularında bulunur.

Tek bir IPv4 adresiniz varsa, ters proxy çalıştırmak için IPv4 adresindeki 80 numaralı bağlantı noktasını kullanabilirsiniz. Bu şekilde yalnızca IPv4 istemcileri her iki web sunucunuza da erişebilir. Ters proxy yaklaşımı, bazı web sunucuları ters proxy ile aynı Ana Bilgisayarda ve bazı web sunucuları diğer ana bilgisayarlardaysa bile çalışır.

Böyle bir kurulumda example.org adresleri olabilir 192.0.2.1 ve 2001:db8::1 süre example.net adresleri var 192.0.2.1 ve 2001:db8::2.

0
kasperd