Windows Internet Name Service (WINS) | BİSSİRU DOKUMAN
Ana Sayfa » İşletim Sistemi » MCSE » Windows Internet Name Service (WINS)
WINS'in iki işlevi vardır, isim kaydetme (Name Registration) ve isim çözümleme (Name Resolution). Burada kasteddiğimiz isim NetBIOS ismi (=15 byte bilgisayar adı + 1 byte servis adı). Sadece windows 2000 bilgisayarların bulunduğu bir ortamda DNS, WINS'in işlevini yerine getirebilir ancak daha alt seviyedeki Windows işletim sistemlerinin bulunduğu ortamlarda WINS kullanılır.
İsim Kaydetme (Name Registration Using WINS)
Bir WINS istemcisinin (Client) en az 1 WINS sunucusunun (Server) IP adresinden haberi vardır (Zaten bu yüzden WINS istemcisi adını alır). Böylece arada router'ların da olduğu bir network'te istemci, WINS sunucusunu bulabilir. Aşağıda bir WINS istemcisinin kendisini sunucuya kaydettirmesi sırasında gelişen olaylar verilmiştir...
1) WINS istemcisi network'e bağlanacağı zaman, kendi WINS sunucusuna "isim kaydettirme isteğinde" (Name Registration Request) bulunur. Bilgisayar tüm SMB (Server Message Block) tabanlı servislerini WINS sunucusuna kaydettirmek ister. Eğer bilgisayar, sunucu, istemci ve messenger servislerini çalıştırıyorsa bu 3 servis ile de kayıt yaptırır!
Eğer istemcinin üzerinde 1den fazla network kartı varsa (Multihomed), her kart için bu işi ayrı ayrı yapar.
2) Eğer WINS database'inde istemcinin adı veya IP adresi kayıtlı değilse, WINS sunucusu "olumlu" cevap verir (Positive Name Registration Response), kaydı ve "yenileme süresini" (Renewal Interval ya da Time To Live - TTL - ki bu default olarak 6 gündür) database'ine ekler. İstemci yenileme süresi içinde, kaydını yenilemek zorundadır.
3) Eğer WINS sunucusu kayıtlarında, aynı isim fakat farklı bir IP ile bir kayıt var ise, WINS sunucu, istemciye 5 dk beklemesini söyler ve kaydın sahibine bir mesaj gönderir (Name Query Request). Eğer kaydın sahibinden cevap gelirse, sunucu istemciye kayıt izni vermez (Negative Name Registration Response).
4) Eğer Ismin kayıtlı sahibinden cevap gelmezse, WINS sunucu kaydı yapar, kayıt için bir yenileme süresi belirler (6 gün) ve istemciye olumlu yanıt verir (Positive Name Registration Response).
5) İlk defa adını WINS'e kaydettiren istemci yenileme süresinin 1/8 ine geldiğinde, her kaydettirdiği servisi için sunucuya ayrı bir yenileme isteği ("Renewal Request") gönderir. Sunucu cevap verir ve yenileme süresi sıfırlanıp, yeniden geri sayım başlar. Bu özel ilk kaydettirmenin ardından gelen yenileme isteği daha sonra aynı sıklıkta tekrarlanmaz, yenileme süresinin yarısına gelinceye kadar beklenir ve sonra yenileme isteği gönderilir.
6) WINS istemcisi network'ten normal bir şekilde çıktığında (mesela Start Shutdown ile bilgisayarı kapatırken) sunucuya ismini serbest bırakması için (Name Release) bir mesaj gönderir.
7) Sunucu, ilgili kaydı SERBEST (Released) olarak işaretler ve bir "yokolma süresi" (Extinction Interval) tanımlar (Default = 4 gün). Bu yokolma süresi zarfında, işaretlenmiş kayıt diğer WINS sunucularına bildirilmez (NOT REPLICATED). Kaydı yapan sunucu, bu ismi veya adresi başkalarına verebilir ama diğer WINS sunucuları veremez! Bu yok olma süresi, istemci tekrar online olduğunda, kayıt işlemini kolaylaştırır.
Özetle, WINS istemcisinin kayıt sirkulasyonu şu şekilde olur
- Kaydolma isteği ve ardından gelen yanıt (Registration Request followed by Registration Response)
- Aktif bir süre. Bu süre boyunca istemci kaydını periyodik olarak yeniliyor.
- Serbest bırakma isteği ve serbest kalma (Release Request followed by node release)
- İstemcinin hızlıca kaydını yenileyebileceği bir "Serbestlik süresi"
(Period of Released status during which the client can be reregistered quickly) İsim Kaydettirirken Oluşan Hataların Ele Alınışı (Name Registration Failure Handling)
- İsmi yeniden kaydettirememe (Failure to reregister)
Eğer bir istemci bir kaydı serbest bıraktırır ve ardından tekrar kaydettirmezse, sunucu "yokolma süresi" (extinction interval) bitinceye kadar bekler (4 gün) ve sonra kaydın yanına bir mezartaşı diker (assign a Tombstone to the record). Tombstone ile işaretlenmiş kayıtlar diğer WINS sunucularına kopyelenir (REPLICATED), böylece başka biri aynı ismi veya adresi isterse alabilir.
Tombstone ile işaretlenen kayda bir "yokolma bitiş süresi" (Extinction TimeOut Interval) tanınır (default = 6 gün). Bu süre sonunda da kayıt "Scavenging" metoduyla database'den temizlenir.
- Kayıt Yenilememe (Failure to Renew)
Eğer bir istemci, "yenileme süresi" (Renewal Period; default = 6 gün) içerisinde kaydını yenilemezse, kaydın durumu SERBEST olarak not edilir (assigned a status of RELEASED). Sunucu, kayda bir "yokolma süresi" (Extinction Interval; default= 4 gün) belirler ve bu süre sonunda da kaydın yanına TOMBSTONED notu düşülür (Yukarıda tombstone ile işaretlenen kayıtlara ne olduğu anlatıldı).
- Kaydı Bırakmama (Failure To Release)
Eğer bir istemci "yenileme süresinde" (Renewal Period) bittiğinde hala kaydı bırakmamışsa, sunucu otomatik olarak kaydı SERBEST bırakır (RELEASED). Serbest bırakılan kayıt yukarıdaki işlemlere tabii tutulur.
- Ana WINS Sunucusunu ulaşamama (Unable to contact Primary WINS Server)
Eğer istemci kaydını yenilemek istediğinde, Ana WINS sunucusuna ulaşamazsa ve başka bir WINS sunucu (Secondary) biliyorsa, kaydını onda yenileyebilir. Bu durum genellikle, problemlere sebep olur (Mesela bir kayıt ana sunucuda Aktif görünüyorken, diğerinde Serbest kalabilir). Bu durumu önlemek için, eğer istemci kaydını ana sunucu dışında bir sunucuda serbest bıraktırıyorsa (Released), kayıt süresinin sonu beklenmeden yanına TOMBSTONED işareti konulur.
- İstemci'nin göçmesi (Client Crash)
WINS sunucusunun, "yenileme süresi" (Renewal Period) devam ettiği sürece, kayıtlı bir WINS istemci bilgisayarının göçüp göçmediğini bilmesinin imkanı yoktur. Bu süre zarfında, kayıt durumu "Aktif" olarak işaretli olduğu için, sunucu kendisinden kayıtla ilgili çözümleme isteyenlere, bu kaydın IP adresini verir.
Eğer bir istemci, göçmüş bir bilgisayar IPsini alır ve bağlantı kurmaya çalışırsa, bağlantı kurulamaz. İstemci, bu durumu WINS sunucuya rapor eder. WINS de bulunamayan istemciye bir isim sorgulama mesajı (Name Query Request) gönderir. Eğer cevap gelmezse, kaydı serbest bırakır ve tabii ki hemen bir "yokolma süresi" (extinction interval; default=4 gün) belirler.
B) İsim Çözümleme (NAME RESOLUTION)
Bir WINS istemci, bir NETBIOS isminin çözümlenmesini istediğinde (karşı tarafın IP adresine ihtiyaç duyduğunda) NETBT.SYS sürücüsü (driver) WINS sunucusuna bir "isim sorgulaması" (Name Lookup Query) gönderir.
Eğer gönderdiği isim 16 karakterden uzunsa ya da için de "." varsa, bu bir DNS Host adı olarak düşünülür ve IP adresini bulmak için NETBT.SYS devreden çıkar, TCPIP.SYS sürücüsü devreye girer.
WINS sunuc bir isim sorgulaması aldığında, database'ine bakar. Eğer kaydı bulur ve durumunun Aktif (Active Status) olduğunu görürse, "isim sorgusu cevabı" (Name Lookup Response) ile aranan IP adresini geri iletir.
İstemci Çözümleme Seçenekleri (Client Name Resolution Options)
Bir windows istemci NETBIOS isimlerini ya Broadcast ya da WINS ile çözümlemeye ayarlanabilir. Bu iki yöntemin çeşitli kombinazonları vardır. İstemci tarafından kullanılacak yöntem NETBIOS "düğüm tipi" (node type) ile belirlenir. 4 tip düğüm vardır.
1. b-node (broadcast) NETBT.SYS sürücüsü, IP Multicast'ler kullanarak kaydolma ve çözümleme yapar.
2. p-node (point-to-point)
3. Bu yöntem sadece WINS'i kullanır. Eğer WINS sunucusu bulunamazsa, isim çözümlenemez.
4. m-node (mixed)
5. Bu yöntemde önce Broadcast yapılır, eğer sonuç alınamazsa WINS'e başvurulur.
6. h-node (Hybrid)
Bu yöntem RFC 1001 veya 1002 de belirtilmemiştir ama Microsoft m-node'un ürettiği broadcast trafiğini azaltmak amacıyla bu yöntemi bulmuştur. Bu yöntemde önce WINS ile çözümleme yapılır, eğer WINS ile sonuç alınamazsa broadcast yapılır. WINS yüklendiğinde default olarak bu yöntem aktiftir. Aslında burda en uygun seçim p-node ya da h-node olarak görünür. Hatta h-node daha mantıklı görünür ama pratikte h-node istemcileri sık sık broadcast yaparlar. Hatta ortamdaki WINS çalışıyorken bile broadcast yaptıkları olur. Ayrıca h-node istemcileri logoff yaparken biraz daha fazla bekletirler çünkü ısrarla hem WINS hem de broadcast ile isimlerini serbest bıraktırmak isterler (deregistration).
Öte taraftan p-node istemcileri asla broadcast trafiği oluşturmazlar ve hızlı logoff olurlar ama tabii eğer WINS sunucusuna bir şey olursa NETBIOS isim çözümlemesi yapamazlar. Eğer 2. bir WINS sunucu (yedek) varsa p-node'unu seçmek daha akıllıcadır. Eğer tek sunucu varsa, ihtiyatlı davranıp h-node kullanmakta fayda var.
Her WINS sunucukendi veritabanına (database) sahiptir. Bir WINS sunucuya yeni bir replikasyon partneri kaydedildiğinde, veritabanları birleştirilir!
WINS iki yöntemle replikasyon yapar:
Veritabanındaki değişiklikler, önceden belirlenen sayıya ulaştığında, replikasyon partnerleri ile temasa geçilir ve güncellemeler gönderilir (Event driven).
- PULL MODE
Replikasyon partneri belli aralıklarla WINS sunucusunu yoklar (poll for updates; time driven).
Her kayda bir versiyon numarası verilir ve bu numara (ID) sürekli artar. Push yönteminde WINS sunucu, son gönderdiğinden daha yüksek numaralı kayıtları gönderir. Pull yönteminde, Replikasyon isteyen sunucu kendisindeki numaraları WINS sunucuya bildirir ve daha yüksek numaralı olan kayıtları alır.