Ana makine adı protokolünü nasıl protokollü hale getiririm?


10

Bu, ana bilgisayar adı farkındalığı ve proxy hakkında kanonik bir sorudur .

Bazı protokollerin ana bilgisayar adına duyarlı olduğunu biliyorum; yani, HTTP sunucusuna bağlandığımda , aynı IP adresinde olmalarına rağmen HTTP hizmetini değil, HTTP hizmetini www.example.comistediğimi biliyor . Bunu protokol foo için nasıl yapabilirim ?www.example.comwww.example.net

(Geçici not: bu soru bu meta tartışma uyarınca görünür .)

Yanıtlar:


14

Neler olduğunu anlamak için DNS hakkında biraz bilgi sahibi olmanız gerekir.

İstemci belirli bir ana bilgisayardaki bir hizmete bağlanmak istediğinde, ana bilgisayar adını yerel DNS altyapısı aracılığıyla arar ve yanıt olarak bir IP adresi alır. Daha sonra bu IP adresine bağlanır ve hizmeti uygulamak için oluşturduğu procotol tarafından belirtilen şekilde ister.

Bazı durumlarda, bu procotolün bir kısmı başlangıçta aranan ana bilgisayar adının ikinci bir gönderimini içerir, bu durumda DNS altyapısı yerine sunucuya gönderilir. HTTP durumunda, bu HTTP / 1.1'in bir parçası olarak RFC 2616'da eklenmiştir ; HTTPS durumunda bu, RFC 4366'da Sunucu Adı Gösterimi (SNI) olarak uygulandı ; ve FTP durumunda, bu komut RFC 7151'de eklendi (ancak daha sonra uyarıya bakın). Böyle bir ikinci gönderme gerçekleşmezse, sunucunun IP adresini almak için istemcinin yerel DNS'ye hangi ana bilgisayar adını beslediğini bilmesinin bir yolu yoktur.HOST

Her durumda, bu ikinci gönderimi yapmak ve böylece istemci-sunucu etkileşimini ana bilgisayar adına duyarlı hale getirmek için protokolde bir değişiklik yapılması gerektiğini unutmayın. Protokol değiştirildikten sonra, sunucu kodunun uygulanabilmesi için güncellenmesi gerekiyordu. Ve son olarak, istemcilerin yeni protokolü sunucularla konuşacak şekilde güncellenmeleri gerekiyordu. Bu son adım özellikle yavaş olabilir; SNI durumunda, Windows XP'deki Internet Explorer hiçbir zaman uygulamadı, bu nedenle hala önemli sayıda XP-on-XP kullanıcısı varken protokole güvenilemedi ve bunların yeterli olması yaklaşık on yıl sürdü ölmek ve / veya SNI'nın güvenilir bir şekilde konuşlandırılabileceği yükseltmeleri almak.

Bu nedenle, anasistem adından haberdar olmayan bir protokol anasistem adından haberdar olmak için gereken şey budur. Öyle değil , basit bir bayrak ayarı veya yapılandırma değişikliği. Özellikle bu protokol için durumun durumu ve olası hafifletme önlemleri ile ilgili bazı protokole özgü cevaplarımız var: SSH (ve dolayısıyla SFTP) ve FTP ( HOSTFTP için desteğin şu anda düzensiz olduğuna işaret ediyor) -destek faz, ve bu yüzden henüz güvenilemez).

Kısa yanıt, protokolünüz şu anda hem istemci hem de sunucular arasında iyi bir destekle ana bilgisayar adı farkındalığı uygulamazsa unutun: Bu yapabileceğiniz bir şey değil.


6
Bazı protokollerin yepyeni ürünler için olduğu veya bir şirketin tüm sunucu ve istemcileri kontrol edebileceği kadar yerel olduğu gerçeğiyle bu cevabı canlandıracağımı düşünüyorum. Bu gibi durumlarda, sadece hostname komutları veya paketleri eklemek çok basittir ve uygulanması çok kolaydır. Birçok satıcı tarafından halihazırda yaygın olarak kullanılan mevcut bir protokole herhangi bir yeni özellik eklemenin zorluğunu açıklarsınız.
JPhi1618

4
@ JPhi1618 seni duyuyorum, ama bence herhangi bir "protokol" oluşturulan ve tek bir şirket tarafından uygulanan ve olmayan bir RFC gömülü, hiç bir protokol değildir; bu sadece dahili bir mühendislik kararıdır ve bu tür tescilli ürünlerle ilgilenmiyorum. İşaret ettiğiniz gibi, tedarikçi, isterse ana bilgisayar adı farkındalığını uygulamak için işleri anında değiştirebilir; ancak satıcıdan başka hiç kimse bunu yapamadığı için, OP'nin ne kadar ilgisini çektiğini görmüyorum.
MadHatter

İlgili soru, yeni bir protokol tasarlıyor musunuz yoksa mevcut bir protokolü nasıl değiştireceğinizi soruyor.
Barmar

Özel bir protokol hala bir protokoldür.
Barmar

@Barmar muhtemelen buraya girmek için iyi bir tartışma değil. Bu soru, mevcut protokolleri değiştirmekle ilgilidir ve daha önce de belirttiğim gibi, tescilli mühendislik kararı / protokolü bazyalnızca sahibi ve tek uygulayıcısı tarafından değiştirilebiliyorsa, ana makine adını bilinçli hale getirmenin tek yolu sahibine itiraz etmektir. Bu ilginç bir SF cevabı vermez ve dahası (aklımdan) konu ile ilgili değildir. " Hostname-bilinçli bir protokolü nasıl tasarlarım? " Başka bir soru ve sormak istediğim bir soru değil.
MadHatter
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.