Hostname, DNS, nslookup

Apache HTTP Server ile ilgili yeni bir yazıyla daha beraberiz. İstemcinin, almak istediği bilgiyi (Dosya, Sorgu sonucu vb.) talep etmesi için bir istek oluşturması gerektiğini önceki yazıda belirtmiştik. Bu isteğin gitmesi gereken sunucuya ulaşması için öncelikle bir ara işlem gereklidir.
Günlük kullanım ve akılda kalıcı olması için, sunucu adları bize anlamlı parçalar halinde gösterilirler. Örneğin, http://www.apache.org adresindeki www.apache.org kısmı, akılda kalıcıdır. Bir isteğin, bilgisayarımızdan çıkıp Modem ve diğer fiziksel aracı bağlantı noktalarından geçerek doğru hedefe ulaşması için, IP adres formatına çevrilmesi gerekmektedir. IP adres formatı, IPv4 ve yeni kullanılmaya başlanan IPv6 formatında bulunurlar.
IPv4: 255.255.255.255 formatı şeklindedir.
IPv6: 2001:0DB8:AC10:FE01:0000:0000:0000:0000 formatındadır.
İstemci, www.apache.org adresine ulaşmak istediğinde, internet sağlayıcımızın bize sunduğu veya bir takım ayarlama dosyalarına kendimizin girdiği DNS (Domain Name Server) hizmeti veren sunuculara bağlanarak öncelikle www.apache.org adresinin IP adresini almamız gerekir. Bağlandığımız DNS sunucu, kataloğunda bulunan IP adresini bizim web tarayıcımıza gönderir. Bu aşamadan sonra web tarayıcınız asıl IP adresinde bulunan Apache HTTP Server ile iletişim kurabilecektir. Bu işlem gerçekleşirken kullanıcı genelde bunu fark etmez. Dikkat edilirse, Web tarayıcısının Statü bölümünde Resolving hostame mesajı görülebilir.

nslookup uygulaması

Linux bilgisayarınıza, nslookup programını kurarak IP adreslerini kendiniz de sorgulayabilirsiniz.

1.Adım:

Aşağıda CentOS ve Ubuntu için kurulum komutlarını kullanarak gerekli paketleri kuralım.

2.Adım:

Aşağıdaki komut yardımıyla DNS sorgulaması yapalım.

3.Adım (Sonuç)

Görüldüğü gibi nslookup komutu sonucunda Address kısmında 140.211.11.105 ve 88.198.26.2 olarak iki IP adresi sonucu aldık. Neden iki IP adresi sorusunun cevabından önce bir konuyu sonuçlandıralım. İstemci olarak adres kısmına http://www.apache.org adresini yazmak yerine http://140.211.11.105 veya http://88.198.26.2 adreslerini de yazsanız aynı sayfaya ulaşırsınız. Yalnız, rakamlardan oluşan bu adresler hiç akılda kalıcı olmayacaktır. Hostname ve DNS Sunucularının ilişkisini ve hangi görevi yaptığını açıklamış olduk.
nslookup sorgumuzda neden iki adet IP adresi sonucu aldık? Siz yaptığınız uygulamada bir sonuç almış olabilirsiniz. Bunun açıklaması kısaca şöyledir. “Sunucunun yük dengelemesi için.” Sunucu bilgisayarın (apache.org) iki adet NIC kartı olabilir. Bu iki Network kartına ayrı IP vererek gelen istekleri iki kanaldan cevaplamak sürati arttırır. DNS sunucuda iki IP adresi kayıtlıdır ve gelen sorgulara iki IP adresi de cevap olarak gönderilir. Sizin web tarayıcınız, gelen cevaplardan birincisini kullanacaktır. Ancak DNS sunucu, bir sonraki gelen sorgu için (sizden gelemeyebililir. başka istemcileri de düşünün) bu defa size gönderdiği ilk IP numarasını yeni istemciye ikinci sıraya yazarak gönderir ki apache.org sunucusunun NIC kartlarına istekler nispeten eşit ulaşsın. Detaylı bilgiyi RFC 1794 dokümanında bulabilirsiniz.
Son olarak, yerel bilgisayarınızda internet bağlantısı olmayan bir Apache HTTP Server kurulu ise, web tarayıcınız hostname çözümleme isteklerini nereye soracaktır? Bu durumda hostname IP ilişkilerini hosts isimli dosyaya yazmanız yeterli olacaktır.
Linux işletim sistemlerinde genellikle /etc/hosts isimli dosyanın içerisine yazılır. Bu bilgiyi hosts dosyasına yazdığınızda, web tarayıcınız buraya bakarak adres çözümlemesi yapar ve IP adresini buradan alır.

Bu çıktıda görüldüğü gibi web tarayıcınıza www.example.com yazarsanız, web tarayıcınıza 127.0.0.1 cevabı gelecektir. Bu adres, “localhost yani yerel bilgisayarda bir sunucu var ve talebini oraya gönder, dinliyorsa sana cevap verecektir” anlamına gelmektedir.