19.08.19/18:42

WINS ve Bilgisayar İsimleri

Başlatan data_grrr, 24.02.07/02:35

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

data_grrr

Yazan: Kaan Adanalı
Bu dökümanın kopyalama, dağıtma, değiştirme izni GNU GPL (Genel Kamu Lisansı) Versiyon 2 altında verilmiştir.

WINS

Bilgisayar İsimleri:


Bilgisayarların birbirleriyle kurduğu iletişimin mantığı  bazen insanlarınkine çok benzer. Bilgisayarları insanların yaptığı düşünülürse aslında bu çok normaldir.

İnsanları dünyada birbirlerinden ayırt eden en önemli şey belki de isimleridir. Aynı şey bilgisayar ve programlar dünyası içinde geçerlidir.

Bugün bir insana ulaşmak istediğimizde eğer adresini biliyorsak o kişiye doğrudan gideriz, eğer adresini bilmiyor ya da unutmuşsak bir başka kişiye sorarız.

Birbirlerinden uzak olan bilgisayarlar da (yani programlar) aynı şekilde birbirlerine ulaşmak için isimlerini kullanırlar. Sonuçta insanlar gibi programlar da adreslerini değiştirebilirler ama isimlerini genellikle değiştirmezler.

Gelişen teknolojiye paralel olarak bilgisayarların bu isimden adres sorgulama davranışları da değişmiştir. En başlarda geliştirilen, NetBIOS (network basic input/output system) adı verilen bir program yazılımların yerel ağda bulunan kaynaklara NetBIOS isimleri kullanarak ulaşabilmesini sağlamıştır. Bu sisteme göre her bilgisayar açılış sırasında kullanıcı tarafından kendisine önceden  verilen ismini yerel ağda bulunan bütün komşularına duyurur(bunun bilgisayar dilinde anlamı yerel ağda bulunan bütün ip adreslerine bu ismi içeren broadcast paketi atılmasıdır), eğer cevap alamayıp bu ismin bir başkasında olmadığını öğrenirse bunu kullanmayı kabul edip kaydeder. NetBIOS ilk çıktığında isim sorgulama davranışı da pek farklı değildir. Yine sorgulayan bilgisayar "x isminde bir makine/program var mı?" anlamına gelen bir broadcast paketini yerel ağdaki bütün makinelere atar ve bir adres cevabının kendisine dönmesini bekler. Bir adres dönerse o adresi hafızasında tutar, ve o adrese giderek ilgili programla iletişim kurmaya başlar. Tabi yerel ağdaki bütün bilgisayarların birbirlerini bulmak için bütün makinelere sorgu gönderdiği düşünülürse bunun ağda yaratacağı aşırı trafik kolayca tahmin edilebilir.

Bunu düşünen yazılım üreticileri ağda bulunan bütün bilgisayarların kullanmış oldukları NetBIOS isimlerini hafızasında tutabilecek ve bu isimler için yapılacak sorgulamaların yükünü tek başına çekebilecek uygulamalar geliştirmişlerdir. Windows dünyasında bu uygulamanın adı WINS'tir (Windows Internet Naming Service).

Wins:

NetBIOS isimleri Windows ağlarında Windows 2000 öncesi işletim sistemleri tarafından kullanılırlar. Dolayısıyla bu sistemlerde kullanılan servisler (dosya paylaşımı gibi) isimlerini NetBIOS olarak kaydettirmek zorundadır. Bu nedenle eski Windows işletim sistemleri kullanılan ortamlarda Wins'in kurulması gerekir.

Bu uygulama teorik olarak her bilgisayarda çalıştırılabilir ve onu çalıştıran bilgisayara Wins Sunucu adı verilir. Wins fazla işlemci gücü tüketmediğinden çok güçlü bir bilgisayar da istemez. Yalnız dikkat edilmesi gereken Wins sunucuda çok fazla girdi ve çıktı (I/O) olacağı için özellikle yine fazla girdi ve çıktı yapılan Domain Controller gibi sunuculara kurmaktan kaçınılması gereklidir.

Sadece Wins Sunucunun kurulmasıyla istemciler NetBIOS isimlerini çözümlemek için broadcast mesajları atmayı bırakmazlar. Bu nedenle kendilerine artık Wins Sunucuyu kullanmaları gerektiği söylenmelidir. Bu ise ya istemcilerin TCP/IP özelliklerinde bulunan advanced sayfasındaki WINS bölümüne Wins Sunucuların IP adresleri eklenerek, ya da otomatik IP adresi alan istemciler için bu hizmeti sunan DHCP sunucusunda Wins Option'ı konfigüre ederek sağlanır. Böylece artık wins sunucusunu kullanmaya hazır olan bilgisayarlar Wins İstemcisi olurlar.

Wins sunucuların TCP/IP özelliklerinde belirtilmesi bir tesadüf değildir. Wins iletişim için TCP/IP protokülünü kullanmak zorundadır. Bu nedenle wins bileşenlerinin haberleşebilmesi için NetBIOS over TCP/IP (NBT) adı verilen bir protokol her wins bileşeninde mesaj alışverişini kontrol eder. NetBIOS mesajlarının TCP/IP üzerinden akışı aynı zaman isim çözümlemelerinin yönlendirilmiş ağlarda sorunsuz bir şekilde çalışabilmesini sağlar.

Wins'in Çalışma Sistemi:

Bir wins istemcisi ilk kez ağa katıldığında açılış işleminin bir parçası olarak kendisi için belirlenen wins sunucusuna ismini kaydettirir. Bu işlemde kullanıcının bir etkileşimi bulunmaz, ilerde de bulunmayacaktır. Bu nedenle dinamik isim kaydı gerçekleşmiş olur. Windows 95 sonrası işletim sistemleri dinamik isim kaydına izin verirler. Eğer ağda buna izin vermeyen bir işletim sistemi bulunuyosa ilgili isim statik isim kaydı olarak yani elle girilmelidir.

Wins sunucusunda bütün isimler IP adresleri karşılıklarıyla kaydedilir.
örnek: KOMP12  -  192.168.1.1
İsimlerin wins sunucusunda tutuluduğu bu alana Wins Veritabanı adı verilir.

Wins istemcileri için yapılan kayıt sırasında isimler üzerinde bazı işlemler yapılır. Örneğin ismin başkasında olup olmadığı sorgulanır.  Böylece kayıt yapılan ismin sistemde eşsiz olması sağlanır. Ayrıca isimlerin karşılık geldiği adresler devamlı olarak kontrol edilmelidir. Böylece hatalı ya da kullanılmayan eşleştirmeler yapılmasının önüne geçilmiş olur. Sistemlerin her açılışında bu işlemlerin yapılması hem wins sunucuyu yoracağı hem de ağda gereksiz trafik yaratacağı için wins belirli zaman aralıklarıyla NetBIOS isimlerinin durumlarını kontrol eder. Bu zaman aralığına renewal interval adı verilir ve isimler ilk kayıt oldukları anda isimlerin özelliklerine timestamp olarak eklenerek kontrol edilir. Timestamp sistem saatine ismin sistemde yaşayabileceği maksimum zaman eklenerek hesaplanır. Bu süreye Time To Live (TTL) adı verilir. İstemciler isimlerinin yaşam sürelerinin yarısı biter bitmez wins sunucuya bu süreyi yeniden eski haline getirmesini söyler. Yaşam süresi yenilenmeden zamanı biten isimler serbest bırakılırlar ve herkes tarafından yeniden kullanılabilirler.


Wins Özellikleri

Burst Handling:

Wins'in üzerindeki yükü biraz daha azaltabilmek için, wins'in özelliklerinden aktif edilebilen burst handling kullanılabilir. Burst handling özellikle wins'in en yoğun olduğu zamanlarda (örneğin sabah saatlerinde herkes bilgisayarlarını açtığında) devreye girerek daha önceden kayıt olmuş wins istemcilerinin kayıt güncelleme isteklerini bürokratik tarzda geciktirir. Kayıt isteyen istemcilere "senin ismin tamam, ama işlemlerinin tamamlanması için 1-2 dakika sonra gelmelisin." anlamında mesajlar gönderir. Böylece bir sıraya sokulan istemcilerin hepsinin kayıtları gerekli kontrolleri yapılarak (sistemde başka bu isimden var mı gibi) tamamlanacaktır. Wins'in burst handling'in ne zaman aktif olacağını bilmesi için burst handling ayarlarından sorgu adedi eşiği belirlenmelidir. Böylece belirli bir sayıda sorgu eşiği geçtiğinde wins burst modunda kayıt yapacaktır.

Push/Pull Partners:

Ağ ortamında tam bir hata toleransından söz edilebilmesi için her sunucunun, aygıtın bir yedeği olmalıdır. Bu sayede tek bir noktanın devre dışı kalması ağın işlemesini engellemez. Bu nedenle Wins sunucuları da genellikle tek bir sunucu olarak düşünülmez. Wins istemcileri ayarlanırken tcp/ip ayarlarına iki wins sunucusu eklenebilir. Bu sayede istemci ismini kaydettirmek için ilkine gittiğinde eğer başarısız olursa (bunun nedeni wins sunucunun bozulması,aşırı yük nedeniyle cevap verememesi olabilir.) ikincisine gidecek ve isim kaydını onun yapmasını isteyecektir. Aynı şekilde isim çözümlemesi için birincisi cevap vermiyorsa ikincisinin yanıt vermesini isteyecektir.

Fakat kayıtlar birinci sunucuda alındığı için ikinci sunucu kendisinden istenen adres konusunda doğrudan bilgi sahibi değildir. Bu nedenle kayıtların sahibi (owner) olan birinci wins sunucudan bu bilgileri belirli zamanlarda kopyalamak zorundadır. Dikkat edilmesi gereken nokta iki sunucunun da zaman zaman kayıt sahibi olabileceğidir. Bu nedenle ikisi de birbirinden kayıtları çekmek zorundadır. Bu işleme replikasyon denir ve iki wins sunucu bu durumda replikasyon partnerleri olurlar ya da diğer ismiyle push/pull partnerleri. Kayıt sahipliği bu şekilde dağıtılabildiği için wins veritabanına dağıtılmış veritabanı(distributed) denir.

İki wins sunucuyu en kolay şekilde replikasyon partneri yapmak için izlenecek yol aşağıdaki gibidir.

1) Bir wins sunucuda Start'a basılarak Administrative Tools bölümüne gelinir ve Wins sunucusunu yönetme arabirimi olan WINS snap-in'i açılır.
2) Replication Partners klasörüne sağ mouse tuşu ile tıklanır.
3) Properties'ten Advanced'e gelinip enable automatic partner configuration kutusu işaretlenir.

Bu şekilde ayarlanan wins sunucusu belirli zaman aralıklarıyla multicast mesajları gönderip başka bir wins sunucusu arar ve onunla yapacağı replikasyonu otomatik olarak konfigüre eder.

Replikasyon partnerlerinin otomatik olarak ayarlanması istenmiyorsa yine wins snap-in'inden push ve pull partnerleri özel olarak belirtilebilir.

Wins veritabanının replikasyonu bir push partnerinden pull partnerine doğru gerçekleşir. Gerek veriyi gönderen push gerekse veriyi alan pull partneri özel olarak konfigüre edilmelidir. Bunun nedeni iki tarafın da replikasyonu başlatma kabiliyeti olmasıdır. Push partnerin ayarlanmasıyla kendisinde gerçekleşen belirli bir sayıda veritabanı değişkliği sonrasında pull partnerine güncelleme yapması konusunda uyarı göndermesi sağlanabilir. Pull partneri ise kayıtların sahibi olmadığı için ve bunları kendi veritabanında kontrol etmediği için ne kadar değişiklik olduğunu bilemez. Bu nedenle pull partneri belirlenen zaman aralıklarında push partnerinden güncelleme talep edecek şekilde ayarlanır.

Push/Pull Partners Topolojileri:

Birden fazla yerel ağ, yani subnet bulunan ağlarda her wins kendi yerelinde bulunacak şekilde yerleştirilebilir. Bu wins sunucuları daha sonra birbirlerinin push ve pull partnerleri olarak konfigüre edilebilir. Bu yapıya bilindiği gibi mesh ağ topolojisi denir.

Buna bir alternatif olarak replikasyonun tek bir merkezi noktadan kontrol edilmesi için yapı daha da basitleştirilerek tek bir merkezi noktaya ikincil bir wins sunucu kurarak subnetlerde bulunan birincil wins sunucularının bu merkezi sunucuya veritabanlarını aktarması ve burada birleşen veritabanlarının tekrar ayrı ayrı birincil wins sunuculara gönderilmesi sağlanabilir. Bunun için bütün birinci sunucular ikinci sunucunun push/pull partneri olarak ayarlanır.


Wins Kayıtlarının Temizlenmesi:


Wins veritabanında zamanla birlikte artık kullanılmayan gereksiz isim kayıtları birikebilir. Bunların silinmesi gereklidir. Tek bir wins sunucucun olduğu bir ağda bu işlem pek karmaşık değildir.

1)Wins snap-in'i açılır. Sunucu ismi genişletilir. Active Registrations sağ tıklanır.
2) Display records seçilir ve bu bölümde ilk alana ya belirli bir isim girilir ya da alt bölümde IP aralığı belirtilerek Find Now butonuna basılır.
3) Wins snap-in'inin sağ tarafında beliren kayıtlar seçilir ve sağ tıklanıp delete seçilir.
4) Açılan sayfada seçili olan delete the record only from this server öyle bırakılarak OK butonuna tıklanır.

İki wins sunucunun replikasyon partnerleri olarak çalıştığı ağlarda ise silme işlemi biraz daha farklı gelişir. Bu sunuculardan birinde bir kayıt silinse bile bir dahaki replikasyon zamanında bu kayıt geri dönecektir. Bunun olmaması için silme işlemi için delete seçildiğinde açılan sayfadan Replicate deletion of the record to other servers (tombstone) seçilerek kayıt/kayıtlar tombstone yöntemiyle silinir. Tombstone yapma normal silme işleminden farklıdır; bir kaydı doğrudan silmek yerine onu "bu silinecek bir kayıttır" anlamında işaretler. Böylece bu şekilde işaretlenmiş olan bütün kayıtlar replikasyon aracılığıyla ağdaki bütün wins sunucularda tombstone olarak işaretlenir.

Tombstone olarak işaretlenen kayıtların kesin olarak silinmesi iki şekilde gerçekleşir. Birincisi wins varsayılan olarak her üç günde bir scavenging denilen işlemi uygulayarak bu kayıtları veritabanından siler. İkincisinde ise wins snap-in'in de server ismine sağ tıklanıp Scavange Database seçilerek elle silinir.