Original in fr Frédéric Raynal
fr to tr Yeşim Tanrısever
Ağ haberleşme servisi (NIS) Sun tarafından yaratıldı ve Sun Yellow Pages (Sun Sarı Sayfalar) adı ile tanındı. Ya da daha kısa ve genel bir şekilde Yellow Pages (YP) de denebilir. Bu isim British Telecom tarafından satın alınmış olup başka kişiler tarafından kullanılması yasaktır.
NIS sunucuları ağda bulunan birçok bilgisayarda aynı olan yapılandırma dosyalarını saklarlar. Bu sebepten NIS istemci bilgisayarları kendi yapılandırma doslarında bakmaktansa sunucuda bulunan dosyalara bakarlar ve bu dosyaları kullanırlar.
Ağ içinde bir kullanıcının şifresini değiştirmek istediğini varsayalım. Öncelikle YP'lerin sistemde kullanılmadığını düşünelim. Bu durumda, kullanıcı her bir bilgisayara gidip işlemini teker teker yapmak zorunda kalacaktır. Oysaki YP sayesinde, kullanıcının NIS istemcisinin çalıştığı herhangi bir bilgisayarda şifresini değiştirmesi yeterli olacaktır. Böylece yeni şifre istemci tarafından sunucuya ulaştırılacak, yeni veriler de sunucu tarafından diğer istemcilere iletilecektir. Daha sonra,bu kullanıcı NIS istemcisinin çalıştığı herhangi bir bilgisayardan sisteme girmek istediğinde, giriş şifresi sunucunun verdiği verilerle karşılastırılır.
YP'nin daha baska özellikleri de mevcuttur fakat bu yazı bir giriş olduğundan, detaylara girmeden ana hatlarıyla değinilecektir.
Glibc 2.x (libc6), NSS (Name Switch Server) kullanımını desteklemektedir. Bu sunucu sayesinde bilgilerin hangi sırada aranması gerektiği belirlenir ( /etc/nsswitch.conf dosyasına bakınız). Bilgisayar isimlerinin, şifrelerin protokol ve ağların.. haritalarını (map) yönetir.Ağda bulunacak bir NIS sunucu, bir alan için servis verir. Alan, kabaca sunucunun sunacağı bilgilerin veri tabanı ismidir. NIS istemcilerine bir anahtar görevi gören bilgi sayesinde , gerekli NIS sunucusundan istenilen bilgiye erişilir. Alan adı'nın kesinlikle DNS'teki alan adı ile bir bağlantısı yoktur. Aynı ağda birden fazla NIS sunucu bulunabilir. Herbiri farklı alan adlarında (NIS alanında) ya da aynı alan adında (bu durumda ana sunucu ve istemci sunuculardan bahsedilecek) yönetim yapabilirler.
İkincil sunucular ana sunucuların verilerini kendilerine kopyalarlar sadece. Bu sunucular, ana sunucuda bir aksaklık olduğunda birincil sunucu gibi görev görür, ana sunucunun yerine geçerler.
yppush programı sayesinde ikincil sunucular, ana sunucudaki tüm değişikliklerden haberdar olur ve kendi bilgilerini güncellerler.
YP veritabanları, ASCII formatından oluşmuş GDBM formatındadır. Ayrıca makedbm programı sayesinde, sunucunun kurulması esnasında oluşturulur.
Bu haritalar (veritabanları) bir açkı ve değeri arasındaki bağlantıyı kurarlar. Tüm YP haritaları bu model üzerine oluşturulmuştur. Sunucu için içeriğin bir anlamı yoktur (ana sunucuların bulunduğu ya da tarih bilgilerinin bulunduğu haritalar sadece birkaç istisnadir.) Sunucu için ise, sunucuların bulunduğu bilgiler ya da tarih bilgileri dışında bu verilerin hiç bir anlamı yoktur. Kısacası sunucu için, grup, şifre .. haritalarının bir anlamı yoktur. Sadece YP istemcisi bu haritaları etkin bir şekilde kullanabilir.
Verilerin bu durumdaki sunumu bir problem teşkil etmektedir. Sunucu bir açkının değerini başka bir açkı aramak için "okumayı" bilmediğinden bu durumda verilerin iki kez saklanması gereklidir. Geçiş sözcüklerini ele alalım: bu veriler kullanıcı adına göre, "kullanıcı numarası"na göre (kullanıcı ID ya da UID) aranabilir. Bu durum passwd.byname ve passwd.byuid dosyaları sayesinde gerçekleştirilir. Her anahtar için farklı bir harita oluşturulduğundan, veriler değişim anında iki kez aktarılacaktır.
Bir istemcinin veritabanındaki istenilen veriye ulaşabilmesi için üç bilgi çok önemlidir:
Bu, kullanım da çok büyük bir esneklik sağlamaktadır çünkü yeni bir alanın oluşturulması, /var/yp/yeni_alan dizininin oluşturulmasını sağlar ve bu dizine Makefile kopyalandıktan sonra istenilen seçeneklerle derlenecektir.
YP'nin işleyişi, temel olarak istemci-sunucu isteklerini sağlayan Remote Procedure Calls (RPCs) 'lere dayalıdır.
RPC portmapper (portmap) ,PRC program numaralarını port numaralarına çeviren bir programdır. Bir RPC sunucusu çalıştırıldığında, portmap programına hangi portu kullanacağını ve kullandığı RPC program numaralarını duyurur. İstemci, verilmiş bir program numarası ile bir RPC isteği yollamak istediğinde, öncelikle portmap sunucuyla bağlantıya geçer böylece istenilen programın hangi port üzerinde çalıştığı bilgisine ulaşılır. Daha sonra ise, RPC paketlerini gerekli porta yollar.
yp_prot.h dosyasında, istemci ve sunucular arasındaki RPC protokolünü tanımlayan 11 fonksiyonun yapısı ve örnekleri mevcuttur.