üye ol Üye Girişi Söyle Sözünü Anasayfa Yukari Çik
Bilgi Paylaştıkça Büyür

TCP/IP nedir, ne ise yarar, nasıl kullanılır

Internet’in yaygınlaşmasıyla birlikte TCP/IP kısaltmasını çok sık duymaya başladık. Bu kısaltmanın bir bilgisayar ağı protokolü olduğu, Internet’in bu protokol üzerine kurulu olduğu hep tekrarlandı. Ama Türkiye’de şimdiye kadar TCP/IP’yi anlatan bir kitap çıkmadı. Hal böyle olunca Internet’e bağlanırken girdiğimiz değerler (IP, subnet mask, default gateway vs.) ne anlama geliyor, bunları yanlış girince niye Internet’e çıkamıyoruz, kısacası “nasıl oluyor da oluyor,” hiç bilemedik. Bu kitap işte bu açığı kapatmayı amaçlıyor. Bu kitapta TCP/IP’nin ne olduğunu, nasıl kullanıldığını bir bir anlatacağım.
Şu anda en yaygın olan üç ağ işletim sistemi Windows NT/Windows 2000, Novell Netware ve Unix. Bu üç işletim sistemi de TCP/IP’ye destek veriyor. Ben TCP/IP’yi anlatırken belli bir platformu, Windows NT 4.0 ve Windows 2000 platformunu seçiyorum. Bunun iki nedeni var: Birincisi Unix işletim sistemini hiç bilmiyorum; bu zamandan sonra da öğrenmeye niyetim yok. Novell’in 2.12, 2.15 ve 2.2 sistemleriyle tanışığım ama sonrası benim için bir bilmece; bu zamandan sonra onları da çözmeye niyetim yok. Öte yandan Windows NT 1993 yılında piyasaya çıkışından beri düzgün bir şekilde ilerliyor, Hele son versiyonu olan NT 4.0 büyük çok büyük bir başarı kazandı, Hem Türkiye’de hem de dünyada alternatif işletim sistemlerinden çok daha fazla satmaya başladı. Bir araştırmaya göre 1997 yılında satılan sunucuların yüzde 40′ının üzerinde Windows NT 4.0 bulunuyordu. Benim de en iyi bildiğim işletim sistemi Windows NT 4.0 olduğu için TCP/IP’yi bu platformda anlatıyorum. Ama aranızda bu platformla henüz tanışmamış şanssız arkadaşlar varsa çok üzülmesinler: Bu kitapta anlatılan TCP/IP kavramları genel olarak her platformda aynen geçerlidir. Yalnızca Windows NT’ye özgü yerleri kitap boyunca vurgulayacağım.
TCP/IP
Windows NT için kitapta kullandığım bazı şeyleri burada açıklamak istiyorum. Bunlardan birincisi Service Pack, yani Servis Paketi. Nedir bu servis paketi?
Windows NT 4.0 1996 yılında piyasaya çıktı, NT 4.0 bilgisayara yüklen-diğinde 120 MB yer kaplayan binlerce dosyadan oluşuyor. Bu binlerce dosya defalarca test edilmesine karşın halen hatalar, “bug”lar içeriyordu. Bu hatalar Microsoft’a rapor edildikçe düzeltildi ve hata içeren dosyaların yerine hatasızları oluşturuldu. Bu düzeltilen dosyalar bir pakette toplandı, buna servis paketi l denildi. NT 4.0 kullanıcıları servis paketini ücretsiz olarak yüklenebiliyorlar.
Ama binlerce dosya içindeki hatalar yalnızca bunlarla sınırlı değildi. Yeni hatalar rapor edildi, hatalı dosyaların yerine yeniden hatasız dosyalar oluşturuldu, servis paketi 2 hazırlandı. O da kullanıcıların hizmetine sunuldu.
Şu anda ise 3 nolu servis paketi var. NT 4.0, servis paketi 3 ile birlikte iyi bir ikili oluşturuyorlar. NT 4.0 kullanıyorsanız servis paketlerini takip edin ve muhakkak yükleyin.
Servis paketinin yüklenmesi şöyle oluyor: Servis paketini yükleme pro-gramını çalıştırdığınızda hatasız dosyalar NT dosyalarının bulunduğu dizine (genelde \WINNT dizini oluyor) kopyalanıyor.
Şimdi servis paketini niçin anlattım durduk yerde? Açıklayayım.
Kitapta anlatılan TCP/IP hizmetlerinin hemen hepsi Control Panel’deki Network uygulamasından ve Services sayfasından hizmet (service) olarak yükleniyor.
Bir hizmeti yüklemek istediğinizde o hizmetle ilgili dosyaları kopyalamak için sizden kurulum dosyalarının bulunduğu yer (genelde I386 dizini oluyor) soruluyor. O dizini bulunca da İlgili dosyaları NT dosyalarının bulunduğu yere kopyalıyor. Bu kopyalanan dosyalar arasında birçok dosya servis paketi tarafından düzeltilmiş, hata İçeren dosyalar. Bu ne demek? Servis paketini yüklediniz ama daha sonra hatalı dosyaları tekrar sisteme aktardınız; servis paketi yükleme işlemi fiilen iptal edildi.
10
Peki ne yapmak gerekiyor? Bu tür servisleri yükledikten sonra servis paketini tekrar uygulamak. Pek sevimli bir iş değil, değil mi? Ama başka Çare yok.
Servis paketlerini nereden bulabilirim diye sorabilirsiniz? Bu paketler Internet’te Microsoft’un sitesinden (www.microsoft.com) indirilebilir. Ama hiç tavsiye etmem. Çünkü NT 4.0 için son servis paketi olan 3 numara yaklaşık 30 MB büyüklüğünde. Hızlı bir internet bağlantınız yoksa paketi indirmeniz günlerce sürebilir.
Servis paketlerini çok daha iyi bir şekilde TechNet’ten edinebilirsiniz. TechNet, Microsoft’un sunduğu bir abonelik sistemi. TechNet’e abone olduğunuzda Microsoft’un programları için hazırlanan bütün servis paketleri size düzenli olarak ulaştırılıyor. Şimdi “NT 4.0 dışında başka programlar için de mi servis paketi var?” diye sorabilirsiniz. Evet var: Windows 95′in ve çeşitli BackOffice programlarının, hatta Office programlarının bile servis paketleri var.
TechNet’te başka neler var? Yeni birçok cihaz için NT sürücüsü (driver) var. NT üzerinde rapor edilmiş çeşitli aksaklıkların ya da püf noktalarının bulunduğu bir Knowledge Base (Bilgi Tabanı) var. Bilgi Tabanı yardımı ile yaşadığınız sorunlara daha önce rastlanmış ise sorunların açıklamalarını, varsa çözümlerini bulabiliyorsunuz. TcchNet’te ayrıca Bill Gates’in birbirinden güzel makalelerini okuyabilirsiniz. Bill Gates bu çağın en önemli kişilerinden birisi ve bu makaleler niçin onun en önemli kişilerden birisi olduğunu ortaya yeterince açık bir şekilde ortaya seriyor. Bu makaleleri özellikle patronların ve genç patron adaylarının okuması gerekiyor.
TechNet’te içerileri bir başka şey de Resource Kit’ler (Kaynak Kitleri). NT ile ya da bazı programlar ile ilgili birçok yararlı program (utility) ve doküman topluca Kaynak Kit’lerinde bulunuyor. Normalde Kaynak Kit’i ayrı bir paket halinde ve parayla edinilebiliyor. Ama TechNet’e abone olursanız içinde Kaynak Kit’leri de bulunduğu için ayrıca para ödemek gerekmiyor.
Yine kitap içinde bazı yerlerde Network Monitör adındaki bir program ile alınmış veri paketleri gösteriliyor. Network Monitör çok güzel bir program: Bütün ağdaki trafiği almak (capture etmek) ve sonra da incelemek için kullanılıyor. Bu programın iki versiyonu var: Birincisi NT İçinde
11
TCP/IP
ücretsiz geliyor ama kısıtlı özelliklere sahip. İkincisi ise bir BackOffice uygulaması olan Systems Management Server (SMS) içinde geliyor (yani, ücretli) ve tam versiyon. Birincisinin en belli başlı kısıtı yalnızca monitörün yüklendiği makinaya gelen/giden trafiği alabilmesi. Tam versiyon İse ağdaki her türlü trafiği alabiliyor ve buna benzer başka avantajlara sahip. TCP/IP ile bu kitabı okuyacak kadar ilgileniyorsanız Network Monitör programının tam versiyonunu edinmenizi öneririm.
TCP/IP konfigürasyonunu test etmek ve gözlemek için kullanabileceğimiz çok sayıda komut ve program var; PING, ROUTE, IPCONFIG gibi. Bu komutlardan bazılarını konuları anlatırken açıklıyorum. Bazılarını ise konuların sonundaki İlgili Komut kısmında açıklıyorum.
Son olarak kitap boyunca kullandığım bazı terimleri burada açıklamak istiyorum. Sonra aramızda kavga çıkmasın.
TCP/IP’yi anlatırken en çok kullandığımız İngilizce kelimeler SERVER, CLIENT, SERVİCE ve FRAME oluyor. Bu kelimeleri İngilizce olarak kullanmaya devam ettiğimiz zaman geriye pek az Türkçe terim kalıyor. O zaman da hem kötü bir yazı yazmış oluyoruz, hem de anlaşılırlık azalıyor. Üstelik bu terimlerin yerine, ilk planda garip gelseler de, güzel, anlamlı Türkçe karşılıklar bulunabiliyor.
Bu yüzden kitap içinde İngilizce SERVER kelimesinin karşılığı olarak SUNUCU kelimesini, CLIENT’ın karşılığı olarak İSTEMCİ kelimesini, SERVICE’ın karşılığı olarak HİZMET kelimesini, FRAME için de ÇERÇEVE kelimesini kullanıyorum. Geriye kalan İngilizce terimlerin de mümkün olduğu sürece Türkçe karşılıklarını kullanıyorum.
12
TCP/IP’YE GİRİŞ
TCP/IP’nin kökleri 1960′ların sonunda ve 1970′lerin başında Amerikan Savunma Bakanlığı’na bağlı İleri Araştırma Projeleri Ajansının (Advanced Research Projects Agency, AKPA) yürüttüğü paket anahtarla-malı ağ deneylerine kadar uzanır. TCP/IP’nin yaratılmasını sağlayan proje, ABD’deki bilgisayarların bir felaket anında da ayakta kalabilmesini, birbirleriyle İletişiminin devam etmesini amaçlıyordu. Şimdi baktığımız zaman projenin fazlasıyla amacına ulaştığını ve daha başka şeyleri de başardığını görüyoruz.
TCP/IP’nin tarihi aynı zamanda Internet’in tarihidir, internet ile TCP/IP ayrılmaz kardeşlerdir. TCP/IP, Internet’in temelidir.
Bildiğiniz gibi Internet’in bir sahibi yoktur. Herkes Internet’in sahibidir, hiç kimse Internet’in sahibi değildir. Ama bu, internet tümüyle başıboş demek de değildir, internet’i, Internet’in protokolü TCP/IP’yi düzenleyen gönüllü kuruluşlar vardır. Bunları şöyle sıralayabiliriz:
ISOC (internet Society: Internet Derneği)
1992 yılında oluşturulmuştur. Internet’te kullanılan teknolojileri, uygulamaları, kuralları belirler. Her ülkede de yerel internet Society’ler bulunur.
IAB (internet Architecture Board: internet Mimarisi Kurulu)
ISOC içinde teknik kuralları öneren kuruldur. Bu kurulun altında da üç kurul bulunur. Internet’! düzenleyenler de aslında bunlardır. Bu kurulları da kısaca anlatalım:
Internet Engineering Task Force: internet Mühendislik Görev Gücü: internet standartlarını oluşturur, teknik sorunlara çözüm üretir,
TCP/IP
Internet Assigned Number Authority: Internet Numara Atama Merkezi: Internet’te kullanılan protokolleri belirler ve gelecek için planlama yapar.
Internet Research task Force: Internet Araştırma Görev Gücü: TCP/IP ile ilgili araştırma projelerinden sorumludur.
Bu kısa tarihçeden sonra bir yerel alan bilgisayar ağı üzerinde TCP/IP’yi anlatmaya geçelim. Burada anlatılanlar internet üzerinde de geçerlidir.
Neden TCP/IP protokolü?
TCP/IP’ye geçmeden önce diğer protokoller ile TCP/IP’yi karşılaştıralım.
Bilgisayarları birbiriyle konuşturabilmek için bir ağ protokolü kullanıyoruz. Kullanabileceğimiz birçok ağ protokolü var. Bir zamanlar her bilgisayar firması kendi bilgisayarları arasında iletişim sağlamak İçin kendisine özgü bir (hatta birden fazla) protokol yazmış. Bunların çoğu yok olup gitmiş.
Günümüzde en yaygın kullanılan ağ protokollerini şöyle sıralayabiliriz:
• NetBEUI
• IPX/SPX
• TCP/IP
Yukardaki üç protokolü de kullanabiliriz. Peki, hangisini seçmeliyiz?
Eğer bir iş için birden fazla seçeneğimiz varsa, seçenekleri iyice değerlendirip bizim için en uygun olanına karar vermeliyiz. Konu ağ protokolleri olunca bu protokolleri hız ve kurulma kolaylığı yönünden değerlendirebiliriz.
Yukardaki üç protokol arasında kurulması en kolay olanı NetBEUI, en zoru TCP/IP’dir. Bilgisayarlara NetBEUI protokolünü kurduğunuzda birbirleriyle konuşmaya başlarlar. TCP/IP protokolünde İse IP adreslerini, Subnet Maskesi denilen bir parametreyi ve gerekiyorsa Default Gate-way, WINS Server ve DNS server adreslerini doğru olarak vermeniz ge-rekİr. Eğer TCP/IP konusunda bir kursa gitmediyseniz ya da bu kitabı okumadıysanız büyük sorunlarla karşılaşırsınız (bu cümleden sonra kitap satışlarım ve öğrenci sayım artar herhalde).
14
TCP/IP’ye Giriş
Yukarıda adı geçen üç protokol arasında en hızlısı NetBEUI, en yavaşı TCP/IP’dir.
IPX/SPX ise her iki bakımdan da ortadadır.
Bu durumda akıl ve mantık, kullanılacak protocol olarak NetBEUI’yi gösteriyor, değil mi? Hayır biz tam tersine en yavaş ve en zor protokol olan TCP/IP’yi seçiyoruz (bilgisayarcılar mazoşisttir). Nedenini açıklayalım:
NetBEUF’nin iki temel sorunu var: Birincisi firmaya özel olması. NetBEUI, Microsoft ve IBM firmalarının (ve üçüncü bir firmanın) birlikte, kendi bilgisayarları İçin geliştirdikleri bir protokoldür. Dolayısıyla bu protokolü Microsoft’un ya da IBM’in bir rakibinin kullanması kolay kolay düşünülemez. İkinci temel sorun İse NetBEUI’nin yönlendirilebilir (routab-le) olmaması. Yani, NetBEUI ile aşağıdaki gibi bir ağ kuramayız:
Şekilde bir yönlendiricinin birleştirdiği iki ayrı alt ağ görüyorsunuz. Böyle bir ağda NetBEUI işe yaramaz çünkü NetBEUI protokolü yönlendirilebilir bir protokol değildir; NetBEUI ile yaratılan paketler yönlendiricinin öte yanına geçemez.
O zaman IPX/SPX protokolünü kullanabiliriz: IPX/SPX hem yönlendirilebilir bir protokoldür hem de TCP/IP’ye göre daha hızlıdır, yapılandırılması da daha kolaydır. Ama bu seçeneği de seçmiyoruz. Çünkü bu protokolün bir sahibi vardır (Novell firması). Bu protokol kullanıldığında sahibine para ödemek gerekir, ikinci bir nedenimiz de şudur: Novell’in kendisi ana ürünü olan Netware’in son sürümünde (5.0) birincil protokol olarak IPX/SPX’i değil TCP/IP’yi kullanmaktadır. Novell’in terkettiğini biz niye tercih edelim?
TCP/IP, hız olarak yavaş olmasına ve kolay kolay yapılandırılamamasına karşın şu andaki tek seçenektir. Çünkü TCP/IP, Internet’in kullandığı protokoldür. Internet’in yaygınlaşmasıyla birlikte de yaygınlamıştır.
İlk zamanlar, bir kurum Internete bağlandığında yalnızca Internete bağla-
TCP/IP
nan bilgisayarlara TCP/IP protokolünü yüklemek yeterli oluyordu. Kurum içindeyse IPX/SPX ya da NetBEUI kullanılıyordu. Ama giderek bir kurum içindeki her bilgisayarı Internete çıkarmak gerekli olmaya başladı. Bu durumda da içerde başka bir protokol, Internete bağlanırken farklı bir protokol kullanmak yerine havada, karada, suda, her yerde, her zaman TCP/IP kullanmak çok daha mantıklı olmaktadır.
TCP/IP: Internet Protokolü
TCP/IP, Transmission Control Protocol/Internet Protocol ifadesinin kısaltması. Türkçe’si “iletim Kontrol Protokolü/Internet Protokolü” oluyor. Protokol belli bir işi düzenleyen kurallar dizisi demek. Örneğin, devlet protokolü devlet erkanının nerede duracağını, nasıl oturup kalkacağım düzenler. Ağ protokolleri de bilgisayarlar arası bağlantıyı, iletişimi düzenliyor.
TCP/IP’nin adına bakıp tek bir protokol olduğunu düşünmeyin, TCP/IP, bir protokoller kümesi. Her biri değişik işler yapan bir yığın protokolden oluşuyor.
TCP/IP ile kurulan bir bilgisayar ağında bir bilgisayarı üç parametre ile tanımlarız. Bu parametreler:
• Bilgisayarın adı
• IP adresi
• MAC adresi (Media Access Control: Ortama Erişim Adresi) şeklindedir.
TCP/IP protokoller kümesi bu üç parametreyi kullanarak bilgisayarları birbirine bağlar.
Bilgisayarın ismi kullanıcı tarafından işletim sistemi yüklenirken bilgisayara verilen addır (Bilgisayarlara MUHASEBE, SATIŞ ya da AHMET gibi açıklayıcı ve anımsanması kolay adlar verilir).
IP adresi ise 131.107.2.101 örnek adresinde olduğu gibi 4 bölümden oluşan bir adrestir. Nokta ile bir diğerinden ayrılan bu bölümlerin herbiri O ile 255 arasında bir değer alabilir.
MAC adresi, bilgisayarların ağ kartının ya da benzer ağ cihazlarının içine değiştirilmez bir şekilde yerleştirilmiş bulunan bir adrestir. 0020AFF-8E771 örneğinde olduğu gibi onaltılı düzende (hexadecimal) rakamlar-
16
TCP/IP’ye Giriş
dan oluşur. MAC adresi yerine donanım adresi (hardware address) ya da fiziksel adres (physical address) terimleri de kullanılabilir.
Ağ üzerinde iletişim aslında yalnızca MAC adresleri İle gerçekleşir. Çünkü IP adresleri TCP/IP protokolüne özeldir. Başka bir protokolde, örneğin, Novell’in kullandığı IPX/SPX protokolünde IP adresi diye bir şey yoktur. Bilgisayarların adları ise sistemden sisteme değişildik gösterir: Örneğin, Microsoft işletim sistemlerine sahip bilgisayarların adları 15 karakter iken Unix işletim sisteminde 255 karaktere kadar çıkabilir.
Bütün protokollerde değişmeden kalan tek şey MAC adresidir.
Peki, madem bütün ağ iletişimi MAC adresi üzerinden gerçekleşiyor, neden bilgisayar adı ve IP adresi gibi ek parametreler kullanıyoruz?
Bu sorunun yanıtı yine bir soru olabilir: Bilgisayarınızda Ağ Komşularım (Network Neighborhood) ikonuna tıkladığınızda, karşınıza, 0020AFF-8E771 benzeri, yığınla rakamın çıkmasını mı isterseniz, yoksa MAILSER-VER, MUHASABE, AHMET gibi İfadelerin çıkmasını mı istersiniz? Biz insanlar hep ikinci seçeneği tercih ederiz. Halen bir ev adresi verirken “Atatürk Bulvarı 87/6″ gibi bir bilgi verdikten sonra “Akün Sinemasının üstü” gibi bir ifadeyi eklememizin nedeni de aynıdır: Rakam kullanmayı sevmiyoruz (hele biz Türkler hiç sevmiyoruz). Rakam kullanmak insanoğlunun sonradan kazandığı bir beceridir.
Demek ki MAC adresi bilgisayarların ağ üzerinden iletişimini sağlayan Ethernet, Token-Ring gibi teknolojiler tarafından kullanılıyor. Bu ağ teknolojileri yalnız ve yalnız MAC adresini kullanıyorlar, IP adresi ya da bilgisayar adı gibi bir parametreleri tanımıyorlar. İnsanlar ise, bilgisayarları göstermek için bilgisayar adlarını kullanmak eğilimindeler.
Yukardaki açıklama MAC adresi ile bilgisayar adı parametrelerine niye gerek duyulduğunu ortaya koyuyor. Peki, aradaki IP adresini niçin kullanıyoruz?
IP adresi TCP/IP protokolünün bir parçası. NetBEUI’de ya da IPX/SPX’de böyle bir parametre yok. TCP/IP’de, bulunduğumuz ağ parçasını saptama (Bölüm*****) ve alt ağlara ayırma işlemleri (Bölüm *****) için IP adreslerine gerek duyuyoruz.
17
TCP/IP
Her protokol kendine göre bir adresleme şeması kullanır ama bu şemalarda yer alan adreslerin dönüp dolaşıp en altta MAC adreslerine çevrilmesi gerekir.
Bir bilgisayar bir başka bilgisayarın IP adresine sahipse ama MAC adresine sahip değilse Adres Çözümleme Protokolü f Adress Resolution Proto-col, ARP) adı verilen bir protokol kullanarak IP adresini MAC adresine çevirir. TCP/IP’nin bir protokol kümesi olduğunu söylemiştik. İşte ARP bu kümenin bir üyesi.
İletişime geçeceği bilgisayarın IP adresini bilen bilgisayar ARP protokolü ile “Bu IP adresi kiminse bana MAC adresini söylesin” şeklinde bir mesaj oluşturur ve bu mesajı broadcast yapar, yani, ağdaki tüm bilgisayarlara gönderir. Ağdaki bilgisayarların tümü bu mesajı alırlar, eğer söz konusu IP adresi kendilerine ait değilse mesajı çöpe atarlar. Mesajdaki IP adresinin sahibi olan bilgisayar ise kendi IP adresini tanır ve hemen “Bu IP adresi bana ait, benim MAC adresim şu” şeklinde bir mesaj İle yanıt verir. İlk bilgisayar artık diğer bilgisayarın MAC adresini bildiği İçin asıl mesajını doğrudan (broadcast yapmadan) gönderebilir.
Peki, bir bilgisayar IP adresini nasıl alır? Bunun iki yolu var: Ya siz bu ad-resİ elle girersiniz, ya da bir bilgisayar belli bir adres havuzundan aldığı adresleri diğer bilgisayarlara dağıtır. Adresleri elle girmenin en büyük sakıncası adreslerin, subnet mask değerinin ve default gateway gibi diğer bazı bilgilerin yanlış girilebilmesidir. Eğer ağınızdaki bilgisayar sayısı 5-10′u aşıyorsa adresleri elle girmek pek akıllıca değildir.
IP adreslerini otomatik olarak dağıtmanın bir yolu vardır ve bu yolun adı Dinamik Bilgisayar Konfigürasyonu Protokolüdür. (Dynamic Hoşt Con-figuration Protocol, DHCP) Bu protokol ile bir bilgisayar DHCP sunucu (server) olarak tanımlanır ve IP adres dağıtımı bu sunucu üzerinden yapılır.
DHCP sunucu üzerinde bir IP adres havuzu tanımlıdır (örneğin, 220.107.2.100 ile 220.107.2.200 arası gibi). Henüz IP adresi almamış olan bir bilgisayar, eğer IP adresini DHCP’den alacağı belirtilmişse, açıldığında, “Ben yeni açıldım, henüz bir IP adresim yok, eğer ortamda bir DHCP sunucu varsa bana bir IP adresi göndersin” anlamında bir mesaj yayınlar (broadcast eder). Eğer ortamda bir DHCP sunucu tanımlı ise bu mesajı
18
TCP/IP’ye Giriş
alır, “Ben bir DHCP sunucu olduğuma göre bu mesaja yanıt vermek bana yakışır” şeklinde düşünüp kendisinde tanımlı olan IP adreslerinden boşta olanlardan birisini seçerek bilgisayara gönderir. IP adresi alan bilgisayar artık diğer bilgisayarlarla iletişim kurarken bu adresi kullanır. DHCP sunucu, kendisinden adres isteyen istemcilere IP adresini gönderirken bazı başka bilgileri de gönderebilir. Bu yolla istemcinin tüm yapılandırması DHCP sunucu ile gerçekleştirilebilir.
Bir IP adresinin nasıl alındığını gördük, IP adresinin MAC adresine nasıl çevrildiğini de gördük. Şimdi “İyi ama, biz Windows 95′te ya da Win-dows NT’de Ağ Komşularına (ya da Network Neighborhood’a) tıkladığımızda karşımıza IP adresleri ya da MAC adresleri gelmiyor ki, yalnızca bilgisayar isimleri geliyor” diyebilirsiniz; haklısınız. Başta söylediklerimizi anımsayalım: TCP/IP dünyasında bir bilgisayarı üç şey belirler: Bilgisayarın ismi, IP adresi, MAC adresi. Bir bilgisayarın MAC adresini ya da IP adresini değil de ismini kullanmak kolayımıza gelir değil mi? Aksi takdirde bilgisayarların IP adreslerini daha da kötüsü MAC adreslerini ezberlemek zorunda kalabilirdik. Bu yüzden bilgisayarlara açıklayıcı ve kolayca bellekte kalan adlar veriyoruz (AHMET, MEHMET ya da SATIŞ, MUHASEBE gibi) ve iletişim sırasında bu adları kullanıyoruz.
Bilgisayar adını kullanmak kolayımıza geliyor ama ağ üzerinde de iletişim gerçekte MAC adresleri üzerinden gerçekleşiyor. O zaman bilgisayar adını önce IP adresine çeviren sonra da MAC adresine çeviren mekanizmalar, protokoller olmalı, değil mi?. IP adresini MAC adresine çeviren protokolü görmüştük (belleği zayıf olanlara anımsatalım; bu protokolün adı ARP idi). Peki, bilgisayar adları IP adreslerine nasıl çevriliyor? En basitinden şunu yapabiliriz: Bulunduğumuz yerde “Adı şu olan makina bana IP adresini” bildirsin anlamında bir mesaj yayınlarız (broadcast ederiz). Eğer bulunduğumuz ortamda böyle bir bilgisayar varsa bize IP adresini verir. Ama bunu yapmaktan kaçınmalıyız. Çünkü yayınladığımız broadcast mesajlar ağ üzerindeki her bilgisayarı gereksiz yere meşgul eder, Bu bir apartmanın önüne gelip birilerinin dışarı çıkmasını sağlamak üzere arabanın kornasına basmaya benzer: İstediğiniz kişiler dışarı çıkar ama siz de bütün apartmanı ayağa kaldırırsınız (epey de bir hayır duası alırsınız). Aynı işi apartmanın kapıcısının zilini çalıp ona sormakla da yapabilirdiniz. Bu durumda da amacınıza ulaşırsınız (aradığınız kişinin hangi dairede oturduğunu öğrenip o daireye gidersiniz) ama yalnızca bir kişiyi (kapıcıyı) meşgul ederseniz.
19
TCP/IP
Bilgisayar ağlarında da benzer mekanizmalar kullanılabilir. Şu anda bu iş için temel olarak iki seçeneğimiz var: DNS ve WINS. “Niçin iki ayrı seçenek” diye sorabilirsiniz. Çünkü bu İki ayrı seçenek iki ayrı bilgisayar adını IP adresine çeviriyor. Yanlış duymadınız: PC dünyasında bilgisayarların iki adı var. Birincisi en çok 15 karakter olabilen NetBIOS adı. Diğeri ise 255 karakter olabilen internet ortamındaki “host” adı. NetBIOS adına örnek olarak “MUHASEBE”şeklinde bir ad verebiliriz. Host adına karşılık olaraksa “muhasebe.altindam.com.tr” adını verebiliriz. Host ismindeki ilk parametre (“muhasebe”) bir internet domain’indeki bilgisayarın ismidir. Host isminin geri kalanı İse o bilgisayarın bulunduğu internet domain’ini tanımlar (altindam.com.tr). **** Buradaki domain, NT’de-ki domain’den tamamıyla farklıdır. İkisi arasında bir bağlantı yoktur.
Bilgisayarın domain+bilgisayar isminden oluşan host ismine Tümüyle Tanımlanmış İsim (Fully Qualified Name, FQN) de denilir.
İsimler iki tane olunca isim/IP eşleştirme (çözümleme) mekanizmaları da iki tane oluyor. Microsoft, NetBIOS isimlerini IP adresine çevirme konusunda Windows internet Adlandırma Servisi’ni (Windows internet Na-ming Service WINS) öneriyor. Host isimlerini IP’ye çevirme konusunda ise hem Microsoft, hem de internet dünyası Domain İsim Sistemi (Domain Name System, DNS) mekanizmasını kullanıyor.
WINS servisinde bir makinayı WINS sunucusu olarak tanımlıyoruz, bütün bilgisayarlar gidip adlarını ve IP adreslerini bu sunucuya bildiriyorlar (aynen yeni bir eve taşındığımızda hane halkının mahallenin muhtarına kaydolması gibi). Böylece WINS sunucu üzerinde ortamdaki bilgisayarların isimleri ve IP adreslerine ilişkin bir veritabanı oluşturuluyor.
Bir bilgisayar ismini bildiği bir bilgisayarın IP adresini bulmak İstediği zaman broadcast yapmak yerine bu sunucuya gidiyor “şu addaki bilgisayarın IP adresi ne ola ki?” şeklinde bir soru soruyor. WINS sunucu da kendi veritabanına bakıp soruyu yanıtlıyor. Bu aşamadan sonrasını biliyoruz (ARP ile IP adresi MAC adresine çevriliyor, sonra da MAC adresi üzerinden iletişim gerçekleşiyor).
İyi güzel de bilgisayarlar ortamda bir WINS sunucunun var olup olmadığını ve varsa adresini nereden biliyorlar? Bu sorunun yanıtı “WINS sunucu adresi elle girilmiştir” şeklinde verilebilir: Ağ Özellikleri sayfasına
20
TCP/IP’ye Giriş
gidilir, TCP/IP protokolü seçilir ve WINS kısmından ortamdaki WINS sunucu adresi girilebilir. Peki, WINS sunucu adresinin de otomatik olarak verilmesinin bir yolu yok mudur?
Yukarda DHCP’yi anlatırken DHCP sunucunun IP adresinin yanı sıra başka bilgileri de istemci bilgisayarlara (DHCP client’lara) gönderebileceğini söylemiştik. İşte bu bilgilerden birisi de WINS sunucunun adresi. DHCP sunucudan IP adresi alan bilgisayarlar ortamdaki WINS sunucunun adresini de Öğreniyorlar ve gidip kendilerini kaydettiriyorlar. Bu işlem otomatik olarak, el değmeden son derece fenni yöntemlerle gerçekleşiyor.
Son cümleyi biraz abarttık, değil mi? Ama bunun bir nedeni var: WINS, Microsoft tarafından bulunan ve kullanılan bir yöntem. Internet’te bilgisayar adı-IP eşleştirmesi için başka bir yöntem kullanılıyor: DNS (Doma-in Name System). Bu sistemde bilgisayar adları ve IP adresleri DNS sunucu olarak konumlandırılan bilgisayarlara “elle” kaydediliyor. Burada WINS’dekine benzer bir otomasyon söz konusu değil. İsim-IP bilgilerini girme işi bilgi işlem bölümü çalışanlarının (bu kitabı okuduğunuza göre sizin) üzerine kalıyor. Bilgiler DNS’e kaydedildikten sonra bir bilgisayar ismini bildiği bir bilgisayarın IP adresini öğrenmek isterse DNS sunucuya gidiyor ve adresi soruyor,
Bilgisayarlar ortamda bir DNS sunucu olup olmadığını nereden biliyorlar? Yanıtını kestirebilirsiniz: DNS sunucunun adresi ya elle statik olarak girilir ya da DHCP tarafından DNS sunucu adresi de dağıtılabilir.
DNS sisteminin kötülüğü bilgilerin elle girilmesinde ve statik olmasında. Bilgisayar adlarının ve IP adreslerinin elle girilmesi ve değiştirilmesi gerekiyor.
Windows NT’de 4.0 versiyonuna kadar bir DNS sunucu fonksiyonu bulunmuyordu. 4.0 ile birlikte DNS sunucu fonksiyonu da eklendi. Üstelik Microsoft DNS’i WINS’e bağlamayı da başardı. 4.0′da, DNS sunucu bir kayıtı kendi veritabanında bulamazsa ortamdaki bir WINS sunucuya sorabilir ve ondan aldığı yanıtı iletebilir. Güzel bir olanak; hem Micro-soft’un çözümünü koruyor hem de DNS sunucu isteklerini karşılıyor.
Bu yılın sonunda ya da gelecek yılın başında çıkacağı söylenen NT 5.0′da 21
TCP/IP
ise WINS’in tümüyle kalkacağı ve Microsoft’un da tümüyle DNS’e yöneleceği söyleniyor. Öyle de olsa Microsoft DNS sunucu işine otomasyonu bir şekilde sokar herhalde.
Kısaca toparlarsak TCP/IP bir protokoller kümesidir. TCP/IP, Internet’in protokolüdür. Son yıllarda ise Internet’in yanı sıra yerel bilgisayar ağlarında da hızla yaygınlaşmıştır. TCP/IP içindeki DHCP, bilgisayarlara otomatik olarak IP konfigürasyonu dağıtmak için kullanılır. ARP, IP adresini MAC adresine çevirir. WINS, NETBIOS isimlerini IP adresine çevirir. DNS, host isimlerini IP adresine çevirir. Ayrıntıları istiyorsanız kitabı okumaya devam edin.
22
TCP/IP’nin Yapısı
TCP/IP’NİN YAPISI
Bilgisayar ağlarını anlatan kitapların hepsinde yedi katmanlı OSI yapısından söz edildiğini görmüş sunuz dür. OSI’nin yedi katmanını bu kitap boyunca unutmanızda yarar var: TCP/IP’yi anlatırken dört katmanlı bir yapı düşünüyoruz. Aşağıda bu katmanları ve katmanlardaki protokolleri görüyorsunuz:
Şekil: 3.1 TCP/IP protokolü kullanan bir bilgisayar ağının katmanları
Ağ (network) katmanı bilgisayarda bulunan ağ kartını, kabloları vb. şeyleri gösteriyor. Veri paketlerinin ağa iletilmesinden ve ağdan çekilmesinden bu katman sorumlu.
IP katmanında IP’ye göre düzenlemiş veri paketlerini görüyoruz. İletim katmanından gelen veriler burada internet paketleri haline geliyor. Paketlerin yönlendirilmesi ile ilgili işler de burada yapılıyor. Bu katmanda dört adet protokol bulunuyor:
23
TCP/IP
ARP: IP adreslerini MAC adreslerine çeviriyor.
ICMP: Kontrol mesajları gönderip karşılığında gitti-gitmedi bilgisi sağlar. PING komutu bu protokolü kullanarak karşı bilgisayarın TCP/IP kon-figürasyonu bakımından ayakta olup olmadığım anlar. “PING komutu da ne” diyorsanız izlemeye devam edin.
IGMP: Multicast gruplarını belirlemek için kullanılır. Bir ağda mesajlar üç şekilde gönderilebilir: Mesaj ya bütün makinalara (broadcast mesaj), ya bir gruba (multicast), ya da doğrudan bir makinaya (directed) gönderilebilir.
IP: Paketlerin adresleme ve yönlendirme işlemlerini yapar.
İletim (transport) katmanında bilgisayarlar arası iletişim İçin oturumlar düzenlenir. Burada iki seçenek söz konusudur:
TCP: Bağlantılı (connection-oriented) ve güvenilir bir iletişim sağlar. Buradaki bağlantı mantıksal bir bağlantıdır: İki bilgisayarın iletişim kuralları için anlaşmaları demektir. TCP’ye uygun olarak gönderilen paketler için bir onay mesajı beklenir. Belli bir süre içinde onay mesajı gelmezse paket tekrar gönderilir. Bu da iletimin güvenli olması anlamına gelir.
UDP: Bağlantısız ve güvenilir olmayan bir iletişim sunar. Şimdi “madem bağlantısız ve güvenilmez, bu protokol niçin kullanılır” diye sorabilirsiniz. İletim için karşı tarafla iletişim kuralları için anlaşma gerekmediği ve giden mesajların yerine ulaşıp ulaşmadığı kontrol edilmediği için bu protokol daha hızlı bir veri iletişimi sağlar. Verinin çok hızlı bir şekilde karşı tarafa ulaşmasının gerektiği yerlerde bu protokol kullanılır.
Uygulama katmanı ağ üzerinden İş yapacak uygulamaların bulunduğu katmandır. FTP, DNS, WINS gibi uygulamalar bu katmanda bulunur.
İçinde ağ işlevi olan bir uygulama geliştirmek için iki API’miz var. API (Application Programming Interface) uygulama geliştirme arabirimi anlamına geliyor ve bir program yazarken kullanacağımız fonksiyonlar, uyacağımız kurallar anlamına geliyor. Örneğin, program yazmak için Win32 API’sini kullanırsak Windows 95 ve Windows NT ortamlarında çalışabilecek 32 bitlik bir program oluştururuz.
24
TCP/IP’nin Yapısı
Internet üzerinde ağ uygulamaları için Microsoft ve IBM’in birlikte geliştirdiği NetBIOS API’si ya da Internet ortamındaki standart API olan Sockets’in Windows uyarlaması, Windows Sockets kullanılır. Bir programı NetBIOS API’si ile yazarsanız bu program Microsoft İşletim sistemleri altında çalışır, internet ortamında çalışmaz. Uygulama Windows Sockets APF’sine uygun yazılırsa her iki ortamda da çalışır. Sockets uyumlu bir uygulamaya Örnek olarak PING programım verebiliriz. NetBIOS uyumlu bir uygulamaya örnek olaraksa NET komutunu verebiliriz (NET VIEW \\INSUNUCU komutunda olduğu gibi).
Windows Sockets (WinSock)
TCP/IP ortamında uygulama geliştirmek için kullanılabilecek API’lerden birisi Sockets’tir. PC’lerde bu API’nin PC’ye uygun hale getirilmiş bir versiyonu, Windows Sockets kullanılır.
Bir soket uygulaması üç şey ile tanımlanır: Bilgisayarın IP adresi, servis tipi (TCP ya da UDP) ve kullanılan port. Burada yeni bir şey çıkıyor karşımıza: Port.
Port’u açıklamak için şöyle bir örnek verelim: Bilgisayarımızda hepsi de soket uygulaması olan kelime işlemci, elektronik hesap tablosu, web browser gibi programlar olsun. Bir başka bilgisayarda bulunan bir program , bilgisayarımızda bulunan bir programla ilişkiye geçmek isterse ne yapmalıdır? Bizim IP adresimizi bilmelidir. Yetmez, bu IP adresinde ilişki kurabileceği birden fazla soket uygulaması var, hangi uygulamayı istediğini göstermelidir. Burada uygulamanın TCP mi UDP mi kullandığı da belirtilmelidir. Ama bu da yetmez; çünkü birkaç uygulama TCP’yi, birkaç uygulama da UDP’yi kullanıyor olabilir. O zaman fazladan bir de uygulamanın port numarasını bildirir.
Bir soket programı bulunduğu bilgisayarda kendisini port numarasıyla belirlemek zorundadır ve karşı tarafta da belli bir port numarasıyla ilişkiye geçmek zorundadır.
Port numaraları 0 ile 65535 arasında yer alır. l ile 1024 arasındaki port adresleri İyi Bilinen Port Numaraları (Well-Known Port Numbers) olarak tanımlanır. İyi bilinen port numaraları internet ortamındaki standart servisler tarafından kullanılır.
25
TCP/IP
Örneğin, DNS servisi 53 nolu portu FTP servisi ise 21 nolu portu kullanır.
\winnt\system32\drivers\etc\services dosyasında port numaralarının bir listesini bulabilirsiniz.
Burada dikkat edilecek nokta şudur: TCP ve UDP’nin ayrı, ayrı port numaralan vardır. Örneğin yukardaki adrese gidip services dosyasının bir kısmına göz atalım:
# Copyright (c) 1993-1995 Microsoft Corp. #
# This file contains port numbers for well-known services as defined by
# RFC 1060 (Assigned Numbers), #
# Format: #
#
/
[aliases...] [#]
#
echo 7/tep
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tep
systat 11/tcp users
daytime 13/tep
26
TCP/IP’nin Yapısı
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
qotd 17/udp quote
chargen 19/tcp ttytst Source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tep
smtp 25/tcp mail
Gördüğünüz gibi echo, discard, systat, daytime, qotd, chargen vb, servisler aynı port numaralarını kullanıyorlar. Ama bunların servisleri (TCP,UDP) farklıdır.
TCP/IP protokolüne uygun olarak yazılan diğer programların da birer port numarası kullanmaları gerekir. Bu programların port numaraları 1024 ile 65535 arasında yer almalıdır.
Çalışma şu şekilde olur: Bir başka bilgisayarda bulunan bir programla iletişime geçmek isteyen program bir soket yaratır ve iletişim süresince bu soketi kullanır.
TCP (Transmission Control Protocol: İletim Kontrol Protokolü)
TCP/IP protokol kümesine ismini veren TCP, bağlantılı (connection-ori-ented) ve güvenilir (reliable) bir iletişim sağlar. Bu cümle ne anlama geliyor? Diğer protokollerle bağlanmadan mı iletişime geçiliyor? Diğer protokoller güvenilmez mi, güvenilmez ise niye onları kullanıyoruz?
Buradaki “bağlantılı” ifadesi şu anlama geliyor: Bilgisayarlar iletişime
27
TCP/IP
geçmeden önce aralarında bir oturum (session) açıyorlar. Oturumun açılması sırasında bilgisayarlar kendi iletişim parametrelerini birbirlerine iletiyorlar. İletişim sırasında bu parametrelere göre hareket ediliyor.
Güvenilir iletişim ise şu demek: Bir bilgiyi karşı tarafa gönderdiğimizde karşı tarafın eline ulaştığından emin oluyoruz. Bu da gönderdiğimiz bilginin alındığına ilişkin bir onay mesajının (acknowledge, ACK) bize gelmesi ile oluyor. Eğer belli bir süre içinde bu mesajı alırsak bizden çıkan bilgi karşı tarafın eline geçmiş demektir. Yok eğer belli bir süre içinde böyle bir mesajı alamazsak gönderdiğimiz bilginin başına bir şey geldi demektir. Bu durumda bilgiyi tekrar gönderiyoruz.
Yani, TCP iletişimi basit bir iletişim değil. Bilgi paketini oluşturup üstüne gideceği adresi yazmaktan öte şeyler yapıyoruz. Bu fazladan yaptığımız şeyler veri iletişim performansımızı düşürür ama verinin güvenli bir şekilde hedefine ulaştırılmasını da sağlar.
TCP/IP kümesi içinde kritik İşler yapan protokoller ve servisler verilerini TCP ile İletirler. Örnek ister misiniz? 21 Nolu portu kullanan FTP, 23 nolu portu kullanan Telnet, 53 nolu portu kullanan DNS.
Network Monitör programı ile TCP iletişimini gözlersek iki bilgisayar arasında bir TCP oturumu açılırken ilkin üç adet veri çerçevesinin (frame) gidip geldiğini görürüz.
Şekil: 3.2 Bir TCP oturumunun açılması
Bu üç çerçevenin amacı veri paketlerinin (bu paketlere TCP’de segment
28
TCP/IP’nin Yapısı
deniyor) geliş ve gidişini senkronize etmek, karşı tarafa tampon bellek miktarımız hakkında bilgi vermek ve TCP bağlantısını kurmaktır.
Şeklimizde bu üç çerçeve ile TCP bağlantısı açıldıktan sonra diğer işlere başlanmış görünüyor: Bir dosya listesi aktarımı, sonra da o listeden seçilen bir dosyanın aktarımı için ilk önce bir NetBIOS oturumu açılıyor. Hemen ardından da SMB (server message block) oturumu açılıyor. Server Message Block, Microsoft ağlarında bilgisayarlar arası kaynak paylaşımı için kullanılıyor.
Network Monitör programı ile ağ trafiğini kapma İşine devam ederseniz bir TCP oturumu kapatılırken de arada üç adet çerçevenin gidip geldiğini görebilirsiniz.
TCP iletişiminde iletilmek istenen veriler Segmentlere ayrılır, her seg-mente bir sıra numarası verilir. Gönderici bilgisayar, segmentleri, yani çerçeveleri teker teker gönderip bunların her biri için teker teker onay beklemez. Bunun yerine çerçeveleri belli bir sayıda topluca gönderir. Örneğin, onar onar. Bu belli sayıya pencere (window) denir.
Alıcı bilgisayar da çerçeveler kendisine ulaştıkça bunları kendi tampon belleğine yerleştirir, iki ardışık çerçeve tampon belleğe yerleştirilince alıcı bilgisayar aldığı en son çerçeve için bir onay mesajım gönderici bilgisayara yollar.
Şimdi bu yapı uygulamada nasıl oluyor, bir örnekle görelim.
Gönderici bilgisayar tampon belleğinde 45 adet segment tutuyor, pencere büyüklüğü olarak da 10 rakamını seçiyor. Yani, çerçeveleri onar onar gönderiyor.
İlk on çerçeveden oluşan kısım gönderildi, karşı taraftan da hepsi için onay geldi diyelim.
İkinci on çerçeve de gönderildi, ama 17. çerçevenin başına bir şey geldi varsayalım.
Bu durumda alıcı bilgisayar en son 16. çerçeve için onay gönderecektir. Gönderici bilgisayar 17. çerçeve için beklediği onay belli bir süre içinde
29
TCP/IP
gelmezse veri iletimini tekrarlayacaktır. Ama burada ilginç olan şey şu: Çerçeveleri teker teker göndermediği için 17. çerçeveden başlamak üzere 10 çerçeve gönderiyor. Penceremiz 1-10, 11-20, 21-30 çerçevelerinden oluşurken şimdi 17-27, 27-37 vb. şeklinde oluşmaya başlayacak. Yani, penceremizde bir kayma oldu. Zaten bu yönteme de kayan pencereler (sliding windo\vs) yöntemi deniliyor,
Bir TCP segmenti iki kısımdan oluşur: Başlık (header) ve veri (data) kısmı. Başlık kısmı şu alanlardan oluşur:
Kaynak portu (source port): Gönderen bilgisayarın kullandığı TCP por-tu
Hedef portu (destination port): Alıcı bilgisayarın TCP portu Sıra numarası (sequence number): Segmentlere verilen numara
Onay numarası (Acknowledgement number): İstenilen bir sonraki paketin numarası
Veri Uzunluğu (data length): TCP segmentinin uzunluğu Rezerve (reserved): Gelecekte kullanılmak üzere rezerve edilmiş Bayraklar (flags): Segmentin içeriğine dair bilgi
Pencere (Window): TCP penceresinde ne kadar yer kalmış olduğunu gösterir.
Kontrol toplamı (checksum): Başlık kısmının bozulup bozulmadığını gösteren kontrol kısmı.
Acil veri göstergesi (Urgent Pointer): Bayrak kısmında belirtilen acil bir verinin iletilmek istendiğini gösterir.
UDP (User Datagram Protocol: Kullanıcı Datagram Protokolü)
UDP, yukarda anlattığımız TCP’nin tersine hem bağlantısız hem güvensiz bir protokoldür. UDP’ye uygun olarak bir veri iletimi gerçekleştirdiğimizde verimizi hazırlıyoruz, yollayan kısmına kendi adres-
30
TCP/IP’nin Yapısı
imizi, alıcı kısmına hedef bilgisayarı yazıyoruz, yolluyoruz. Bu veri yerine gitti mi, gitmedi mi, yolda başına birşey mi geldi, bilemiyoruz.
“Peki,” diyebilirsiniz, “hem bağlantısız hem de güvensiz olan bu protokolü niçin kullanıyoruz?”
UDP bağlantı kurmuyor, güvenli bir İletim de sağlamıyor ama bu eksiklikleri ona başka birşey kazandırıyor: Hız.
UDP basit bir protokol olduğu için hızlı iletişim kurmamız gereken yerlerde İşimize yarıyor. Eğer işimizde hız gerekliyse, verilerin güvenli bir şekilde iletilmesi bu aşamada çok da önemli değilse, UDP’yi kullanmak doğru olacaktır.
Yukardaki cümlede “bu aşamada” dediğimize dikkat ettiniz mi? UDP’nin sağlayamadığı güvenilirliği daha yukarlarda bulunan uygulama programlan sağlayabilir.
UDP’yi kullanan programlara Örnek olarak 161 nolu portu kullanan SNMP servisini (Simple Network Management Protocol, Basit Ağ Yönetim Protokolü,) verebiliriz.
Şimdi UDP paketinin başlık kısmına bir göz atalım:
Kaynak Portu (Source Port): Gönderen bilgisayarın kullandığı UDP portu
Hedef Portu (Destination Port): Karşı tarafın kullandığı UDP portu Mesaj Uzunluğu (Message Length): UDP mesajının büyüklüğü
Kontrol Toplamı (checksum): Başlık bilgisinin bozulup bozulmadığını gösteren kısım
Bu başlık kısmını TCP’nin başlığı ile karşılaştırırsak ne kadar basit olduğunu fark edebiliriz.
ARP (Address Resolution Protocol: Adres Çözümleme Protokolü)
ARP, IP adresi bilinen bir makinanın MAC adresini bulmak için
31
TCP/IP
kullanılır. Daha önce de belirttiğimiz gibi bilgisayarlar arası iletişim yalnızca MAC adresleri üzerinden gerçekleşir.
İletişime geçmek istediğimiz makinanın MAC adresini bulmak için ARP, “IP adresi şu olan makine bana MAC adresini bildirsin” şeklinde bir broadcast mesajı yayınlar. Bu mesaja bir karşılık gelirse MAC adresi üzerinden iletişime geçilir. ARP ile elde edilen MAC adresi bilgisi ARP kaşesinde saklanır. Eğer aynı IP adresine tekrar ulaşmak gerekirse MAC adresi bu kaşeden alınır.
ARP kaşesinde iki türlü kayıt bulunur: Statik ve dinamik. Dinamik kayıtlar yukarda anlattığımız şekilde broadcast mesajı ile bulunan adresleri gösterir.
Dinamik kayıtlar kaşede sonsuza kadar kalmazlar. Kaşeye eklenen dinamik kayıtlara bir saat bilgisi eklenir. Eğer kaşeye eklenen kayıt 2 dakika içinde kullanılmazsa silinir. Eğer 2 dakika içinde kullanılırsa bu sefer 10 dakika sonra silinir. Eğer bu 2 ve 10 dakikalık sürelerden önce kaşe için ayrılan alan dolarsa en eski kayıt silinir ve yeni kayıtlara yer açılır. Bu 2 ve 10 dakikalık değerler registry ile oynanarak değiştirilebilir. İlgili Registry parametresi ARPCacheLife’dır ve aşağıdaki adrese eklenmesi gerekir:
HKEY_LOCALMACHINE\SYSTEM\CurrentControlSet\Servi-ces\Tcpip\Parameters
Bu adrese eklenecek ArpCacheLife parametresi için REG_DWORD tipinde ve saniyeler cinsinden değer girilebilir. Örneğin, buraya 720 değeri girilirse ARP kaşesindeki kayıtlar 720 saniye sonra, yani, 12 dakika sonra silinir.
Statik kayıtlar ARP kaşesine elle girilir ve bilgisayar kapatılıncaya kadar ARP kaşesinde saklanır. Kapatılıp açılma gerekmeden de statik kayıtlar silinebilir:
Statik kayıtlar
1) Bilgisayar kapatılıp açılarak,
2) Statik olarak girilen kayıt arp -d komutu verilerek,
32
TCP/IP’nin Yapısı
3) Farklı bir donanım adresini içeren bir ARP broadcast’i alınırsa silinir.
Not: Bir adresi ARP kaşesine elle giriyorsak MAC adresinin her bir baytı tire İle ayrılmalıdır.
Şekil: 3.3 ARP ile MAC adresinin elde edilmesi
Şimdi network monitör adındaki programımızı kullanarak ARP’ı işbaşında görelim:
Yukardaki şekilde EINSTRUCT adındaki bir bilgisayar ARP REQUEST mesajı kullanarak 131.107.2.1 adresindeki bilgisayarın MAC adresini soruyor. Bu soru mesajı broadcast ediliyor; yani, ağdaki herkese gidiyor.
Şekil: 3.4 ARP Request mesajının ayrıntısı
33
TCP/IP
Buna karşılık olarak bu adresin sahibi olan ROUT bilgisayarı bir ARP REPLY mesajı ile kendi MAC adresini bildiriyor. Bu ikinci mesajın broad-cast edilmediğine dikkat ediniz: İlk mesajda EINSTRUCT bilgisayarının MAC adresi bildirildiği için yanıt doğrudan ona yollanıyor. İnanmadınız
Şekil: 3.5 ARP kaşesinin görüntülenmesi
mı? O zaman ARP REQUEST mesajını biraz daha ayrıntılı şekilde inceleyelim:
Şekilde, gönderilen mesajın ayrıntılarını görüyoruz. Mesajı yollayan mak-ina kendi MAC adresini ve IP adresini mesaja koymuş. Karşı tarafın IP adresi de var. Ama karşı tarafın MAC adresi kısmı boş. Zaten o soruluyor.
Aşağıdaki şekilde de ARP REPLY mesajının ayrıntısını görüyoruz: Yanıt veren bilgisayar her şeyi bildiği için bütün alanlarımız (sender’s hardware address, sender’s protocol address, target’s hardware address, target’s protocol address) dolu.
İlgili Komut: ARP.EXE (Windows 95 ve Windows NT)
ARP.EXE programı ile bilgisayarınızdaki ARP kaşesinde bulunan kayıtları görebilir ve ekleme-çıkarma yapabilirsiniz.
Kaşede yer alan kayıtları görmek için arp -g komutu verilir:
Yukarıdaki şekilde görüldüğü gibi kayıtlarda IP Adresi, MAC Adresi ve Kayıt Tipi alanları bulunuyor.
Kaşeye statik bir kayıt eklemek için arp -s komutu verilir. Komutun yazımı şöyledir:
Arp -s IP adresi MAC adresi (MAC adresi tirelerle ayrılacak)
34
TCP/IP’nin Yapısı
Örnek:
Arp -s 131.107.4.1 00-a0-c9-43-d7-91
Bu komut 131.107.4.1 adresine karşılık olarak 00-a0-c9-43-d7-91 şeklinde bir MAC adresini kaşeye ekler. Bundan sonra herhangi bir şekilde 131.107.4.1 adresine ulaşmak gerekirse broadcast yapılmaz; bu adrese karşılık gelen MAC adresi kaşeden alınır.
Kaşedeki statik ya da dinamik bir kayıtı silmek İçin arp -d komutu verilir. Komutun yazımı şöyledir:
Arp -d IP adresi
Örneğin, yukarıda kaşeye eklediğimiz kayıtı silmek için şu komutu vermeliyiz:
Arp -d 131.107.4.1
35
IP Adresleme
IP ADRESLEME
IP adresi, herhangi bir bilgisayarı gösteren 32 bitlik bir numaradır. TCP/IP protokolünü kullanan bir bilgisayar ağında her bilgisayarın bir IP adresi olmalıdır.
IP adresleri ev adreslerine benzer. Örnek bir ev adresi olarak İnönü Mah., 3. Cad. NO: 19 Batıkent, Ankara gibi bir adresi verebiliriz. Bu adreste No: 19 kısmı tek bir evi, geri kalan kısım ise o evin içinde bulunduğu caddeyi, mahalleyi, semti ve şehri gösterir. IP adresi de aynı şekilde hem bilgisayarın dahil olduğu ağı, hem de bilgisayarın o ağ içindeki adresini belirler.
Elimizde adresleme İçin kullanabileceğimiz 32 bit varsa toplam 2 -4 milyar tane bilgisayarı adresleyebiliriz. Ancak gerçekte adresleyebileceğimiz bilgisayar sayısı bu rakamdan çok daha az çıkıyor. Nedenlerini göreceğiz.
IP adresini oluşturan 32 bit, kolayca okunabilmesini sağlamak için sekiz bitlik dört gruba ayrılmıştır. Bu grupların her birine oktet denir (Yunanca sekizden geliyor). Örnek bir IP adresi şu şekilde olabilir:
10000011 01101011 00000001 00001100
Yukardaki adres her ne kadar dört oktete ayrılmışsa da okunması halen zor. Çünkü bizler onlu düzende rakamlar okumaya alışığız, IP adresi ise ikili düzendeki O ve l rakamlarından oluşuyor. Bu adresi daha da okunaklı kılmak için her bir okteti onlu düzene çevirip oktetlerin arasına nokta koyuyoruz. Örneğin, yukardaki adres
131.107.1.12
şeklinde yazılıyor. IP adreslerinin bu şekildeki yazımına onlu düzendeki noktalı yazım (dotted decimal notation) deniyor.
37
TCP/IP
Peki, ikili düzenden onlu düzene nasıl geçtik? Bunun için ortaokul matematiğini anımsamak gerekiyor. Yukardaki adresin birinci okteti ile bir hesap yapalım. Aşağıda ilk satır ikili düzendeki bir sayıyı, altındaki satır İse bu sayıyı oluşturan rakamların onluk düzendeki karşılıklarını göstermektedir.
128*1 64*0 32*0 16*0 8*0 4*0 2*1 1*1
İkili düzende yazılan bir rakamın sağdan ilk basamağı 2°’a karşılık gelir. Yine okul matematiğinden anımsayacağınız gibi herhangi bir rakamın O üssü her zaman l’dir. Sağdan ikinci basamağı ‘e karşılık gelir. Herhangi bir rakamın l üssü kendisine eşittir; burada 2′ye eşit olacaktır. Daha sonraki rakam 2²’ye, bir sonraki 2³’e eşit olur ve böyle gider.
İkili düzendeki bir rakamı onlu düzene çevirirken bu eşitlikleri kullanırız. İkili düzendeki sayının her bir rakamını onlu düzene çevirir ve toplarız. Yukardaki örnekte İkili düzendeki sayı onlu düzende 131′e karşılık gelir. Çünkü ‘ye karşılık gelen basamakta l var, buradan onlu düzendeki 128 sayısını elde ederiz. 0′lı basamakları atlarsak 2 ve 20 basamaklarında da l görürüz. Bunlar da sırasıyla onlu düzendeki 2 ve l sayılarına karşılık gelir. Hepsini toplarsak da onlu düzendeki 131 sayısını elde ederiz.
Aynı işlemi diğer oktetler için de yaptığımızda 131.107.1.12 adresini elde ederiz.
Yukarda IP adresinin hem bilgisayar ağını, hem de o ağ içindeki tek bir bilgisayarı gösterdiğini söylemiştik. Bu kısımlara ağ adresi (network ID) ve bilgisayar adresi (host ID) diyoruz. Peki, bir IP adresinde neresi ağ adresini, neresi bilgisayar adresini gösterir?
internet adresleri beş sınıfa bölünmüştür. Bir IP adresinde ağ adresi ile bilgisayar adresinin hangi kısımlar olduğunu o adresin sınıfına bakarak anlarız.
IP adres sınıflan A, B, C, D ve E şeklinde sıralanır.
A sınıfı adreslerde ağ adresi ilk oktet ile belirlenir. Geri kalan üç oktet ise o ağdaki bir bilgisayarı gösterir. Örneğin, IBM internet üzerinde A sınıfı bir adres kullanır.
38
IP Adresleme
B sınıfı adreslerde ağ adresi ilk iki oktet ile belirlenir. Geri kalan iki oktet o ağdaki bir bilgisayarı gösterir. Örneğin, Microsoft’a bir B sınıfı adres alanı ayrılmıştır.
C sınıfı adreslerde ağ adresi İlk üç oktet ile belirlenir. Geri kalan tek oktet o ağdaki bilgisayarı gösterir. Örneğin, Devlet istatistik Enstitüsü C sınıfı bir adres kullanır.
D ve E sınıfı adresleri İse özel test adresleridir. Bizim tarafımızdan kullanılmaz.
Peki, bir adresin A, B ya da C sınıfı olup olmadığım nereden anlayacağız? Bunu adresin ilk oktetine bakarak anlıyoruz.
İlk oktet O ile 126 arasında ise o adres bir A sınıfı adresidir. İlk oktet 128 ile 191 arasında ise o adres bir B sınıfı adresidir. İlk oktet 192 ile 223 arasında ise o adres bir C sınıfı adresidir.
Yukardaki açıklamada bazı adresler kayıp gibi görünüyor, değil mi? Haklısınız. Örneğin, 127 ile başlayan adresler Özel adreslerdir ve herhangi bir bilgisayara verilmezler. Örneğin, 127.0.0.1 adresi kendi adresimizi gösterir (loopback adresi). 127 ile başlayan diğer adreslerin de özel anlamları vardır. 223′ün yukarısı ise D ve E sınıfı adreslere girer. Onlar da bizim tarafımızdan verilemezler,
Peki, IP adresleri sınıf sınıf ayrılıyor da ne oluyor? Bu sınıflar neyi gösteriyor?
Bu sınıflar herhangi bir ağ adresinde kaç adet bilgisayar tanımlayabileceğimizi gösteriyor. Örneğin, A sınıfı bir adresi ele alalım. Bu adreste ağımızın adresi ilk oktet ile belirleniyor. Ağ adresi için bir oktet kullandığımıza göre yaklaşık 256 farklı A sınıfı adres kullanabiliriz gibi geliyor. Ama A sınıfı adresleri belirtmek için bu adreslerin en soldaki bitleri O yapılıyor. Bu yüzden ağ adresi için 7 bit kullanabiliyoruz. Bu da 126 farklı A sınıfı adrese karşılık geliyor (niye 2 =128 değil de 126, göreceğiz).
A sınıfından bir adres alalım. Örneğin, ilk oktetimiz 10 olsun. Geri kalan üç oktet ise 10 adresine sahip ağdaki bilgisayarları tanımlamak için kulla-
39
TCP/IP
nılabilir. Elimizde üç oktet bulunduğuna göre adresleme için 3 X 8=24 bit var. 2 de yaklaşık 16 milyon yaptığına göre bu ağda 16 milyon bilgisayar bulunabilir.
Bir B sınıf adreste ağ adresini ilk 2 oktet belirliyor. Ama B sınıfı adreslerin ilk okteti 128 ile 191 arasında değer alabilir. İkinci oktette ise 256 değişik seçenek var. Dolayısıyla tanımlanabilecek B sınıfı adresleri sayısı yaklaşık 16.000 (tam bir rakam isterseniz 16384). Geri kalan 2 oktetle de her-bir B sınıfı ağdaki bilgisayarları tanımlayabiliriz. 2 oktetten 16 bit geliyor, 2 yaklaşık olarak 65 bin olduğu için bir B sınıfı adresimiz varsa 65 bin bilgisayarı tanımlayabiliriz.
C sınıfından bir adreste ağımız İlk üç oktetle tanımlanıyor. İlk oktetin 192 ile 223 arasında olması gerektiğini unutmadan hesaplama yaparsak 2.097,152 adet C sınıfı ağ tanımlayabiliriz. Bu durumda bize bilgisayarları tanımlamak için tek bir oktet yani, yalnızca 8 bit kalıyor. 8 bit ile biz tam tamına 254 bilgisayar tanımlayabiliyoruz (niye 2 =256 değil de tam tamına 254? Açıklayacağız, bizi izlemeye devam edin).
Peki, Internet’te adresleri kim dağıtıyor? Bir A sınıfı mı yoksa C sınıfı mı adres kullanacağımıza kim karar veriyor?
internet genelinde adres dağıtımını internet Society yapıyor. Bu kurum ülkelere verilecek adresleri ayarlıyor ve her ülkede adreslemeden sorumlu bir organizasyon belirliyor. Türkiye’de adres dağıtımını internet yetkili kurumu olarak ODTÜ-Tübitak ikilisi yapıyor. Her bir ülkede de OD-TU-Tübitak benzeri yerel kurumlar kurumlar kendilerine verilen adreslerin dağıtımından sorumlu oluyor.
Yukarda IP adresleme şeması ile yaklaşık 4 milyar adres tanımlayabileceğimizi söylemiştik. Ama fiilen bundan çok daha az sayıda bilgisayar tanımlanabildiğim de eklemiştik. Acaba bu neden böyle oluyor?
Şimdi IBM şirketini düşünelim. IBM şirketi Internet’e dahil olurken yetkili kuruma başvurup bir A sınıfı adres almış. A sınıf adres aldığına göre kendi kurum çapında ne kadar bilgisayar tanımlayabilir? Yaklaşık 16 milyon bilgisayarı tanımlayabilir. Peki, IBM’in bu kadar çok sayıda bilgisayarı var mı? Yok. IBM’in yaklaşık 200.000 civarında çalışanı var. Bu çalışanların her birine 2 bilgisayar verdiğimizde bile adres verilmesi gereken bil-
40
IP Adresleme
gisayar sayısı 400.000 oluyor. Hadi, aralığı biraz daha geniş tutalım ve 1.000.000 adres kullanılıyor diyelim. En çok l milyon adrese gereksinimimiz olduğu halde Internetten 16 milyon adreslik bir kısım aldığımız için ne oluyor? 4 milyar adres içinden 15 milyonluk bir kısım fiilen kullanılamaz halde kalıyor.
Aynı şey başka kurumlar için de geçerli. Birçok kuruma, birçok ülkeye ayrılan internet adresleri yüzünden Internetteki 4 milyar adres hemen hemen dolmuş durumda. Örneğin, şu anda ne kadar isterseniz isteyin, karşılığında ne ödeyecek olursanız olun bir A sınıfı adres alamazsınız; çünkü hepsi bir yerlere verilmiş durumda. Hatta B sınıfı adresler bile tükenmiş.
Adresler tümüyle dağıtıldı, geriye dağıtılacak adres kalmadı diye üzülmeyin. Adres kısıtını aşmak için çeşitli çalışmalar yapılıyor, örneğin, IPv6 adında yeni IP adresleme şeması öneriliyor. Bu yeni şemada adresleme için 32 bit değil tam 128 bit kullanılıyor. 2 ise dört milyar kere dört milyarın karesi anlamına geliyor. Oldukça büyük bir rakam değil mi? Ayrıca internet bağlantısı için herkese IP adresi dağıtmak da artık gerekmiyor. Proxy server (vekil sunucu makinalar) kullanarak tek bir IP adresini bile yüzlerce, binlerce kişinin kullanmasını sağlayabiliyoruz.
Subnet Maskesi (Subnet Mask)
Bir bilgisayar yalnızca kendisiyle aynı ağda bulunan bir bilgisayarla doğrudan iletişime geçebilir. Buradaki doğrudan kelimesine dikkat ediniz: Kendi ağımızda olmayan bir bilgisayarla da iletişime geçebiliriz ama doğrudan değil dolaylı şekilde.
Peki, bir bilgisayar iletişime geçmek istediği bilgisayarın kendisiyle aynı ağda bulunup bulunmadığını nasıl anlayacak?
IP adreslerini kullanarak anlayacak. IP adresinin bir bölümü ağı, bir bölümü ise bilgisayarın o ağ içindeki adresini tanımlar.
Bir bilgisayar, IP adresinin hangi bölümünün ağı tanımladığını, hangi bölümünün ise bilgisayarları tanımladığını bilmek zorundadır. Bunun İçin subnet mask bilgisi kullanılır. Subnet mask’i “alt-ağ” maskesi şeklinde çevirebiliriz. Ama biz buna subnet maskesi diyeceğiz. Pek Türkçe olmadı ama şimdilik idare eder.
41
TCP/IP
Subnet maskesi de dört bölümden oluşur ve ağ adresinin hangi bölüme kadar geldiğini göstermek için kullanılır.
Bilgisayarlar kendi ağ tanımlayıcılarını bulmak için subnet maskesini kullanırlar. Bu yüzden subnet maskesinin doğru şekilde girilmesi önemlidir. Yanlış girilen subnet maskesi değeri bilgisayarın diğer bilgisayarlarla iletişimini engelleyebilir. Niçin engeller demiyoruz da engelleyebilir diyoruz? İzlemeye devam edin.
Bilgisayarlar ağ tanımlayıcılarını bulmak için subnet maskesini nasıl kullanırlar? IP adreslerini subnet maskeleri ile mantıksal bir işlemden geçirerek kullanırlar. Bu işlem VE (AND) işlemidir.
Şimdi biraz VE işlemini anımsayalım. O ve l değerini alabilecek iki değişkenim olsun. Bu değişkenlere x ve y adlarını verelim. İki değer alabilecek İki değişkenle toplam dört ayrı kombinasyon hazırlayabiliriz. Bu kombinasyonları aşağıya yazalım:

İki değişkenle bir beşinci kombinasyon yaralamayız (herhangi bir şekilde yaratabilirseniz tarihe geçersiniz).
Şimdi x ve y değişkenlerini bu dört değişik durum için VE işlemine tabi tutalım:

Yukardaki tablodan da gördüğümüz gibi yalnızca her iki değişkeninin de
42
IP Adresleme
değeri l olduğunda sonuç l oluyor. Diğer bütün kombinasyonların değeri 0.
Bu bilgilere dayanarak bir örnek yapalım:
Bir bilgisayarın IP adresi 195.134.67.200 olsun. Subnet maskesi ise 255.255.255.0 olsun. Bilgisayarımız bu bilgilere dayanarak bulunduğu ağın tanımlayıcısını, yani, ağ adresini bulabilir. Bunu yapabilmek için IP adresi ile subnet maskesini VE işleminden geçirir:
195.134.67.200 VE 255.255.255.0
Sonuç: 195.134.67.0
Bu sonucu nasıl elde ettik? Görmek için IP adresini de, subnet maskesini de ikili düzende yazalım:
VE
1100 0011.1000 0110.0100 0011.1100 1000 1111 1111.1111 1111.1111 1111.00000000
Sonuç: 1100 0011.1000 0110.0100 0011.0000 0000
Gördüğümüz gibi onluk düzendeki 255 sayısı, ikilik düzendeki 1111 1111 oktetlerine karşılık geliyor. Bu sayıyı ne ile VE’lerseniz VE’leyin sonuç o sayının kendisi olacaktır. Onluk düzendeki O İse ikilik düzendeki 0000 0000 oktetine karşılık geliyor. Bu sayıyı da ne ile VE’lerseniz VE’leyin sonuç hep O olacaktır.
Tamam, açıklamalarımızı da yaptık. Şimdi nedir bizim ağ adresimiz? 195.134.67.0. Peki, nedir bu ağ içindeki bizim adresimiz? Tüm IP adresinden ağ tanımlayıcısını çıkarınca kalan şey: Yani, 200.
Şimdi İki bilgisayardan oluşan örnek bir ağ düşünelim. Şekle bakınız:
Şekil: 4.1 İki bilgisayardan oluşan bir ağ
43
TCP/IP
Şekilde görülen 195.134.67.200 adresli bilgisayarın diğer bilgisayarla iletişime geçmek istediğini varsayalım. Bilgisayarlar yalnızca kendi ağlarında bulunan bilgisayarlarla doğrudan ilişkiye geçebilirler. O zaman ilk önce hedef bilgisayarın aynı ağda bulunup bulunmadığını saptamamız gerekiyor.
Soldaki bilgisayar İlk Önce kendi ağ adresini saptamalı. Bunu nasıl yapacak? IP adresi ile ağ adresini VE’leyerek yapacak:
VE
195.134.67.200 255.255.255.0
Sonuç: 195.134.67.0
Kendi ağ adresi olarak 195.134.67.0′ı buldu. Şimdi de hedef bilgisayarın IP adresi ile kendi subnet maskesini kullanarak onun ağ adresini elde edecek:
VE Sonuç:
195.134.67.56
255.255.255.0
195.134.67.0
Demek ki hedef bilgisayarın ağ adresi de 195.134.67.0′mış. O zaman doğrudan iletişim kurulabilir demektir.
Şimdi ağımızı biraz geliştirelim. Bir yönlendirici (router) ile bağlanabileceğimiz ikinci bir ağ oluşturalım:
44
Şekil: 4.2 Bir yönlendirici ile bağlanmış iki ayrı bölümden oluşan bir ağ.
IP Adresleme
Yeni ağı bağladık. Şimdi sıra geldi bu ağdaki bir bilgisayarla iletişim kurmaya. 195.134.67.200 adresli bilgisayar 195.134.78.46 nolu bilgisayarla İletişime geçmek istiyor. İlk olarak bu bilgisayarın kendi ağında olup olmadığını saptaması gerekiyor. Bu işlem için kendi IP adresi ile subnet maskesini VE’leyerek kendi ağ adresini bulacak. Bu işlemi yukarda yapmıştık, sonucunu biliyoruz: 195.134.67.0
Sonra hedef bilgisayarın IP adresi ile kendi subnet maskesini VE’leyerek onun ağ adresini buluyor:
195.134.78.46 VE 255.255.255.0
Sonuç: 195.134.78.0
Kendi ağ adresi ile hedefin ağ adresi aynı değil. Bu ne demek? Aynı ağda bulunmuyorlar, dolayısıyla doğrudan iletişime geçemezler dernek. 195.134.67.200 nolu bilgisayar iletmek istediği veriyi yönlendiriciye (Ro-uter) yollayacak, o da gelen paketteki adrese bakıp 195.134.78.46 nolu bilgisayarın hedeflendiğini anlayacak ve veriyi ona aktaracak.
Şimdi subnet maskesinin ne kadar önemli olduğunu yine bu örnekte görelim. Varsayalım ki 195.134.67.200 nolu bilgisayarın subnet maskesini 255.255.255.0 değil de 255.255.0.0 şeklinde girdik. Bu bilgisayarın diğer 195.134.78.46 nolu bilgisayarla iletişime geçmek istediğini düşünelim.
Her zaman olduğu gibi IP adresimiz ile subnet maskemizi VE’liyoruz:
195.134.67.200 VE 255.255.0.0
Sonuç: 195.134.0,0 Sonra hedef bilgisayarın IP adresi ile kendi subnet maskemizi VE’liyoruz:
195.134.78.46 VE 255.255.0.0
Sonuç: 195.134.0,0
45
TCP/IP
Her iki işlem de aynı sonucu verdi. Bu ne demek? İki bilgisayar da aynı ağda bulunuyor demek. 195.134.67.200 nolu bilgisayar hedef bilgisayarın kendi ağında bulunduğunu düşündüğü için ona doğrudan erişmeye çalışacak, kendi ağında da böyle bir bilgisayar olmadığı için erişemeyecektir.
Peki, subnet maskemiz yine yanlış olsun, ama bu sefer 195.134.67.56 nolu adresteki bilgisayarla iletişim kurmaya çalışalım.
IP adresimiz ile subnet maskemizi VE’liyoruz:
195.134.67.200 VE 255.255.0.0
Sonuç: 195.134.0.0 Sonra hedef bilgisayarın IP adresi İle kendi subnet maskemizi VE’liyoruz:
195.134.67.56 VE 255.255.0.0
Sonuç: 195.134.0.0
Her iki işlem aynı sonucu verdi, hedef bilgisayarın aynı ağda olduğu sonucuna varıldı, hedef bilgisayara doğrudan erişilmeye çalışıldı. Sonuç: Bu iki bilgisayar gerçekten de aynı ağda olduğu için erişim sağlanabildi.
Demek ki subnet maskesini yanlış vermek garip sonuçlara yol açabilir: Bazı bilgisayarlara erişebilir, bazılarına erişemeyebiliriz. Bu da bizi hatayı başka yerlerde aramaya götürebilir. Bu yüzden subnet maskesini doğru şe-kİlde girdiğimizden emin olmalıyız.
En İyisi de IP adresinin ve subnet maskesinin elle değil de otomatik şekilde girilmesini sağlamak. Böyle yaparsak bu kısımlarda hata yapma olasılığı kalmaz.
IP adresi ve subnet maskesini otomatik olarak nasıl dağıtıyorduk, hatırlıyorsunuz, değil mi? (unutanlar için fısıldayalım: Bu işi DHCP ile yapıyoruz)
Yukardaki örnekte bir şeye dikkat ettiniz mi? Ağ tanımlayıcımız ilk ağ için 195.134.67.0, ikinci ağ için 195.134.78.0 oldu. Demek ki ilk ağda hiçbir
46
IP Adresleme
bilgisayara 195.134.67.0 adresini veremeyiz: Bu adres tek bir bilgisayarı değil İlk ağın tümünü belirliyor. Bu adres o ağın adresi. Benzer şekilde ikinci ağda da hiçbir bilgisayara 195.134.78,0 adresini veremeyiz; bu adres tek bir bilgisayarın değil, ağın adresidir.
Dolayısıyla bize son oktet kaldığı için 256 adet bilgisayar adresi tanımlayabilecekken şimdi 255 adres tanımlayabileceğiz.
Benzer şekilde o ağda 195.134.67.255 adresini de hiçbir bilgisayara veremeyiz. Çünkü bu adres de özel bir adrestir ve o ağ içinde broadcast yaparken, yani bir mesajı herkese gönderirken kullanılır.
O zaman tanımlanabilecek adresler için şöyle bir kural getirebiliriz;
IP adresinde hem ağ tanımlayıcısı kısım, hem de bilgisayar tanımlayıcı kısım 255 olamaz (1111 1111).
IP adresinde hem ağ tanımlayıcısı kısım, hem de bilgisayar tanımlayıcı kısım O olamaz (0000 0000).
Yukardaki kuralları matematiğe çevirirsek: Tanımlanabilecek Adres Sayısı-
Yukardaki örnekte bir C sınıfı adres söz konusu olduğuna göre IP adreslerimizde ilk üç oktet sabit. Biz yalnızca sonuncu okteti serbestçe kullanabiliyoruz. Bu oktette sekiz bit olduğuna göre tanımlanabilecek adres sayısı oluyor.
Alt Ağlara Ayırma (Subnetting)
Alt ağlara ayırma (Subnetting), verilen bir adres aralığını bölümlemek demek. Niye böyle bir şeye gerek duyarız acaba? İzleyiniz.
Internet’e erişim için yetkili bir kurumdan bir ağ adresi alırız. Örneğin aldığımız ağ adresimiz 195.156.89.0 olsun. Bu adresin ilk okteti 195 olduğu için bir C sınıfı adres olduğunu anlıyoruz. C sınıfı adresler için de 255.255.255.0 şeklinde bir subnet maskemiz var. Bu durumda kurum ağımızda 254 adet bilgisayar adresi tanımlayabiliriz (çünkü bize adres belirleme için son oktet, yani 8 bit kalıyor. Adres kuralımızı uygularsak 2 -2-254 adet bilgisayar adresi verilebilir).
47
TCP/IP
Buraya kadar her şey normal. Ama ya kurumumuzu oluşturan bilgisayarlar fiziki olarak ayrı bölgelerde iseler ne olacak? Yani, kurumumuzun bilgisayarları Ankara, istanbul ve izmir gibi üç ayrı şehirde bulunuyorsa? Ya da bilgisayarlar yalnızca Ankara’da ve tek bir binada bulunuyorlar ama çeşitli nedenlerle ben bu bilgisayarları üç ayrı ağ şeklinde toparlamak İstiyorsam ne olacak?
Eğer yukardaki durumların herhangi birisi geçerli ise kurumumda üç ayrı ağ bölümü (segment’i) bulunacak ve bunlar yönlendiriciler (router) aracılığı ile birbirlerine bağlanacak. Örnek ağımızı şekil 4.3′teki gibi gösterebiliriz.
Yönlendiriciler ile birbirine bağlanan ağların her biri için ayrı bir ağ tanımlayıcısı (network ID) gerekir. Ek olarak yönlendiriciler arasında kalan kısımlar da ayrı bir ağ sayılır. Buna göre toplam beş adet ağ bolümü (seg-ment} lazım bana.
İyi ama, elimde yetkili kurumdan alınmış tek bir ağ tanımlayıcım var. O da 195.156,89.0. Bunu daha alt bölümlere nasıl bölebilirim?
Alt ağlara bölme işlemini benim yetkime bırakılan tek kısımda ayarlamak zorundayım. Yani, son oktette.
Bu oktetin bitlerinin bir kısmını kullanarak alt ağlar yaratacağım.
Son oktette oynayabileceğim sekiz adet bit var, Bu bitlerin kaç adedini kullanmalıyım?
Ben beş adet alt ağ kurmak istediğime göre en az üç bit kullanmalıyım. Çünkü adres kuralım 2 -2 şeklinde. Eğer yalnızca 2 bit kullanırsam 2² -2=2 yapar, bana yetmez. Üç bit kullanırsam 2 -2=6 yapar. Gerçi 6 rakamı benim için çok, ben altı tane alt ağ yaratmak istemiyorum ama başka bir çarem de yok: Beş ağ için en az üç bit kullanmalıyım.
Son oktette üç biti alt ağ tanımı için ayırıyorum. Geriye her bir ağ içindeki bilgisayarları tanımlamak için kullanılabilecek beş bit kalıyor. Bu durumda her bir ağda kaç adet bilgisayar bulunabilir? Kuralımızı anımsayalım: 2 -2. Örneğimizde 2 -2=30 olur. Yani, her bir ağda 30 adet bilgisayar adresi tanımlayabilirim. Toplam olarak da altı ağ tanımlanabiliyorsa kurumumda 6X30=180 bilgisayar bulunabilir.
IP Adresleme
İZMİR
Şekil: 4.3 Üç yönlendirici ile birbirine bağlanmış olan ve üç ayrı bölümden oluşan bir ağ
Şimdi biraz bu konunun başına dönelim. Eğer kurum ağımızı alt ağlara bölmeseydik tam 254 bilgisayar adresi tanımlayabilecektik. Şimdi ise en çok 180 bilgisayar adresi tanımlayabiliyoruz. Aradaki 74 adres nereye gitti?
Bu adresler alt ağa bölme işlemi sırasında boşa gitti. Bu kadar adrese verdiğimiz paraya yazık oldu. Ama bu sayede amacımıza ulaşabildik: Kurum ağımızı üç alt bölüme (yönlendiriciler arasındakileri de sayarsak toplam beş bölüme) ayırabildik.
Üç bit kullanarak 2 -8 kombinasyon oluşturabiliriz. Şimdi bu kombinasyonları görelim:
-0—0—0-
49
TCP/IP
Bunların ikisi (hepsi O ve hepsi l olanlar) kullanılamaz. Çünkü hepsi O olursa ağ tanımlayıcısı durumuna gelirler, hepsi l olursa broadcast adresi olurlar.
Kullanılamayacak kombinasyonların üzerini çizdik. Bize altı adet ağ tanımlayıcısı kaldı. Yani, altı adet ağ tanımlayabiliriz. Şimdi yukardaki Örneğimize bakarak bu ağları ve ağlarda yer alabilecek bilgisayarların adreslerini tek tek belirleyelim. Son okteti ikili düzende gösterelim ki alt ağlara ayırma daha kolay anlaşılabilsin:
Ağ No: Başlangıç Adresi Bitiş Adresi
1 195.156.89.001 00001 (195.156.89.33) 195.156.89.001 11110 (195.156.89.62)
2 195.156.89.010 00001 (195.156.89.65) 195.156.89.010 11110 (195.156.89.94)
3 195.156.89.011 00001 (195.156.89.97) 195.156.89.011 11110(195.156.89.126)
4 195.156.89.100 00001(195.156.89.129)195.156.89.100 11110(195.156.89.158)
5 195.156.89.101 00001 (195.156.89.161) 195.156.89.101 11110 (195.156.89.190)
6 195.156.89.110 00001 (195-156.89.193) 195.156.89.110 11110 (195.156.89.222)
Anımsayacağınız gibi verilen bir IP adresinde hangi kısmın ağ tanımlayıcısını, hangi kısmın o ağdaki bir bilgisayarı tanımladığını subnet maskesi belirler. Şimdi elimizde altı adete kadar çıkabilecek beş adet ağ bolümü olduğuna göre bize yetkili kurum tarafından verilen 255.255.255.0 maskesini kullanmaya devam edemeyiz. Bu maskeyi ancak bütün bilgisayarlar tek bir bolümde bulunsaydı kullanmaya devam edebilirdik.
Şimdiki işimiz subnet maskemizin değiştirilmesi.
50 —————————————————————————————–
IP Adresleme
Öyle bir subnet maskesi bulalım ki yukardaki altı bölümde yer alan bilgisayarlar hem kendi bölümlerindeki, hem de başka bölümlerdeki bilgisayarlarla haberleşebilsinler. Yani, kendi ağlarının ve karşı ağların adreslerini ayırt edebilsinler.
Adreslerin ve dolayısıyla subnet maskesinin ilk üç okteti ile oynayamayız. Onlar bize verildi bir kere.
O zaman gözümüzü son oktete çevireceğiz. Yukarda da görüldüğü gibi altı ağda da ağı belirleyen kısımlar son oktetin ilk üç biti. O zaman altı bölümde de kullanılabilecek yeni subnet maskemiz şöyle olacak:
255.255.255.224
224 Rakamını nasıl mı bulduk? Subnet maskesinde son oktetin ilk üç bitini l yaparak. Çünkü her bölüm bu üç bit ile birbirinden ayırt ediliyor. Yeni subnet maskemizi şöyle yazarsak daha da iyi anlayabiliriz:
255.255.255.111 00000
Şimdi bu bilgileri kullanarak örneğimizdeki bilgisayarların bazılarının adreslerini aşağıdaki şekilde gösterelim:
Şekil: 4.4 Örnek ağ bölümlerindeki bilgisayar adresleri
51
TCP/IP
Bakalım bu şema iletişim sorunumuzu çözüyor mu?
Ankara’daki 195.156.89,34 adresli bilgisayarın yine Ankara’daki 195.156.89.35 adresli bilgisayarla haberleşmek istediğini varsayalım. Bilgisayar ilk önce kendi adresi ile subnet maskesini VE İşleminden geçirecek ve kendi ağ tanımlayıcısını bulacaktır:
195.156.89. 34 VE 255.255.255.224
195.156.89.32
Sonra hedef bilgisayarın IP adresi ile kendi subnet maskesini VE işleminden geçirir:
195.156.89. 35 VE 255.255,255.224
195.156.89.32
İki işlemin sonucu aynı olduğu için hedef bilgisayarın kendisiyle aynı ağ bölümünde olduğunu varsayacaktır, Bu varsayım da doğru olduğu için İletişim gerçekleşebilecektir.
Şimdi aynı bilgisayarın İstanbul’daki 195.156.89.66 nolu bilgisayarla iletişime geçmek istediğini varsayalım. Yine kendi adresi ile kendi subnet maskesini VE işleminden geçirir. Sonucu yukardan biliyoruz: Ağ tanımlayıcısı 195.156.89.32 çıkacaktır. Şimdi hedef bilgisayarın IP adresi ile kendi subnet maskesini VE işleminden geçirecektir:
195.156. 89. 66 VE 255.255.255.224
195.156,89.64
İki işlemin sonucu aynı olmadığı için hedef bilgisayarın başka bir ağ bölümünde olduğunu varsayacaktır. Başka bir bölümdeki bilgisayarla doğrudan iletişime geçemeyecek ve veri paketini yönlendiriciye yollayacaktır.
Burada dikkat etmemiz gereken bir şey var: Örnek ağımızdaki yönlendiricilerin durumu. Yönlendiricilerin her bir bacağına bir IP adresi vermek gerekiyor. Peki bu bacaklara nasıl adresler verelim?
52
IP Adresleme
Yönlendiricilerin bacaklarına, bağlı oldukları bölümlere uygun adresler vermek gerekir. Örneğimizde adresler şu şekilde olacaktır:
Şekil: 4.5 Örnek ağımızdaki yönlendirici adresleri
Bu şekilde bir eksiklik var. Hatta eksikliklerin sayısı birden fazla. Yönlendiricilerin Ankara-İstanbul ve İstanbul-İzmir arasındaki bacaklarına adres atamamışız. Ankara-İstanbul ve İstanbul-İzmir arasında hiç bilgisayar yok, değil mi? Yalnızca yönlendiricilerin bacakları var. Fark etmez. O bölümler de, hiç bilgisayar içermemesine karşın ayrı birer altağdır (segment) ; onlara da birer alt ağ tanımlayıcısı (network ID) vermek gerekir. Altağ tanımlayıcısı verdiğimize göre buralarda yer alan yönlendirici bacaklarına uygun IP adresleri vermek de gerekir. O zaman yeni şeklimiz şöyle olacaktır:
53
TCP/IP
195.156.89.33 195.156.89.34 195.156.89.35
195.156.89.65 195.156.89.66 195.156.89.67
Şekil: 4.6 Yönlendiriciler arasında kalan bölümlerdeki adresleme
Şimdi altağlara bölme konusunda yapılacak işleri biraz toparlayalım:
• Kurum ağımızı altağlara ayırırken ilk önce kaç adet ayrı ağ İstediğimize karar vereceğiz.
• Buna göre kaç adet yönlendirici kullanacağımızı belirleyeceğiz.
• Toplam altağ sayısını belirlerken yönlendiriciler arasında kalan kısımları da unutmayacağız. Onlar da ayrı birer altağdır. Hesaba onlar da dahil edilecek.
• Kurum adresimizde bizim sorumluluğumuza bırakılan kısma bakacağız. Oluşturacağımız altağlar için buradaki bitleri kullanacağız.
•2-2 kuralına uygun olarak altağ belirlerken kaç adet bit kullanacağımızı saptayacağız. Çıkan sayıda bitleri altağ tanımlayıcılarını belirlemekte kullanacağız. Geriye kalan bitler de altağlardaki bilgisayarları tanımlayacak.
• Kurum çapında geçerli olacak yeni subnet maskesini belirleyeceğiz. Bu yeni subnet maskesinde altağ tanımı için kullanılan bitlerin yerleri l olacak.
54
IP Yönlendirme (Routing)
IP YÖNLENDİRME (ROUTING)
Bir bilgisayar yalnızca kendi ağında bulunan bilgisayarlarla doğrudan görüşebilir. Başka ağlardaki bilgisayarlarla İse dolaylı yollarla görüşebilir.
Şimdi aşağıdaki şekle bakalım.
195.194.34.2 195.194.34.3 195.194.34.4 200.123.89.2 200.123.89.3 200.123.89.4
Sutanet maskesi: 255.255.255.0 Subnet maskesi: 255.255.255.0
Şekil: 5.1 Birbirleri ile bağlantıları olmayan iki ayrı ağ
Bu şekilde iki ayrı ağ (subnet) görüyoruz. Soldaki ağda bulunan bilgisayarlar birbirleri İle İletişime geçebilirler. Sağdakiler de kendi aralarında iletişime geçebilirler. Ama sağdakiler soldaki bilgisayarlarla, soldakiler de sağdaki bilgisayarlarla iletişime geçemezler (aynen politikada olduğu gibi, değil mi?)
Ağ maskesi yardımı ile bulunduğumuz ağı saptayabildiğimiz için artık sağdaki ağ, soldaki ağ ifadelerini de bir kenara bırakabiliriz. Sağdaki ağ 200.123.89.0 ağıdır, soldaki ağ 195.194.34.0 ağıdır.
Bu ağlar böylece kalsalar iyi, fazladan bir şey yapmaya gerek yok. Ama bu iki-ağı bir şekilde birbirine bağlasak da her iki ağdaki bilgisayarları birbirleriyle konuştursak iyi olmaz mı? Olur tabii.
Farklı bilgisayar ağlarını birbirine bağlamak için yönlendiriciler (router) kullanıyoruz. Yönlendiricilerin görevi ortada bir yerlerde oturup bir ağdan diğerine gidecek olan veri paketlerini alıp hedefine ulaştırmak; yani, adı üstünde, yönlendirmek.
55
TCP/IP
Şimdi aşağıdaki şekle bakalım.
Şekil: 5.2 İki ağı birbirine bağlamak için yönlendirici kullanımı
İki ağı birleştirmek için ortaya bir yönlendirici koyduk. Yönlendiricinin iki bacağı var. TCP/IP protokolü ağdaki her ucun ayrı bir IP adresinin olmasını şart koşuyor. Bu yüzden yönlendiricinin bacaklarına da birer IP adresi veriyoruz.
Yönlendiricinin bacaklarına adres verirken o bacak hangi ağa bağlı ise o ağa uygun bir adres verdiğimize dikkat ediniz. Bu da zorunlu: Ağ üzerindeki uçlar (bilgisayar ya da yönlendiriciler vb.) yalnızca kendi ağlarındaki makinalar ile doğrudan görüşebilirler.
Yine dikkatinizi çekmiştir: Yönlendiricinin bacaklarına adres verirken o ağdaki ilk adresi veriyoruz. Vermeye gayret ediyoruz demek daha doğru olacak; çünkü ortamda birden fazla yönlendirici olabilir, o zaman da bir yönlendirici ilk adresi alırken diğeri zorunlu olarak ondan bir sonrakini alacak, Ağdaki ilk adresin yönlendiriciye verilmesi zorunlu bir kural değildir. Bu, yalnızca çıkabilecek ağ sorunlarında rahat etmemizi sağlar: Yönlendiricilere hep ilk numaralar veriliyorsa gittiğimiz yabancı bir ortamda bile yönlendiricileri kolayca bulabiliriz.
Yönlendiriciyi kurduk ama her iki ağda da bilgisayarların bundan haberi yok. Onları haberdar etmek için TCP/IP konfigürasyonu kısmında “default gateway” parametresini kullanabiliriz. Bu parametre “varsayılan çıkış kapısı” anlamına geliyor ve eğer kendi ağımızda olmayan bir adrese ulaşmamız gerekirse ilişki kuracağımız yönlendiriciyi gösteriyor.
195.194.34.0 ağında bulunuyorsak bilgisayarların hepsinde default gate-way olarak 195.194.34.1 adresini veriyoruz (bu adres, yönlendiricinin bize bakan bacağını gösteriyor)
.56
IP Yönlendirme (Routing)
200.123.89.0 ağında bulunuyorsak bu sefer default gateway olarak
200.123.89.1 adresini tanımlıyoruz.
Bu durumda ne oluyor?
Eğer 195.194.34.2 adresinden 200.123.89.3 adresine, örneğin, bir PING çekeceksek hedef bilgisayarın bizimle aynı adreste olmadığını anlıyoruz, PING mesajlarını yönlendiriciye gönderiyoruz. Yönlendirici, mesajın içindeki hedef adresi kısmına bakıyor, mesajı 200.123.89.3 adresine yolluyor.
Peki, yönlendirici olarak ne kullanabiliriz? Birinci şık Router adı altında satılan cihazlar almaktır. Piyasada Cisco Systems ya da Bay Networks ya da başka firmaların ürettiği çok sayıda bu tür cihazlar var.
İkinci şık ise bir Windows NT bilgisayarı (Server ya da Workstation) yönlendirici olarak kullanmak: Bir NT bilgisayara iki adet ağ kartı takarız, her birini bir ağa bağlarız, sonra da bir yönlendirici olarak çalışacağını söyleriz, işimiz biter.
Bir NT bilgisayarı yönlendirici yapmak için TCP/IP özelliklerinden IP Routing sayfasına gidip Enable IP Routing kutusunu işaretlememiz gerekiyor.
Şekil: 5.3 Bir NT bilgisayarı yönlendirici olarak düzenlemek
57
TCP/IP
Son derece basit değil mi?
TCP/IP protokolünün kurulduğu her bilgisayarda bir yönlendirme tablosu tutulur, Bilgisayarlar bu yönlendirme tablosuna bakarak hangi veri paketini, nereye göndereceklerine karar verirler.
Şimdi bir NT bilgisayarda bu tablonun içeriğine bir göz atalım. Bu amaçla ROUTE komutunu kullanacağız. ROUTE komutu bilgisayarımızda bulunan yönlendirme tablosunu görmemizi ve bu tabloda değişiklikler yapabilmemizi sağlar.
Tabloyu görmek için vermemiz gereken komut ROUTE PRINT komutudur. Bu komuta karşılık şöyle bir ekran gelir karşımıza:
Şekil: 5.4 Bilgisayarınızda bulunun yönlendirme tablosunu görüntülemek
Nasıl, biraz karışık, değil mi? İlk önce her satırda yer alan alanların anlamlarını açıklayalım;
Network Address: Ağ adresi
Netmask: Bu ağda kullanılan ağ maskesi.
Gateway Address: Çıkış Kapısı. Bu ağdaki bilgisayarlara ulaşmak için git-mem gereken çıkış kapısı adresi. Yani, o ağa bakan yönlendiricinin adresi.
Interface: Arabirim. Bu ağa ulaşmak için bilgisayarımızda kullanılan IP adresi. Bilgisayarımızda birden fazla ağ kartı bulunabileceğini, her birine bir IP adresi verilebileceğini anımsayın. Ayrıca tek bir ağ kartına da birden fazla IP adresi verilebilir.
58
IP Yönlendirme (Routing)
Metric: Bu ağa ulaşmak için katedilmesi gereken yönlendirici sayısı
Örneğimizde bütün kayıtlarda metric ifadesinin l’e eşit olduğuna dikkat ediniz. Metric’in l olması bu adreslere ulaşmak için bir yönlendiriciyi geçmeye gerek olmadığını gösteriyor. Örnekteki adreslerden birisi İçin bir yönlendirici geçmemiz gerekseydi metric kısmı 2 olacaktı. Yani, metric kısmını geçmemiz gereken yönlendirici sayısı +1 olarak düşünebiliriz.
Tabloda yer alan her satır bir ağ adresini ve ona ulaşma şeklini gösteriyor.
İlk satırda varsayılan çıkış kapısı ile ilgili bilgileri görüyoruz. Eğer elimizdeki adres kendi ağımıza ait değilse, bu adresle ilgili daha ayrıntılı bir yönlendirme bilgisi de yoksa bu adrese ulaşmak için varsayılan çıkış kapısına gidilir. Burada ilk alanda ağ adresi olarak 0.0,0.0 ifadesini görüyoruz. Bu, kendi ağ adresimiz dışındaki her türlü adres demektir.
İkinci satırda loopback adres bilgimizi görüyoruz. Bildiğiniz gibi loop-back adresi kendi adresimize karşılık geliyor ve test amaçlarıyla kullanılıyor. Tablodaki bu satır TCP/IP yüklendiğinde otomatik olarak oluşturulur.
Üçüncü satırda ağ adresi kendi ağ adresimiz: 195.107.1.0. Yanında kendi ağ maskemiz var (255.255.255.0). Bu adres için çıkış kapısı kendi adresim olacak. Yani, çıkış kapısı adresi İle arabirim adresim aynı: 195.107.130
Dördüncü satırda ağ adresi olarak 195.107.1.30′u görüyoruz. Bu satır “eğer 195.107.1.30 adresine bir şey göndereceksen onu loopback adresine gönder” demektir. Bu satır olduğu için “ping 195.107.1.30″ komutunu verirsek loopback adresi ile ilişki kurulur, hiç ağ üzerine çıkılmaz.
Beşinci satırda kendi ağımızdaki broadcast (yayın) adresini görüyoruz: 195.107.1.255.
Altıncı satırdaki 224.0.0.0 adresi bir multicast adres grubuna karşılık geliyor. Bir TCP/IP ağında mesajlar üç şekilde gönderilebilir: Noktadan noktaya (point-to-point ya da directed), herkese yayın şeklinde (broadcast) ya da bir gruba (multicast). 224 ile başlayan adresler multicast adresleridir.
59
TCP/IP
Yedinci satırda 255.255.255.255 ağ adresini görüyoruz. Bu da broadcast adresi oluyor.
ROUTE PRINT komutuyla bilgisayarımızdaki yönlendirme tablosunu gördük. Bu tabloya eklenti yapmak istersek bu sefer ROUTE ADD komutunu kullanacağız. “Niçin eklenti yapmamız gerekir?” diye sorabilirsiniz. Aşağıdaki şekle bir göz atın:
Şekil: 5.5 İki yönlendirici ile bağlanmış üç ayrı bölümden oluşan bir ağ
Şekilden anladığımız kadarı ile konuya başlarken verdiğimiz örnek ağda bir değişiklik olmuş ve ağımıza yeni bir segment eklenmiş. Bu segment-teki ağ adresini bulmayı biliyoruz, değil mi? Segmentteki adreslerden birisini yine bu segmentte kullanılan subnet maskesi ile VE işleminden geçiriyoruz, sonuç ağın adresini veriyor. Bunu yaptığımız zaman bu ağın adresinin 205.56,78.0 olduğunu görürüz.
Bu ağda 195.194.343 nolu bilgisayardan 205.56.78,2 nolu bilgisayara ulaşmak istediğimizi varsayalım,
195.194.34.3 adresli bilgisayar elindeki adresin kendi ağına ait olmadığını anlayacaktır. Peki, bu adrese ulaşmak için nereye başvurması gerekiyor? Elinde bir varsayılan çıkış kapısı adresi (default gateway) var. Ama ona giderse yanlış yönlendiriciye gitmiş olacak, çünkü o yönlendirici kendisini yalnızca 200.123.89.0 ağına bağlayabilir. Kendisini doğru ağa bağlayacak bir yönlendirici var ama bu bilgisayarın o yönlendiriciden haberi yok.
60
IP Yönlendirme (Routing)
O zaman bilgisayarların yönlendirme tablosunu değiştirmek gerekiyor. Yönlendirme tablosuna yeni ağ İle İlgili bilgileri yazmamız gerekiyor. Kullanacağımız komut ROUTE ADD. Şimdi bu komutun yazımına bakalım;
ROUTE ADDağ-adresi
MASK ağ-maskesi çıkış-kapısı adresi
METRIC metric-değeri
Yukardaki örnekte 195.194.34.3 nolu bilgisayarda şöyle bir komut vereceğiz:
Route add 205.56.78.0 mask 255.255.255.0 195.194.34.10 metric 2
Bu komut verildikten sonra artık 195.194.34.3 bilgisayarından 205.56.78.2 bilgisayarına da, o segmentte bulunan diğer bilgisayarlara da erişilebilir.
Komutu verirken metric değerini 2 yaptığımıza dikkat ediniz. Metric değeri geçilmesi gereken yönlendirici +1′e eşittir, anımsıyorsunuz, değil mi?
Peki, şöyle bir soru aklınıza geliyor mu? “Yönlendiriciler nereye ait olduğunu bilemedikleri IP paketlerini hep kendi default gateway adreslerine gönderiyorlarsa, olmayan bir adrese sahip olan bir IP paketi sürekli olarak internet ortamında bir yönlendiriciden diğerine gezip durmayacak mıdır?”
Böyle bir soru çok haklı kaygıları içeriyor, Ama Allahtan bunun çaresi de düşünülmüş. Bir IP paketi yola çıktığında ona bir TTL (Time-to-Live; ömür ya da oyunlardaki can sayısı diye düşünebilirsiniz). Örneğin, bir NT makinadan çıkan IP paketinin TTL’i 128′dir. Bir IP paketi bir yönlendiriciye ulaştığında TTL değeri bir azaltılır. Eğer bu değer 0 olmuşsa paket yeterince dolaşmıştır anlamına gelir ve başkaca bir yere İletilmez; çöpe atılır.
Hemen bir örnek yapalım, ilk önce kendi subnetimizdeki bir adresi PINGleyelim:
61
TCP/IP
Şekil: 5.6 Kendi ağımızdaki bir bilgisayarı PING’liyoruz.
Şekilde gördüğünüz gibi TTL değeri 128 olarak kalmış; çünkü bir yönlendirici geçmedik.
Şimdi de bir başka segmentte bulunan bir IP adresini PING’leyelim:
Şekil: 5.7 Bir başka bölümde bulunan bir bilgisayarı PING’liyoruz.
Bu şekilde TTL değeri 127′ye düşmüş. Çünkü bir yönlendiriciden geçtik, İlgili Komut: ROUTE.EXE, TRACERT.EXE, PING.EXE
PING komutu ile, verilen IP adresine sahip bilgisayarın TCP/IP bakımından ayakta olup olmadığını öğrenebiliyor ve ayakta ise ona ne kadar bir sürede ulaşıldığını görebiliyoruz.
Yazımı PING IP-Adresi şeklinde oluyor. IP-adresi yerine bilgisayar ismi de verilebilir. Bu durumda, ortamda bilgisayar ismini IP adresine çevirecek bir mekanizmanın olması gerekir.
PING ile başka IP adreslerini test etmeden önce kendi TCP/IP kon-figürasyonumuzu test etmemiz yerinde olacaktır.
Kendimizi PING’lerken ilk önce loopback adresimizi (Özel bir test adresi olup kendimizi gösterir) kullanabiliriz:
62
IP Yönlendirme (Routing)
Şekil: 5.8 Loopback adresimizi PING’liyoruz.
Aynı şeyi “PING Localhost” komutunu vererek de yapabiliriz. Localhost kendi adımıza karşılık gelir:
Şekil: 5.9 Localhost adı ile kendimizi PING’liyoruz.
Kendi adımızı açık açık yazarak da PING çekebiliriz:
Şekil: 5,10 Adımızı vererek kendimizi PING’liyoruz.
Kendimizi PING’ledikten sonra başka bir bilgisayarı PING’leyelim. PING’leyeceğimiz bilgisayarın ismi NT40SRV01 olsun:
Şekil; 5.11 Bir başka bilgisayarı PING’liyoruz
63
TCP/IP
TRACERT komutu bir IP adrese ulaşırken kullandığımız yolu gösterir; yolu izler.
Komutun yazımı oldukça basittir; TRACERT IP-Adresi
Bu komutu verdiğinizde girilen IP adresine çeşitli paketler gönderilecek, bu paketlerin karşı tarafa hangi yönlendiriciler üzerinden gittiği görüntülenecektir.
Bir yönlendirici ile bağlandığımız başka bir subnetteki IP adresine giden yolu izleyelim:
Şekil: 5.12 TRACERT komutunun kullanımı
Yukardaki şekilde instructor adındaki bilgisayara giden yolu izliyoruz. Komutun çıktısından açıkça görüldüğü gibi instructor’a ulaşmak için adı CLASSROUTER olan ve 131.107.4.1 adresine sahip bir yönlendiriciden geçiyoruz.
64
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
DHCP (DYNAMIC HOST
CONFIGURATION
PROTOCOL)
(Dinamik Bilgisayar Konfigürasyon Protokolü)
TCP/IP protokolünü kullanan bir ağda her bilgisayar için ortalama beş adet parametre tanımlamak gerekir: IP adresi, subnet maskesi, defa-ult gateway adresi, DNS sunucu adresi, WINS sunucu adresi.
Ağdaki bilgisayar sayısı arttıkça bu parametrelerin bilgisayarlara girilmesi hem büyük bir yük getirir, hem de bu sırada bol miktarda hata yapılır. Örneğin, 100 kullanıcılı bir ağda toplam 500 adet parametrenin doğru şekilde girilmesi gerekir. 500 adet parametreyi girerken muhakkak hata yapılır: IP adresleri çakışır; İletişim kurulamaz. Subnet maskeleri yanlış verilir; kendi ağımızdaki ve başka ağlardaki makinalara erişemeyiz. Default gate-way adresi yanlış girilir; kendi ağımızdaki makinalarla iletişim kurabiliriz, ama bir başka ağa bağlanamayız. DNS ve WINS adresleri yanlış girilir; isim-IP adresi çözümlemesini DNS sunucudan ya da WINS sunucudan yapamayız.
Peki, bu parametreleri doğru bir şekilde girmenin daha kolay bir yolu yok mudur? Vardır ve bu kolay yolun adı DHCP’dir: Dinamik Bilgisayar Konfigürasyon Protokolü.
DHCP, bilgisayarlara IP adresi ve subnet maskesi başta olmak üzere TCP/IP parametrelerini otomatik olarak dağıtan bir protokoldür. DHCP, daha eski bir protokolün, BOOTP protokolünün geliştirilmişidir. BO-OTP, disket sürücü ya da sabit diski bulunmayan bilgisayarların TCP/IP konfigürasyonunu yapmak üzere geliştirilen bir protokoldü.
DHCP kullanımı şöyle olur: Bir makina DHCP sunucu olarak kurulur. DHCP sunucuda diğer bilgisayarlara dağıtılacak adresler için bir adres aralığı ve bir subnet maskesi tanımlanır. IP adresi ve subnet maskesi dışında dağıtılabilecek parametreler de (default gateway, DNS ve WINS sunucu adresleri gibi) tanımlanabilir.
65
TCP/IP
DHCP İstemci olarak belirlenmiş bilgisayarlar DHCP sunuculara başvurduklarında adres havuzundan uygun bir adres seçilip subnet maskesi ile birlikte istemciye gönderilir. Bu sırada seçimlik bilgiler (default gate-way adresi, WINS sunucu ve DNS sunucu adresleri gibi) de İstemciye gönderilebilir.
Eğer istemci bilgisayar bu adres Önerisini kabul ederse Önerilen adres istemciye belli bir süre için kiralanır (niye atama terimini değil de kiralama terimim kullanıyoruz, biraz sonra açıklığa kavuşacak).
Eğer IP adres havuzunda verilebilecek bir adres kalmamışsa ve istemci başka bir DHCP sunucudan da adres alamıyorsa TCP/IP iletişimine geçilemez.
DHCP sunucudan adres kiralama İşlemi dört aşamada gerçekleşir.
1) İlk olarak istemci, “Benim IP adresi, subnet maskesi vb. bilgileri içeren TCP/IP konfigürasyonuna ihtiyacım var. Eğer ortamda bir DHCP sunucu varsa bana TCP/IP konfigürasyon parametreleri göndersin” anlamında bir mesajı broadcast olarak yayınlar. Niçin broad-cast? Çünkü hem kendisinin IP adresi yok, hem de DHCP sunucunun adresini bilmiyor. Bu mesaja DHCP DISCOVER (DHCP KEŞİF) mesajı denir.
Mesajda çıkış IP adresi olarak 0.0.0.0, hedef IP adresi olarak da 255.255.255.255 adresi bulunur. Çıkış MAC adresi olarak istemci kendi MAC adresini yazar. Hedef MAC adresini bilmediği için buraya da FFFFFFFFFFFF adresini yazar (FFFFFFFFFFFF: MAC düzeyinde broadcast adresidir).
2) DHCP DISCOVER mesajını alan DHCP sunucu ya da sunucular kendi adres havuzlarını kontrol ederler ve uygun bir adres bulurlarsa bu adresi bir öneri olarak istemciye gönderirler, istemcinin halihazırda bir IP adresi bulunmadığı için bu mesaj da broadcast olarak yayınlanır. Bu mesaja DHCP OFFER (DHCP ÖNERİ) mesajı denir. Mesajda çıkış IP adresi olarak DHCP sunucunun IP adresi, hedef IP adresi olarak 255.255.255.255 bulunur. Çıkış MAC adresi olarak DHCP sunucunun MAC adresi, hedef MAC adresi olarak da istemcinin MAC adresi yer alır. Bu standart adreslerin yanı sıra bir de sunucu tanımlayıcı (identifi-er) bilgisi bulunur. Bu da sunucunun IP adresine eşittir.
66
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
DHCP OFFER mesajında, önerilen IP adres bilgisinin yanı sıra adres kiralama süresi de bulunur.
3) İstemci kendisine ilk ulaşan DHCP OFFER mesajını kabul eder ve bu adresi almak istediğini göstermek için DHCP REQUEST (DHCP İSTEK) mesajı yayınlar. Tabii, yine broadcast olarak. Bu mesajın içinde adres önerisini kabul ettiği DHCP sunucunun bilgisi de bulunmaktadır (sunucu tanımlayıcı).
Eğer ortamda bir DHCP sunucu yoksa ne olur? DHCP OFFER mesajı yayınlanmayacaktır. Bu durumda İstemci IP önerisi için l saniye bekler. Bir saniye içinde öneri gelmezse DHCP DISCOVER mesajını üç kez tekrarlar (9, 13 ve 16. saniyeler artı O ile 1000 milisaniye arasındaki rastgele bir süre sonunda). Eğer toplam dört mesaj sonrasında da bir öneri alamazsa denemeden vazgeçmez, Her beş dakidada bir mesajını tekrarlar.
4) Son olarak adres önerisi kabul edilen DHCP sunucu, işlem tamam anlamına bir onay mesajı gönderir. Bu mesaja da DHCP ACK (DHCP ONAY) mesajı diyoruz.
İstemci ancak DHCP ACK mesajını alınca TCP/IP haberleşmesini kullanabilir.
Aşağıda Network Monitör programı ile alınmış olan paketlerde bu dört mesajı görebilirsiniz.
Şekil: 6.1 DHCP sunucudan adres -alınması sırasında üretilen dört çerçeve
Bu şekilde DHCP’den adres alınması sırasında üretilen dört mesajı (bunlara çerçeve deniyor. Ingilizcesi “frame”) görüyoruz..
İlk çerçevede student3 adındaki bir bilgisayar DHCP DISCOVER mesajını broadcast olarak gönderiyor.
İkinci çerçevede bir DHCP OFFER mesajı var. Bu mesajı gönderen bilgi-
67
TCP/IP
sayarın ismini de görebiliyoruz: EINSTRUCT. Demek ki bu makina bir DHCP sunucu.
Üçüncü çerçevede student3 bilgisayarı, DHCP sunucunun önerisini kabul ettiğini göstermek üzere DHCP REQUEST mesajı yayınlıyor.
Dördüncü ve sonuncu çerçevede EINSTRUCT bilgisayarı bir DHCP ACK mesajı yayınlayarak adres kiralama işleminin onaylandığını bildiriyor.
Şimdi network monitör programı yardımı ile bu çerçevelerin biraz daha içine girelim. Daha çok ayrıntı görmek için bir çerçevenin üzerine çift tıklamak yeterli.
Aşağıdaki şekilde İlk çerçevenin içeriğini daha ayrıntılı bir şekilde görüyoruz:
Şekil; 6.2 DHCP Discover mesajının ayrıntıları
Burada gördüğümüz gibi istemcinin ve karşı tarafın IP adres kısımları boş; bunlar henüz bilinmiyor, İstemci, bir tek kendi MAC adresini (Client Ethernet Address) gönderebiliyor.
Şimdi ikinci çerçeveye bakalım:
68
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
Şekil; 6.3 DHCP offer mesajının ayrıntıları
Önerilen adresi burada açık ve seçik olarak görebiliyoruz: 131.107.1.95 Üçüncü çerçevede istemci kendisine önerilen adresi kabul ediyor:
Şekil: 6,4 DHCP Request mesajının ayrıntıları
69
TCP/IP
Sonuncu çerçevede sunucudan onay gidiyor:

Şekil: 6.5 DHCP Ack mesajının ayrıntıları
Şimdi sonuncu çerçevenin DHCP: Option Field kısmını biraz açalım. Burada default gateway adresi, WINS sunucu adresi, DNS sunucu adresi vb. şeyler yer alacak.
70
Şekil: 6.6 DHCP Ack mesajında seçimlik bilgilerin görüntülenmesi
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
Buradan anladığımız kadarı ile DHCP tarafından üç adet parametre op-siyon olarak gönderilmiş. Bunlar:
Default Gateway adresi (Router): 131.107.1.234
WINS sunucu adresi (NetBIOS Name Service): 131.107.3.56
DNS sunucu adresi (Domain Name Server): 131.107.5.53
DHCP ile alınmış adres bilgileri Control panel’deki network uygulaması aracılığı İle görülemez (Niye? Belli bir yanıtı yok. Aslında gösterilebilirdi. Umarız NT’nin yeni versiyonunda gösteriliyordur). Peki, TCP/IP konfigürasyonunu nereden göreceğiz? Ya komut satırından IPCONFIG komutunu vereceğiz ya da registry’nin içine dalacağız.
İstemci, TCP/IP parametrelerini registry’de aşağıdaki key’de saklar:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servi-ces\adapter\Parameters\Tcpip
IPCONFIG komutunu komut satırından verirsek IP adresimiz, subnet maskemiz ve default gateway adresimiz görüntülenir:
Şekil: 6.7 IP Adress, Subnett Moskes ve Defoult Gateway adresinin görüntülenmesi TP Adresi, Subnet Maskesi ve Default
Komut satırından ipconfig komutu verildiğinde IP adresimiz, subnet maskemiz ve default gateway adresimiz görüntüleniyor. Peki, opsiyon olarak gönderilen bilgileri nasıl göreceğiz? Bunun için komutu “ipconfig /all” şeklinde vermek gerekiyor:
Çok daha ayrıntılı bilgiler gerekiyor, değil mi? Şimdi bu bilgilere bir göz atalım:
71
TCP/IP
Şekil: 6,8 TCP/IP konfigurasyonumuzun daha ayrıntılı bir şekilde görüntülenmesi
Host Name: Host ismi DNS Servers: DNS sunucuların adresleri
Node Type: İsim çözümleme yöntemi. “Bu da ne?” diyorsanız izlemeye devam edin.
NetBIOS Scope ID: NetBIOS kapsam tanımı. Hemen hemen hiç kullanmamak gerekir.
IP Routing Enabled: IP yönlendirme yapılıyor mu? WINS Proxy enabled: WINS vekil ajan görevimiz var mı? NetBIOS Resolution Uses DNS: NetBIOS isim çözümlemesi sırasında DNS kullanılıyor mu?
Aşağıdaki kısımda ise ağ kartımızla ilgili bilgileri görüyoruz:
Description: Tanımlama. Kartımızın adı.
Physical Address: Fiziksel adres. Yani, MAC adresi.
DHCP Enabled: DHCP istemci miyiz?
IP Address: IP adresimiz
Subnet Mask: Subnet Maskesi
Default Gateway: Varsayılan çıkış kapısı. Yönlendiricinin adresi
DHCP Server: DHCP sunucunun adresi.
Primary WINS Server: Birincil WINS sunucunun adresi.
Lease Obtained: DHCP’den alınan adresin kira süresi başlangıcı.
Lease Expires: DHCP’den alınan adresin kira süresi bitimi.
Herhangi bir nedenle DHCP’den aldığımız IP adresini serbest bırakmak
72 ——————————————————————————————————-
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
istersek yine ipconfig komutunu vereceğiz. Ama bu sefer release (serbest bırak) parametresi ile:
Şekil: 6.9 DHCP sunucudan alman adresin serbest bırakılması
Serbest bıraktıktan sonra “Biz ne yaptık şimdi? Hadi tekrar DHCP’den adres alalım” dersek yine ipconfig komutunu veriyoruz; bu sefer renew (yenile) parametresi ile:
Şekil: 6.10 DHCP sunucudan tekrar adres alma
TCP/IP’de her şeyin bir süresi vardır. Hiçbirşey sonsuza kadar sürmez. DHCP sunucudan alınan IP adresinin de bir süresi vardır. DHCP yolu ile alınan adres belli bir süreliğine kiralanmış sayılır.
Bir ev kiralığımızda kontrat süresinin bitiminden önce kontratımızı yenilemek isteriz. DHCP ile alınmış adresin de kira süresinin bitiminden önce yenilenmesi gerekir.
NT 4.0′da DHCP ile alınan adresin süresi üç gündür. “Niye beş gün değil ya da on üç gün değil de üç gün” diye sorabilirsiniz. Bu tür değerler günlük hayatta yapılan testlerin, denemelerin sonunda belirlenmiştir. Yani, bu üç günlük süreyi değiştirmemekte yarar var. Ama değiştirmeniz de mümkün. DHCP hizmetinin kuruluşu sırasında bu değer değiştirilebilir.
Yukarda bir istemcinin DHCP ile adres bilgisi elde edişini anlattık. Bu adresin belli bir süre için geçerli olduğunu söyledik ve istemci bu süre so-
73
TCP/IP
nunda da adresi kullanmak istiyorsa kira kontratını yenilemeli dedik. Şim-di bu işler nasıl oluyor, ona bakalım.
DHCP istemcileri kira sürelerinin yüzde ellisi geçtiğinde kira kontratlarını yenilemek isterler. Bu işlem iki aşamada olur:
1) Adresini yenilemek isteyen istemci bir DHCP REQUEST mesajı gönderir. “Kime?” diye sorabilirsiniz. Artık kendisinin bir IP adresi olduğu için ve DHCP sunucunun adresini de bildiği için broadcast olarak değil, doğrudan DHCP sunucuya.
2) Eğer DHCP sunucu ayakta ise ve süre uzatma isteğini onaylıyorsa bir DHCP ACK (Onay) mesajı göndererek süreyi uzattığını bildirir. Bu mesaj içinde seçimlik parametrelerin (default gateway, WINS ve DNS sunucu adresleri gibi) en son hali de yer alır.
İstemci aldığı DHCP mesajına göre kendi konfigürasyonunu düzenler.
Eğer istemci kira süresini uzatmak istediğinde DHCP sunucu ile ilişki ku-rulamıyorsa ne olur? Ev kiraladığınızda ne oluyorsa burada da aynısı oluyor. Yani, kontrat süresi bitimine kadar evi kullanmaya devam ettiğiniz gi-bi kiralanan IP adresi de kullanılmaya devanı ediliyor.
İstemci ilk girişiminde kira kontratım yenileyememişse kalan sürenin dörtte üçü tamamlandığında herhangi bir DHCP sunucu ile ilişkiye geçmeye çalışır. Bu amaçla bir DHCP REQUEST mesajını broadcast olarak yayınlar. Bu mesajı alan sunucular isteği ya DHCP ACK mesajı ile onaylarlar ya da DHCP NACK mesajı ile onaylamazlar.
Kira kontrat süresi bitiminde istemci hala adres kontratını yenileyememiş-se artık IP adresini kullanamaz. Baştaki IP adresi kiralama işlemine döner.
DHCP Sunucu Hizmetinin Kuruluşu
DHCP sunucuyu kurarken ve konfigüre ederken yapabileceğimiz çok şey bulunmaktadır.
Her şeyden önce DHCP sunucular aynı zamanda DHCP istemci olamayacakları için DHCP sunucuların IP adreslerini statik olarak vermek gerekir.
74
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
Daha sonra istemcilere vereceğimiz IP adres havuzunu (scope) tanımlamalıyız, örneğin, IP adreslerimiz 131.107.1.1′den başlayıp 131.107.1.250′ye kadar gidebilir. Ayrıca ağımızda geçerli olacak subnet maskesini de vermeliyiz. Örneğin, 255.255.255.0 gibi.
Bilgisayar ağımızda bulunan makinaların hepsi DHCP istemcisi olamaya-bilir. Bu durumda onların adreslerini statik olarak vermeli ve DHCP’nin adres havuzundan çıkarmalıyız.
Bazı makinaların ise hep aynı IP adresini almaları gerekir. Bu durumda da bu makinalar için bazı IP adreslerini rezerve etmeliyiz.
Ayrıca ta başından beri söylediğimiz gibi hazır IP adreslerini dağıtırken default gateway, DNS sunucu, WINS sunucu adresleri gibi adresleri de dağıtabiliriz,
DHCP hizmeti Windows NT server bilgisayarlara kurulur. Bu bilgisayar üzerinde TCP/IP protokolü bulunmalı, IP adresi statik girilmelidir.
DHCP sunucu servisi, Control Panel’deki Network uygulamasının Services sayfasından kurulur. Her servisin yüklenmesinden sonra olduğu gibi sistem resetlenir. Sistem açıldığında Administrative Tools (Yönetim Araçları) menusu altında DHCP Manager (DHCP Yöneticisi) başlıklı bir me-nü şıkkı görünür. DHCP hizmeti buradan konfigüre edilir.
DHCP sunucu hizmetinin konfigürasyonu sırasında dağıtılacak IP adresleri havuzu, yani, scope tanımlanır. Bir DHCP sunucuda birden fazla adres havuzu bulunabilir. Niye birden fazla havuz diye sorabilirsiniz? Eğer bilgisayar ağımız birbirlerine yönlendiriciler yardımı ile bağlanan birden fazla subnet’i içeriyorsa birden fazla havuz işimize yarayacaktır. Böyle bir durumda subnetlerden birinde bulunan bir DHCP sunucu yardımı ile bütün istemcilere IP dağıtabiliriz. Bu konuyu DHCP Role Ajanı konusunda anlatacağız.
DHCP sunucuda bir altağ (subnet) için yalnızca bir adres havuzu tanımlanabilir.
Adres havuzunun yanı sıra IP adresi dağıtılırken gönderilebilecek seçimlik bilgiler de tanımlanır.
75
TCP/IP
DHCP sunucuda birden fazla havuz bulunabileceği için seçimlik bilgiler ya havuza özel olabilir, ya da bütün havuzlarda geçerli olabilir.
Eğer ortamımızda DHCP sunucudan hep aynı IP adresini alması gereken istemciler varsa bunlar için IP adres rezervasyonu da yapılabilir.
Bir DHCP adres havuzu (scope) yaratalım:
1) Start menüsünden, Programs’i ve oradan da Administrative Tools’u seçelim. Sonra da DHCP Manager’a tıklayalım.
2) Local Machine’in üzerine tıklayalım.
3) Scope menüsünden Create (yarat)’a tıklayalım.
4} Create Scope başlıklı diyalog kutusu görünecektir.
Şekil: 6.11 DHCP sunucuda bir adres havuzunun oluşturulması
76
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
Burada yer alan alanların açıklamaları şu şekildedir:
Veri Alanı Açıklama
IP Address Pool (IP adres havuzu) İstemcilere verilecek ilk adres İstemcilere verilecek son adres
Exclusion Range (Hariç Tutma Aralığı)
Start Address (Başlangıç Adresi) End Address (Bitiş Adresi)
Lease Duration (Kira Süresi) Unlimited (Sınırsız)
Limited To (Yandaki Süre İle Sınırlıdır)
Name (İsim) Comment (Yorum)
Start Address (Başlangıç Adresi) End Address (Bitiş Adresi) Subnet Mask (Subnet Maskesi) istemcilere verilecek subnet maskesi
Yukarda tanımlanan adres havuzu içindeki özel bir bölümü hariç tutmak için tanımlanan hariç tutma aralığının başlangıç ve bitiş adresleri
istemcilere verilen adreslerin bir süre kısıtı yoktur
Verilen adresler yalnızca yandaki süre sonuna kadar geçerlidir.
Bu scope’un ismi
scope ile ilgili yorum
Bu alanlara bilgi girdikten sonra OK tuşuna basın. Bir adres havuzu yaratılacaktır ve size bu adres havuzunu aktive edip etmeyeceğiniz sorulacaktır. YES tuşuna tıklarsanız havuz aktive edilir yani, artık IP adres dağıtılabilir.
DHCP Manager programında aktif havuzlar sarı bir lamba ile gösterilir. Bir havuzun yanında lamba yanmıyorsa o havuz aktif değildir ve buradan adres dağıtımı yapılamaz.
Unutmayın: Eğer ağda DHCP istemci yapılamayan bilgisayarlar bulunuyorsa onların adreslerini statik olarak girmek ve bu adresleri IP havuzundan hariç tutmak gerekir.
77
TCP/IP
DHCP Sunucunun Seçimlik Bilgilerini Konfigüre Edelim
DHCP sunucu istemcilere IP adresi ve subnet maskesi bilgilerini gönderirken default gateway, WINS ve DNS sunucu adresleri gibi başka bilgiler de gönderebilir demiştik. Bu ek bilgileri DHCP Manager içinden DHCP Options (DHCP Seçimlik Bilgileri) şıkkından tanımlıyoruz.
Seçimlik Bilgiler ya sunucuda tanımlı olan bütün havuzlar için tanımlanır (Global Options) ya da bir havuza Özgüdür olabilir (scope).
Seçimlik bilgileri girmek için:
1) DHCP Manager’da bir adres havuzunu seçin.
2) DHCP Options menüsünden Global ya da Scope şıkkını seçin. Karşınıza DHCP Options başlıklı diyalog kutusu çıkacaktır.
Şekil: 6.12 Seçimlik bilgilerin tanımlanması
Burada Unused Options (Henüz Tanımlı Olmayan Seçimlik Bilgiler) başlıklı bir kutu içinde tanımlayabileceğimiz parametrelerin bir listesi bulun-
78
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
maktadır. Bu listeye bir göz atarsanız oldukça çok sayıda parametre olduğunu görürsünüz. Microsoft’un işletim sistemlerini kullanan istemciler yalnızca aşağıdaki parametreleri kullanabilirler. Diğer parametreler tanımlanırsa DHCP sunucu onları da İstemcilere gönderir ama bunları diğer işletim sistemlerini kullanan istemciler kullanabilir.
Seçimlik Bilgi 003 Router
006 DNS Servers
044 WINS/NBNS Servers
046 WINS/NBT node type
Açıklama
Router’in adresini tanımlamak için kullanılır. Pratikte bu adres default gateway adresidir.
DNS sunucuların adreslerini tanımlamak için kullanılır.
WINS sunucunun adresi. Eğer istemci üzerinde bir WINS sunucu adresi elle girilmişse elle girilen adres geçerli olur.
TCP/IP üzerinde NetBIOS isim
çözümlemesinin nasıl yapıldığını
gösterir. Verilebilecek değerler:
1= B-node (broadcast)
2= P-node (Peer)
4= M-node (Mixed; Karışık)
8= H-node (Hybrid; Melez}
NetBIOS scope ID1 sini tanımlar. TCP/IP üzerinden NetBIOS iletişimi yalnızca ay nı scope ID’sine sahip makinalar arasında gerçekleşebilir.
Henüz tanımlı olmayan seçimlik bilgileri işaretleyip Add (Ekle) tuşuna basarak Active Options (Tanımlı Seçimlik Bilgiler) kutusuna attınız. Bundan sonra istediğiniz bilgiyi İşaretleyip Value (Değer) tuşuna tıklayarak seçimlik bilginin değerini girebilirsiniz. Bu değer aşağıdaki değer tiplerinden birisi olabilir:
047 NetBIOS Scope ID
79
TCP/IP
IP Adres
Long
String
Word
Byte
Binary
Yukardaki seçimlik parametrelerden ikisi ilginizi çekmiştir: 046 numaralı WINS/NBT node type ve 047 NetBIOS scope ID. ikincisi ilginizi çekmesin: Hiçbir yararlı iş yapmadığı gibi tehlikeli sonuçlar da doğurabiliyor. NetBIOS scope ID ifadesi gördüğünüz yerden uzak durun ve böyle bir ID tanımlamayın. Anlamsız bir şey
Diğer parametre, WINS/NBT node type ise daha anlamlı. Buraya girilen parametre isim/IP çözümlemesi yapılırken nasıl bir işlem sırası izleneceğini açıklıyor.
Eğer bu parametre l yapılırsa isim/IP çözümlemesi İçin yalnızca broad-cast yöntemi seçiliyor. Yani, bir bilgisayarın ismini biliyor da IP adresini bilmiyorsak “bu İsimli bilgisayarın IP adresi nedir” şeklinde bağırıyoruz. Eğer ortamımızda böyle bir bilgisayar varsa “bu İsim bana ait, benim IP adresim de şudur” şeklinde bir mesaj ile yanıt veriyor.
Bu parametre 2 yapılırsa isim/IP çözümlemesi İçin yalnızca isim çözümleyici görevi gören bilgisayarlara gidiliyor (WINS sunuculara).
Bu parametre 4 yapılırsa isim/IP çözümlemesi sırasında ilkönce broadcast yapılarak IP adresi bulunmaya çalışılıyor; başarılı olunmazsa bu sefer WINS sunucuya gidiliyor.
Bu parametre 8 yapılırsa isim/IP çözümlemesi sırasında ilk önce WINS sunucuya gidiliyor, burada bulunamazsa broadcast’e başvuruluyor.
Bizim bu parametreyi 8 yapmamız yerinde olacaktır. Böylece DHCP istemciler isim/IP çözümlemesi yaparken ilkönce WINS sunucuya gidecekler, sonra broadcast’e başvuracaklardır.
Bir istemciye her seferinde aynı IP adresinin verilmesini sağlayabiliriz demiştik. Tabii ki bu işi yalnızca kısıtlı sayıda istemci için yapmalıyız. Yoksa DHCP sunucu kullanmanın anlamı kalmaz.
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
Bir istemciye IP adres rezervasyonu yapmak için Scope menüsünden
Add Reservations (Rezervasyon Ekle) şıkkını seçelim. Add Reserved Cli-
ents (Rezervasyon Yapılacak istemciyi Ekle) diyalog kutusu çıkacaktır. Bu
kutudaki alanların açıklaması şöyledir:
IP Address (IP adresi) istemciye verilecek IP adresi
Unique Identifier MAC adresi (MAC adresini tiresiz yazın)
Client Name (İstemcinin ismi) Bilgisayar İsmi
Client Comment (İstemci Hakkında Yorum)
Şekil: 6.13 Bir istemciye bir IP adresini rezerve etme.
Bu kutudaki alanları doldurduktan sonra bu MAC adresine sahip bir ma-kina IP adresi isterse ona hep belirtilen IP adresi verilecektir.
Eğer bilgisayar ağımızda birden fazla DHCP sunucu varsa istemci rezervasyonu hepsinde yapılmalıdır.
DHCP Sunucuları Nerelere Kurmak Gerekir?
DHCP ile IP adres alımı broadcast mesajlara dayandığı için ağımızı oluş-
81
TCP/IP
turan her bölüme bir DHCP sunucu kurmak gerekiyor gibi görünüyor. Ama bölümlerin birine kuracağımız DHCP sunucu ile diğer bölümlere de hizmet vermek mümkündür.
Tek bir DHCP sunucunun bulunduğu ağlarda diğer bölümlerde birer bilgisayar DHCP röle ajanı olarak konfigüre edilir.
DHCP röle ajanı konumundaki bilgisayarlar kendi bölümlerindeki DHCP İsteklerini DHCP sunucuya aktarırlar. DHCP sunucu üzerinde subnetlerin herbiri için farklı adres aralıkları (scope) bulunur. DHCP sunucu kendisine bir röle ajan tarafından IP isteği iletilince bu ajanın adresine bakarak hangi IP adres aralığından adres vermesi gerektiğini bulur. O IP adres aralığında boş bir adresi varsa onu röle ajanına gönderir. Röle ajanı da IP adresi istekte bulunan bilgisayara aktarır. Ayrıntılı bilgi biraz aşağıda yer alıyor.
DHCP Röle Ajanı (Relay Agent) Kuralım
DHCP sunucu, bilgisayarlara IP adresi ve diğer parametreleri dağıtıyor. Peki, bu DHCP röle ajanı ne oluyor?
DHCP röle ajanının ne olduğunu ve ne işe yaradığını anlamak için aşağıdaki şekle göz atın.
Şekil: 6.14 DHCP röle ajanı
Bu şekilde İki bölümden oluşan bir bilgisayar ağı var. DHCP sunucu bölümlerden birisine kurulu durumda. DHCP1 den adres alma işlemi broad-cast tipindeki mesajlara dayandığı için sunucu kendi bölümüne IP adresi dağıtma işini düzgün yapıyor. Ama diğer bölüme adres dağıtamıyor, çünkü DHCP broadcast mesajları yönlendiriciden geçmiyor.
Diğer bölüme de DHCP sunucu ile adres dağıtmak istersek ne yapmalıyız? En kolay yanıt o bölüme de bir DHCP sunucu kurmak olabilir. Bu
82
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
yanıt, sorunu da çözer. Ama çeşitli nedenlerle o bölüme ayrı bir DHCP sunucu kurmak istemiyorsak, var olan sunucumuzun o bölüme de hizmet vermesini istiyorsak, o zaman o bölümde bir DHCP relay agent, yani DHCP röle ajanı oluşturuyoruz.
NT sunucu makinalardan birisine DHCP relay agent servisini yüklüyo-ruz. Bu makinaya diğer segmentte bulunan DHCP sunucunun adresini de veriyoruz.
DHCP röle ajanının da sabit bir IP adresi bulunmalıdır.
DHCP sunucuda ikinci bir DHCP adres havuzu tanımlıyoruz, ikinci havuz yalnızca diğer bölümden gelen isteklere yanıt verecektir.
Bu işlerden sonra ikinci bölümde DHCP istemci olarak tanımlanan bilgisayarlardan birisi IP adresi almak için mesaj yayınladığında DHCP röle ajanımız bu mesajları kapacak ve bağlı bulunduğu DHCP sunucuya aktaracaktır,
DHCP sunucu IP adresi isteğinin bir röle ajanından geldiğini görünce ajanın bulunduğu bölüm için tanımladığı havuza bakacak ve uygun bir adres varsa bu adresi röle ajanına iletecektir. Röle ajanı da adresi, sanki o bölümde bulunan bir DHCP sunucudan geliyormuş gibi istemciye gönderecektir.
DHCP röle ajanı ile DHCP sunucu arasındaki iletişim noktadan noktaya olduğu İçin yönlendiriciden kolayca geçer.
DHCP röle ajanı servisini de bütün servislerde olduğu gibi Control Pa-nel’de Network uygulamasının Services sayfasından yüklüyoruz. Bu servisi yükleyip de çıkmak istediğimiz zaman aşağıdaki gibi bir mesaj karşımıza çıkıyor ve bizden bir DHCP sunucunun adresinin girilip girilmeyeceğini soruyor.
Soruya Evet (Yes) yanıtını verirsek karşımıza aşağıdaki sayfa çıkıyor: —————————————————————————————– 83
TCP/IP
Şekil: 6.15 Network özelliklerinde “DHCP Relay” sayfasının yeri
Şekil; 6.17 DHCP Röle ajanının adresinin girilmesi
Bu sayfada DHCP Relay bölümüne tıklayıp DHCP sunucunun adresini eklememiz gerekiyor.
DHCP (Dynamic Host Configuration Protocol: Dinamik Bilgisayar Konfigürasyon Protokolü)
DHCP Veritabanının Yedeklenmesi ve yedekten yüklenmesi
DHCP veritabanı dosyaları \systemroot\SYSTEM32\DHCP\ dizininde saklanmaktadır. Bu dosyalar şu şekildedir:
DHCP.MDB DHCP veritabanı dosyası
DHCP.TMP DHCP sunucu çalışmakta iken geçici olarak tutulan
veritabanı bilgilerini içerir.
JET.LOG ve Veritabanında yapılan işlemlerin log dosyası. Eğer
bir terslik olursa JET*.LOG sunucu bu dosyalan kullanarak verileri kurtarmaya
çalışır.
SYSTEM.MDB Veritabanı hakkında bilgiler içerir.
DHCP veritabanı dosyalarının uzantısından anlayacağınız gibi bu dosyalar standart Access veritabanlarıdır.
DHCP veritabanı her altmış dakikada bir otomatik olarak yedeklenir. Yedek dosyaları \systemroot\SYSTEM32\DHCP\BACKUP\JET dizininde saklanır.
Eğer 60 dakikalık ilk değeri değiştirmek İsterseniz registry içindeki Bac-kuplnterval değerini değiştirmelisiniz. Bu parametre
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servi-ces\DHCPServer\Parameters
Altında yer alır. Bu registry altanahtarının bir kopyası \systemro-ot\SYSTEM32\DHCP\BACKUP dizininde DHCPCFG adı altında saklanır,
DHCP veritabanı otomatik olarak ya da elle yeniden yüklenebilir. Yeniden yüklemeyi aşağıdaki yöntemlerden birisini kullanarak yapabilirsiniz:
• DHCP sunucu servisini durdurup yeniden başlatın. Eğer DHCP sunucu servisi Veritabanının bozuk olduğunu saptarsa yedek kopyalardan otomatik olarak yeniden yükleme yapar.
TCP/IP
• RestoreFlag değerini l yapıp DHCP sunucu servisini yeniden başlatın. RestoreFlag parametresi registry’de aşağıdaki adreste bulunabilir:
HKEY_LOCAL_MACHINE\SYSTEM\CurrenControlSet\Servi-ces\DFlCPServer\Parameters
Veritabanı başarılı bir şekilde yedekten yüklenince bu değer otomatik olarak O yapılır.
• \systemroot\SYSTEM32\DHCP\BACKUP\JET dizininin içeriğini \systemroot\SYSTEM32\DHCP dizinine kopyalayıp DHCP sunucu servisini tekrar başlatın.
NT 4.0 DHCP veritabanını otomatik olarak kompakt eder. Ama çeşitli nedenlerle DHCP veritabının büyüklüğü aşın miktarda artmışsa ya da NT 3.51 kullanıyorsanız veritabanını sizin kompakt etmeniz gerekir. Bu amaçla NT içinde gelen JETPACK komutunu kullanabilirsiniz. Bunun için
• DHCP sunucu servisini kapatın.
• \systemroot\SYSTEM32\DHCP dizininde iken JETPACK komutunu çalıştırın. Komut şu şekilde yazılacaktır:
jetpack dhcp.mdb gecici.mdb
Bu komut sonucunda DHCP.MDB kompakt edilip gecici.MDB dosyasına kaydedilecek sonra da gecici.mdb dosyası DHCP.mdb dosyasına kopyalanıp gecici.mdb dosyası silinecektir.
• DHCP servisini tekrar çalıştırın. İlgili Komut: ipconfig.exe
86
WINS (Windows internet Name System: Internet İsim Sistemi)
WINS (WINDOWS INTERNET NAME SYSTEM: WINDOWS INTERNET İSİMLENDİRME _________HİZMETİ)__________
WINS servisi NetBIOS isimlerini IP adrese çevirmek için kullanılır. Güzel yanı isim-IP kayıtlarının elle girilmemesi, bu bilgilerin otomatik olarak kaydedilmesidir. WINS istemci olarak tanımlanan bilgisayarlar kendilerini WINS sunucuya “benim adım şudur, IP adresim de budur” şeklinde kaydettirirler.
Bu kayıtlar yapıldıktan sonra ismi bilinen bir bilgisayarın IP adresi bilinmiyorsa WINS sunucuya başvurulur. Eğer sorgulanan bilgisayarın WINS sunucuda kaydı varsa IP adresi gönderilir.
WINS işlemleri şöyle işler:
1) WINS ortamında bir WINS istemci her açıldığında kendi NetBIOS ismini ve IP adresini WINS sunucuya kaydettirir. Kayıt işlemi bilgisayarın üstlendiği rollerin her biri için yapılır. Yani, bir bilgisayarın sunucu (server) rolü varsa kendisini sunucu olarak kaydettirir. İstemci (work-station) rolü var ise kendisini istemci olarak kaydettirir.
Eğer kaydettirmek istediği isim WINS sunucunun veritabanında bulunuyorsa kayıt isteği onaylanmaz. Eğer böyle bir isim daha Önceden yoksa WINS sunucu bu isteği onaylandığını göstermek üzere bir mesaj gönderir. Bu mesajın içinde ismin hangi süreyle geçerli olduğu (TTL değeri) bilgisi de vardır.
NetBIOS isimleri kullanıcı tarafından verilen ve en çok 15 karakterlik bir kısım ile sistem tarafından bilgisayarın üstlendiği role göre verilen bir karakterden oluşur.
Aşağıda sistem tarafından verilen karakterler ve açıklamalarını görüyorsunuz:
TCP/IP
00h: Workstation servisi. Bir bilgisayarın bir başka bilgisayara istemci olarak bağlanabileceğini gösterir.
03h: Mesajcı (Messenger) servisi. O bilgisayarın mesaj alıp verebileceğini gösterir.
06h: RAS sunucu servisi
IFh: NetDDE servisi; yalnızca NetDDE etkin durumda ise kaydettirilir (örneğin, ağ üzerinden Hearts oyununu oynuyorsanız)
20h: Server servisi. Eğer bu bilgisayarda paylaşıma sunulan bir kaynak varsa (dosya/yazıcı paylaşımı açılmışsa)
21h: RAS istemci servisi BEh: Network Monitör ajanı BFh: Network Monitör programı
Kullanıcı ismi 03h: Messenger servisi. Bir kullanıcıya, ağ üzerinde nerede bulunursa bulunsun mesaj gönderilmesini sağlar.
IBh: Domain kontrolcüsü
IDh: Master Browser
Grup İsimleri:
Domain ismi 00h: Domain ismi
Ya da çalışma grubu ismi 00h
1Ch: PDC ve BDC’ler kaydettirir.
1Eh: Potential Browser olduğunu gösterir.
2) Bir WINS istemci bir diğer bilgisayarla iletişime geçmek istediğinde bilgisayarın IP adresini bulmak için broadcast yapmak yerine WINS sunucuya gidip o bilgisayarın IP adresini sorar.
3) Eğer WINS sunucu kendisine sorulan bilgisayarın isim/IP bilgisine sahipse IP adresini verir.
WINS (Windows Internet Name System: Internet İsim Sistemi)
4) WINS istemci yasal yollardan kapatılıyorsa WINS sunucuya kapatıldığını bildirir. Bu mesaj alındığında isim/IP bilgisi WINS veri-tabanında aktif değil şeklinde işaretlenir.
WINS’in yararları:
1) Sorgulama doğrudan WINS sunucu üzerinden yapılır.
2) WINS veritabanı her zaman günceldir.
3) LMHOSTS dosyasına gerek kalmaz. (“Bu da ne?” diyorsanız, biraz aşağıda açıklaması yapılacak)
4) WINS sunucu yardımı ile başka segmentlerdeki bilgisayarların IP adreslerini de bulabiliriz.
5) Ağ komşularında tüm domain çapında browsing olanağı sağlar. Yani, yalnızca kendi subnetimizi değil, tüm ağdaki bilgisayarları görebiliriz.
TCP/IP’nin her bölümünde olduğu gibi WINS kısmında da isim kaydı sonsuza kadar geçerli değildir, isim kaydının geçerli olduğu belli bir süre vardır. Bu süre bitmeden kaydın yenilenmesi gerekir.
Bütün WINS iletişimi 137 numaralı UDP portu üzerinden yönlendirilmiş (directed) datagramlar şeklinde gerçekleştirilir.
Eğer kaydettirilmek istenen isim WINS sunucuda bulunmakta ise WINS sunucu ismin sahibine halen ayakta olup olmadığını görmek için bir mesaj yollar. Bu mesaj 500 milisaniye aralıklarla üç kez gönderilir. Eğer ismin sahibi görünen bilgisayar bu mesajlara yanıt verirse WINS sunucu aynı ismi kaydettirmek isteyen istemciye olumsuz bir yanıt gönderir. Eğer ismin sahibi görünen bilgisayar yanıt vermezse yeni kayıt isteği kabul edilir.
WINS istemci, WINS sunucuyu bulmak için üç kez ARP mesajı yayınlar. Eğer üçünde de başarılı olamazsa isim kayıt isteğini, varsa, ikincil WINS sunucuya gönderir. Eğer İkinci WINS sunucu tanımlı değilse ya da bulunamıyorsa WINS istemci ismim kaydettirmek için broadcast yapar.
İstemci, NetBIOS ismini kullanmaya devam edebilmek için isim kaydını yenilemek zorundadır. Eğer istemci belirli bir süre sonuna kadar
89
TCP/IP
(tanımlanan TTL değeri kadar) isim kaydını yenilemezse WINS sunucu bir başka bilgisayarın aynı adla isim kaydettirme isteğini olumlu karşılayacaktır.
WINS istemci TTL değerinin sekizde biri bittiği zaman İsmini yenilemek amacıyla WINS sunucuya bir mesaj gönderecektir. Eğer bu mesajına karşılık alamazsa TTL süresinin yarısı dolana kadar her iki dakikada bir yenileme isteğini tekrarlayacaktır.
Sürenin yarısı dolduğunda halen isim kaydını yenileyememişse bu sefer isim yenileme isteğini varsa ikincil WINS sunucuya gönderecektir. Eğer ikincil WINS sunucu tanımlanmışsa yenileme isteğini geri kalan sürede her sekizde bir süre sonunda yapacaktır.
Eğer WINS sunucu ayakta ise İsim yenileme isteğine karşılık olarak olumlu bir yanıt verecek ve isim kaydını yenileyecektir.
WINS sunucu kurarken şunlara dikkat etmek gerekir:
1) Bir kurumsal ağda yalnızca bir WINS sunucu yeterli olacaktır. WINS iletişimi noktadan noktaya olduğu için yönlendiricilerden geçebilir.
2) İkinci bir WINS sunucuyu “fault tolerance” sağlamak için kullanabilirsiniz: Eğer WINS sunuculardan birisi ayakta değilse diğeri görevi devam ettirir.
3) Bir WINS sunucunun yanıtlayacağı WINS istekleri İçin bir sınır yoktur. Ama tipik olarak bir WINS sunucu dakikada yaklaşık 1500 isim kaydı isteğim ve 4500 isim sorgulama isteğini karşılayabilir.
4) Her 10.000 kullanıcı için bir asıl bir de yedek iki adet WINS sunucu kurulması öğütlenir.
5) Eğer WINS manager yardımı ile yapılan işlemlerin loğunun tutulmasını iptal ederseniz WINS işlemleri hızlanır. Ama bu durumda sistem göçtüğünde bilgilerin bozulma ya da kaybolma riski vardır.
WINS sunucu programı ancak bir NT sunucuya kurulabilir. WINS sunucunun IP konfigürasyonunun DHCP tarafından yapılması mümkünse de statik olarak girilmesi öğütlenir,
90
WINS (Windows Internet Name System: Internet İsim Sistemi)
WINS Sunucu Kurulumu
WINS sunucu servisi, tahmin edebileceğiniz gibi, Control Panel’de Network uygulamasının Services sayfasından eklenir.
Her servis yükleme işinden sonra olduğu gibi, bilgisayarı resetlemeniz gerekir.
Bilgisayar yeniden başlayınca Administrative Tools (Yönetim Araçları) menüsüne WINS Manager şeklinde bir şık eklenir. WINS sunucumuzu buradan yönetiriz.
Şekil: 7.1 WINS Manager ekranı
Bu arada ortamdaki diğer bilgisayarlara WINS sunucunun adresini girmek gerekir. Bunu nasıl yapıyoruz? Ya elle girerek ya da, çok daha iyisi, DHCP ile otomatik olarak dağıtıyoruz.
WINS sunucu kullanmanın en iyi yanı kayıt işleminin otomatik yapılmasıdır. Ama WINS istemci olamayacak makinalar, örneğin, UNIX makinaları, statik olarak WINS veritabanına kaydedilebilir.
Statik kayıt eklemek için WINS Manager açılıp Mappings menüsünden Static Mappings şıkkı seçilir.
91
TCP/IP
Karşımıza gelen kutuda Add Mappings tuşuna basılır. Burada bizden eklenecek kayıtın bilgisi istenir. Bu bilgiler bilgisayarın ismi, IP adresi ve kayıt cinsidir. Kayıt cinsi kısmında seçeneklerimiz şunlardır:
Unique: Normal bir isim ve IP adresi
Group: Grup adı ve IP adresi
Domain Name: NT Domain Adı
internet Group: Kullanıcı tarafından belirlenen kaynakların oluşturduğu
gruplar için (örneğin, kolayca ulaşım için yazıcıları gruplamak gibi)
Multihomed: Birden fazla IP adrese sahip bir makinayı göstermek için
kullanılır.
Şekil: 7.2 WINS veritabanına bir statik kayıt ekleme
WINS veritabanına otomatik olarak hangi İsimlerin kaydedildiğini görmek için Mappings menüsünden Sho\v Database şıkkını seçmek gerekir. Bunu seçtiğimizde karşımıza aşağıdakine benzer bir ekran görüntüsü gelir:
WINS (Windows Internet Name System: internet İsim Sistemi)
Şekil: 73 WINS Veritabanının görüntülenmesi
Bu şekilde MURAT4 için girilen kayıtlara bakalım. MURAT4 için tarn tamına üç adet kayıt var. Bu kayıtlar STUDENT6 bilgisayarının üstlendiği rollere karşılık geliyor. MURAT4[00h] kayıtı bilgisayarda workstation hizmetinin çalıştığını gösteriyor: Yani, bu bilgisayar başka makinalara bağlanıp onların kaynaklarından yararlanabilir.
MURAT4[03h] kayıtı bu bilgisayarda Messenger hizmetinin çalıştığını gösteriyor: Yani, bu bilgisayardan mesaj gönderilebilir, bu bilgisayar mesaj kabul edebilir.
MURAT4[20h] kayıtı bu bilgisayarda sunucu hizmetinin çalıştığını gösteriyor: Yani, başka bilgisayarlar bu bilgisayara bağlanıp kaynaklarını kullanabilirler.
WINS Vekil Ajan (Proxy Agent)
Eğer ortamda WINS istemci olamayacak bilgisayarlar bulunuyorsa WINS proxy agent kullanılabilir. Proxy, vekil demektir. WINS istemci olamayan bir bilgisayar isim kaydettirmek için broadcast yapıyorsa vekil ajan bu mesajı alır ve WINS sunucuya gönderir. Eğer WINS sunucuda bu isme rastlanırsa vekil ajan istemciye bir mesaj göndererek bu ismin kullanımda olduğunu bildirir. Ama o isim WINS sunucuda yoksa WINS veri-tabanına kaydedilmez.
93
TCP/IP
Eğer WINS İstemci olamayan bir bilgisayar bir isim/IP çözümlemesi yapmak isterse sorduğu İsim vekil ajan tarafından WINS sunucuya gönderilir. Eğer WINS sunucuda o isme rastlanırsa isim/IP bilgisi vekil ajana bildirilir, o da İstemciye bu bilgiyi aktarır.
Vekil Ajanı Ne Zaman Kurmak Gerekir?
WINS istemci olamayan bilgisayarların bulunduğu segmentlerde bir tane vekil ajan kurmak iyi olur, Bir subnette ikiden fazla vekil ajan kurulamaz. Vekil ajan WINS istemci olmalıdır ama kendisi aynı zamanda WINS sunucu olamaz.
Bir bilgisayarı vekil ajan yapmak için Registry içindeki
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Net BT\Parameters
kısmında EnableProxy parametresini l yapmak gerekir. Bu işlemden sonra bilgisayarı resetlemek de gerekir.
DHCP içinden WINS sunucu adresini DHCP Options şıkkından verebiliriz. Burada iki şey tanımlamak gerekir: İlk olarak WINS sunucu adresinin verilmesi gerekir (044 WINS/NBNS Servers şıkkı ile). İkinci olarak İstemcinin isim çözümleme yöntemi verilmelidir (046 WINS/NBT Node parametresi ile. Bu parametrenin değeri 0×8 yapılırsa istemci H-node şeklinde çalışır; yani isim-IP çözümlemesi için ilk önce WINS sunucuya bakılır, oradan bilgi alınamazsa broadcast yapılır.)
WINS Veritabanının Yedeklenmesi
WINS Veritabanının otomatik olarak yedeklenebilmesi için yedekleme dizininin belirtilmesi gerekir. Bu dizin belirtildikten sonra veritabanı 24 saatte bir otomatik olarak yedeklenir.
Yedekleme dizinini belirtmek için WINS Manager içinden Mappings menüsünden Back Up Database’i tıklayıp Select Backup Directory kutusunda yedekleme yapılacak dizinin adı girilmelidir.
Veritabanı ile birlikte WINS sunucu için Registry’de bulunan kon-figürasyon bilgileri de yedeklenmelidir. Bu bilgileri yedeklemek için Kayıt editörünü açıp
94
WINS (Windows Internet Name System: Internet İsim Sistemi)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WI
NS
anahtarını Save key şıkkı ile bir dosyada saklamak gerekir.
Eğer herhangi bir şekilde WINS veritabanı bozulmuş ise şunları yapabilirsiniz:
• WINS sunucu servisini durdurup tekrar başlatın. Yeniden başlama sırasında Veritabanının bozuk olduğu fark edilirse sunucu servisi otomatik olarak yedek dosyayı yükleyecektir.
• WINS Manager Mappings menüsünde Restore Database (Veritabanını yedekten yükle) şıkkını tıklayabilirsiniz. Bu durumda yedek dosyanın nerede bulunduğu sorulacaktır.
WINS veritabanı dosyalan şunlardan oluşur:
WINS.MDB: WINS veritabanı
WINSTMP.MDB: WINS’in yarattığı geçici bir veritabanı J50.LOG: Veritabanında yapılan işlemlerin log dosyası J50.CHK: Kontrol dosyası
NT 40 WINS veritabanını otomatik olarak kompakt eder ama isterseniz elle de kompakt edebilirsiniz. Eğer bu işlemi elle yapmak isterseniz:.
1) WINS sunucu servisini durdurun.
2) \systemroot\SYSTEM32\WINS dizininde JETPACK komutunu verin. Bu komutun verilişi DHCP Veritabanının kompakt edilmesinde anlatılmıştı.
3) WINS sunucu servisini yeniden çalıştırın.
LMHOSTS Dosyası
WINS mekanizması daha keşfedilmeden önce bir NetBIOS ismini IP adresine çevirmek için ne kullanılırdı?
Bu soruya verilecek yanıt “broadcast” olabilir: “Bu İsme sahip bilgisayar bana IP adresini söylesin” şeklinde bir mesaj oluştururuz, bu mesajı da
95
TCP/IP
herkese yollarız, yani, broadcast yaparız. Eğer ağımızda böyle bir bilgisayar varsa bize IP adresini bildirir.
Bir adresi broadcast yardımı ile bulmanın iki temel sakıncası var: Birincisi yayınladığımız mesaj ağdaki herkesi gereksiz yere meşgul eder. İkincisi kendi ağımızda bulunmayan, bir yönlendirici (router) ile bağlandığımız başka bir ağda bulunan bilgisayarın adresini broadcast mesajları ile bulamayız. Çünkü broadcast mesajlar yönlendiriciden geçemez.
Ne yapmalı?
Bu sorunun en basit çözümü şöyle olabilir: Bilgisayarların NetBIOS isimleri ile IP adreslerini içeren bir metin dosyası hazırlarız. Bir bilgisayarın ismini biliyor da IP adresini bilmiyorsak bu dosyaya bakarız, dosyada o bilgisayarın ismine rastlarsak ismin karşısındaki IP adresini kullanabiliriz.
Microsoft, Windows NT’den önceki ağ işletim sistemi olan LAN Manager’da bu mekanizmayı kullanmış. Bu iş için kullanılan dosyanın adı ise LMHOSTS; LAN Manager Bilgisayarları anlamına geliyor. Aynı dosya şu anda Microsoft’un değişik ortamlarında (Windows 95, Windows NT) aynı iş için hala kullanılabilir. Bilgisayarınıza TCP/IP’yi yüklediğinizde örnek bir dosya LMHOSTS.SAM adıyla otomatik olarak oluşturulur.
Şimdi örnek bir LMHOSTS dosyasına bakalım:
# Bu dosyada kurumumuzdaki bilgisayarların isimleri ve IP adresleri saklıdır. Bu bilgiler TCP/IP tarafından kullanılır.
195.194.78.56 Satis
202.23.78.67 Muhasebe
195.194.78.89 Anamakina #PRE
201.189.10.42 Ahmet #PRE
#DOM:ANKARA
LMHOSTS dosyasında kullanılan bilgisayar isimleri NetBIOS İsimleridir ve en çok 15 karakter olabilirler.
Yine bu dosyada, bazı kayıtların yanında bulunan #PRE ve #DOM gibi ifadeler dikkatinizi çekmiştir.
96
WINS (Windows Internet Name System: Internet İsim Sistemi)
Bu fazladan ifadeler LMHOSTS dosyasındaki kayıtları düzenliyor, Örneğin, bir bilgisayar isminin yanında #DOM ifadesi varsa o bilgisayarın bir NT yönetim alanı (domain’i) kontrolcüsü olduğunu anlıyoruz.
#PKE ifadesi ise bu kayıtın bilgisayar açılır açılmaz NetBIOS isim kaşesine yüklenmesini sağlıyor. Normalde bir bilgisayar ismine karşılık olarak IP adresi istediğimizde LMHOSTS dosyasına bakarız, bir kayıt bulursak hem onu kullanırız, hem de NetBIOS isim kaşesine atarız. Böylece bir daha o bilgisayara erişmemiz gerekirse adresini kaşeden alabiliriz. #PRE ifadesi ile işaretlenen kayıtlar ise başlangıç anında kaşeye aktarılır; böylece bir daha LMHOSTS dosyasını araştırmamıza gerek kalmaz.
#PRE ifadesi ile İşaretlenen kayıtlar bilgisayarın başlamasıyla birlikte ya da nbtstat -R komutuyla kaşeye yüklenir.
LMHOSTS dosyasında DOM ve PRE dışında başka takılar da kullanılabilir. Ama LMHOSTS dosyası oluşturmak zaten hamaliye bir iş olduğu için diğer takılarla da hiç ilgilenmemek gerekir.
97
DNS (Domain Name System: Domain İsim Sistemi)
DNS (DOMAIN NAME
SYSTEM: DOMAIN İSİM
SİSTEMİ)
DNS, 256 karaktere kadar büyüyebilen host isimlerini IP’ye çevirmek için kullanılan bir sistemdir. Host ismi, tümüyle tanımlanmış isim (fully qualified name) olarak da bilinir ve hem bilgisayarın ismini hem de bilgisayarın bulunduğu internet domainini gösterir. Örneğin, murat.ana-dolu.com.tr ismi. Bu isimde “anadolu.com.tr” ifadesi internet domaini-nİ, “murat” ifadesi ise bu domaindeki tek bir makinayı belirtir.
Şu anda inanılması güç ama 1984 yılına kadar DNS diye bir şey yoktu, “Peki, o yıla kadar host ismi-IP adresi çözümlemesi nasıl yapılıyordu?” diye sorabilirsiniz. Bu İş İçin HOSTS adında bir metin dosyası (text dosyası) kullanılıyordu. Internetteki bilgisayarların isimleri ve IP adresleri bu dosyaya elle kaydediliyordu. Internet’teki bilgisayarların herbirinde bu dosyanın bir kopyası bulunmaktaydı. Bir bilgisayar bir başka bilgisayara ulaşmak istediğinde bu dosyayı inceliyor, eğer dosyada o bilgisayarın kaydı bulunuyorsa IP adresini alıyor ve iletişime geçiyordu.
Bu sistemin iyi işleyebilmesi için HOSTS dosyası içeriğinin hep güncel kalması gerekiyordu. Bunu sağlamak için de dosyanın aslının saklandığı ABD’deki Stanford Üniversitesine belli aralıklarla bağlanarak kopyalama yapılıyordu.
Ama Internetteki bilgisayarların sayısı arttıkça hem bu dosyanın büyüklüğü olağanüstü boyutlara ulaşmaya başladı, hem de Internetteki bilgisayarların dosyayı kopyalamak için yaptığı bağlantı Stanford’daki bilgisayarları kilitlemeye başladı,
Tek bir HOSTS dosyası kullanmanın bir başka kötülüğü de şuydu: Bütün bilgisayarlar aynı düzeyde yer aldığı için bir bilgisayar isminin bütün Internette bir eşinin daha bulunmamasını sağlamak gerekiyordu.
TCP/IP
Bu sorunlar yüzünden internet yetkili organları 1984 yılında DNS’i ürettiler. DNS hem bilgisayar veritabanını dağıtık bir yapıya sokuyor, hem de bilgisayarlar arasında hiyerarşik bir yapı kurulmasını sağlıyordu.
DNS’de dağıtık veritabanı yapısı şöyle sağlanıyordu: Bilgisayarlar bulundukları yerlere, ait oldukları kurumlara göre sınıflandırılıyordu. Örneğin, Türkiye’deki bilgisayarların listesini (.tr domaini} Türkiye’den sorumlu bir DNS sunucu makina tutuyordu. Ya da ABD’deki ticari kuruluşların bilgisayarlarının listesini (.com domaini) ABD’deki ticari kurumlardan sorumlu DNS sunucu makina tutuyordu. Böylece internet ortamındaki bütün bilgisayarların bilgisinin tek bir yerde tutulması zorunluluğu kalmıyordu.
DNS’in Yapısı
DNS sistemi isim sunucuları ve çözümleyicilerinden oluşur, isim sunucuları olarak düzenlenen bilgisayarlar host isimlerine karşılık gelen IP adresi bilgilerini tutarlar. Çözümleyiciler ise DNS istemcilerdir. DNS istemcilerde, DNS sunucu ya da sunucuların adresleri bulunur.
Bir DNS istemci bir bilgisayarın ismine karşılık IP adresini bulmak istediği zaman isim sunucuya başvurur. İsim sunucu, yani DNS sunucu da eğer kendi veritabanında öyle bir İsim varsa, bu İsme karşılık gelen IP adresini İstemciye gönderir.
Bu işlem WINS servisindeki işleme benziyor değil mi? Ama arada büyük bir fark var: WINS veritabanına isim/IP eşlemesi otomatik olarak kaydedilirken DNS veritabanına kayıtların elle, tek tek girilmesi gerekir.
internet adresleri ilk önce ülkelere göre ayrılır. Adreslerin sonundaki tr, de, uk gibi ifadeler adresin bulunduğu ülkeyi gösterir. Örneğin, tr Türkiye’yi, de Almanya’yı, uk İngiltere’yi gösterir, ABD adresleri için bir ülke takısı kullanılmaz. Eğer bir adresin sonunda ülke takısı yoksa o adresin ABD’de bulunduğu varsayılır. Kıskandınız mı? Hiç kıskanmayın: Internet’i, DNS’i ve benzerlerini biz yaratsaydık o zaman aynı şey Türkiye için geçerli olurdu.
internet adresleri ülkelere ayrıldıktan sonra com, edu, gov gibi daha alt bölümlere ayrılır. Bu ifadeler DNS’de üst düzey (top-level) domainlere karşılık gelir. Üst düzey domainler aşağıdaki gibidir:
100
DNS (Domain Name System: Domain İsim Sistemi)
Com: Ticari kuruluşları gösterir.
Edu: Eğitim kurumlarını gösterir.
Org: Ticari olmayan, hükümete de bağlı bulunmayan kurumları gösterir.
Net: internet omurgası işlevini üstlenen ağları gösterir.
Gov: Hükümete bağlı kurumları gösterir.
Mil: Askeri kurumları gösterir.
Num: Telefon numaralarını bulabileceğiniz yerleri gösterir.
Arpa: Ters DNS sorgulaması yapılabilecek yerleri gösterir.
Yetki Bölgesi (Zone of Authority)
Yetki bölgesi DNS sisteminde belli bir adres aralığıdır. Örneğin, yukarda verdiğimiz örnekte murat.anadolu.com.tr bir host ismidir. Bu host ismindeki domain kısmı, anadolu.com.tr, bir yetki bölgesini gösterir.
Her yetki bölgesinden sorumlu bir isim sunucusu, yani DNS sunucusu vardır. DNS sunucu yetkili olduğu bölgedeki bilgisayarların isimlerini ve IP adreslerini İçerir. Aynı zamanda bu bölgeye dair sorgulamalara da yanıt verir.
DNS sunucunun yetki bölgesi en az bir tane domain içerir. Bu domain bölgenin kök domaini olarak adlandırılır. Yetki bölgesinde kök domainin altında bir veya birden fazla alt domain içerilebilir. Bir DNS sunucu birden fazla bölgeyi yönetebilir.
DNS sunucu çeşitleri
İnsanlar gibi DNS sunucular da çeşit çeşittir. Çalışmalarına göre DNS sunucular üçe ayrılır:
Birincil İsim Sunucu (Primary Name Server): Bölgesiyle ilgili bilgileri kendisinde bulunan bölge dosyasından (zone file) elde eder. Bu dosyaya bilgiler elle, tek tek girilir.
İkincil İsim Sunucu (Secondary Name Server): Bölgesiyle ilgili bilgileri bağlı bulunduğu bir DNS server’dan alır, Yani, bilgileri bu sunucuya elle girmek gerekmez.
Yalnızca-Kaşeleyen İsim Sunucu (Caching-Only Name Server):
—————————————————————————————– 101
TCP/IP
Kendisinde bölge bilgilerinin tutulduğu bir dosya bulunmaz. Bağlı bulunduğu sunucuya sorarak topladığı bilgileri hem istemcilere ulaştırır, hem de kaşesine koyar.
Yukardaki DNS sunuculara “birincil DNS sunucu”, “ikincil DNS sunucu” ve “yalnızca-kaşeleyen DNS sunucu” da denilir. Biz de aşağıda bu terimleri kullanacağız.
Birincil DNS Sunucu
Birincil DNS sunucu yetkili olduğu bölge ile ilgili bilgileri kendi üzerinde bulunan bölge dosyasından (zone file) alır demiştik. Bu bilgilerin elle de girildiğini söylemiştik. O bölgede bulunan bilgisayarlara da DNS sunucu adresi olarak Birincil DNS sunucunun adresi verilir. Böylece isim/IP çözümlemesi yapan İstemci bilgisayarlar Birincil DNS sunucuya başvururlar, isme karşılık IP adresi bilgisini ondan alırlar.
Birincil DNS sunucu veritabanı
Şekil: 8.1 Birincil DNS sunucu kullanan bir ağ
İkincil DNS Sunucu
Eğer ağımızda çok sayıda bilgisayar varsa bütün bilgisayarların tek bir DNS sunucuya gitmeleri sonucunda isim/IP çözümleme performansımız düşecektir. Bu durumda ikinci bir DNS sunucu kurup bilgileri ona da tek tek elle gireriz ve bilgisayarların yarısında DNS sunucu olarak bu bilgisayarı gösteririz. Ama ağımızda çok sayıda bilgisayar var demiştik, değil mi? Bu durumda ikinci DNS sunucuya bilgileri girmek büyük bir yük getirecektir. Üstelik işlerimiz ilk girişle bitmeyecek, bir de her iki DNS sunucu-
102
DNS (Domain Name System: Domain İsim Sistemi)
nun bilgilerinin güncel kalmasını sağlamamız gerekecektir. İşte ikincil DNS sunucu burada imdadımıza yetişir.
Yine yukardaki çok bilgisayarlı ağı düşünelim. Şekle bakalım:
Şekil: 8.2 Birincil ve İkincil DNS sunucu kullanan bir ağ
Bu ağda ikinci bir DNS sunucu kurarız, ama bu sunucuyu ikincil DNS sunucu olarak kurarız. Bu durumda ikincil DNS sunucuya hiçbir bilgi girmemize gerek kalmaz: İkincil DNS sunucu, bölgesindeki bilgisayarların bilgisini bağlı bulunduğu bir DNS sunucudan alır. Bağlı bulunduğu DNS sunucu bir Birincil DNS Sunucu olabileceği gibi başka bir İkincil DNS Sunucu da olabilir.
İkincil DNS sunucunun bilgilerini bağlı bulunduğu DNS sunucudan alması “bölge bilgisi aktarımı” (zone transfer) olarak adlandırılır.
ikincil DNS sunucu hem yük dağıtımı yapmamızı hem de bir arıza durumunda sistemin ayakta kalmasını (isim/IP çözümlemesi yapılabilmesini) sağlar.
Her bölgenin bilgisi ayrı dosyalarda saklanır. Bu yüzden birincil, ikincil gibi ayrımlar bölge temelinde yapılır. Yani, bir DNS sunucu bir bölge İçin birincil DNS sunucu iken, başka bir bölge için ikincil DNS sunucu olabilir.
103
TCP/IP
Yalnızca-Kaşeleyen DNS Sunucu (Caching-Only DNS Server)
İkincil DNS sunucu tek bir lokasyonda, hızlı bir ağ üzerinden birbirine bağlanmış çok sayıda bilgisayarın bulunduğu kurumlar için oldukça iyi bir çözüm, Peki, kurumumuz çok sayıda bilgisayarın bulunduğu iki lokasyondan oluşursa (örneğin, İstanbul’da merkezi, Ankara’da şubesi bulunan büyük bir şirket düşünün) ne gibi sorunlar çıkabilir?
Birincil
DNS
Sunucu
Şekil: 8.3 Yalnızca kaşeleyen sunucu kullanımı
Eğer iki lokasyon arasında yavaş bir iletişim hattı varsa birincil ile ikincil DNS sunucular arasındaki bölge bilgileri aktarımı büyük bir trafik üretecek, bu da yavaş hattı yükleyecektir: Yavaş hat üzerinde sıkışıklığa neden olacaktır.
Peki nedir bunun çözümü?
Bir çözüm şu olabilir: ikinci lokasyonda DNS sunucu bulunmaz. İkinci lokasyondaki bilgisayarlar DNS sunucu olarak birincil DNS sunucuyu görürler. İsirn/IP çözümlemesi yapmak isteyen bir bilgisayar aradaki yavaş hatta çıkar, birincil DNS sunucuya ulaşıp sorgulamasını yapar. Ama eğer isim/IP çözümlemesi yapmak için bütün bilgisayar sürekli olarak aradaki yavaş hatta çıkarlarsa yavaş hat yine yüklenecektir,
İkinci çözüm burada bir yalnızca-kaşeleyen (caching-only) DNS sunucu kurmaktır. Yalnızca-kaşeleyen sunucuya bilgiler elle girilmez, bilgileri bir
104
DNS (Domain Name System: Domain İsim Sistemi)
DNS sunucudan topluca da almaz. Peki, ne yapar bu yalnızca-kaşeleyen DNS sunucu? Anlatalım.
İkinci lokasyondaki bilgisayarlara DNS sunucu olarak kendi lokasyon-larındaki yalnızca-kaşeleyen DNS sunucunun adresi verilir.
Yalnızca-kaşeleyen DNS sunucuda birinci lokasyondaki birincil ya da İkincil DNS sunucunun adresi vardır,
Bir bilgisayar isim/IP çözümlemesi yapacağı zaman bu yalnızca-kaşeleyen DNS sunucuya gider. Yalnızca-kaşeleyen DNS sunucuda bir bilgi var mıdır? Yoktur. O zaman yalnızca-kaşeleyen DNS sunucu aradaki o yavaş hatta çıkar, bağlı bulunduğu DNS sunucuya gider, sorgulamasını yapar, aldığı yanıtı da soru soran kendi lokasyonundaki bilgisayara iletir.
“iyi de, ne karımız oldu?” diye sorabilirsiniz? Biz yavaş hatta çıkmalayım derken yine çıkmak zorunda kaldık. Fark şu: Bu şekilde elde edilen bilgi aynı zamanda bir DNS kaşesinde saklandı. Eğer aynı bilgiye belli bir zaman diliminde İkinci bir bilgisayar daha erişmek isterse artık yavaş hatta çıkmayacağız, elimizdeki bilgiyi kullanacağız.
Tabii, burada da şöyle bir sakınca çıkıyor: Eğer yalnızca-kaşeleyen DNS sunucunun elinde tuttuğu bilgi eski kalmışsa ne olacak? Yani, yalnızca-kaşeleyen DNS sunucu bir İsim/IP eşlemesi bilgisine sahip, ama o bilgi değişti, artık o bilgisayar ismine karşılık başka bir IP adresi var. Bu durumda bu olacak? Yalnızca-kaşeleyen sunucu kaşe zamanı geçene kadar sorgulama yapanlara yanlış bilgi verecek. Eeee, her güzelin bir kusuru var. Olacak o kadar.
Ters DNS Sorgulaması
DNS sunucu hep isim/IP çözümlemesini yapmaz. Eğer uygun bir şekilde kurulursa IP/isim çözümlemesini de yapabilir. Yani, bir DNS sunucuya IP adresi verip, karşılığında isim de alabiliriz. Buna ters sorgulama (inverse query) denilir.
Ters sorgulamayı kolaylaştırmak için in-addr.arpa adında özel bir domain yaratılır. Bu domainde de isim/IP eşlemeleri bulunur ama IP adresleri soldan sağa doğru, isimler ise sağdan sola doğru özelleştikleri için bu domaindeki adreslerin oktetleri tersten yazılır.
105
TCP/IP
In-addr.arpa domaini yaratıldıktan sonra işaretçi kayıtları (pointer records) denilen kayıtlar bu domain’e eklenir. Örneğin, 195.142.78.98 adresine karşılık gelen bilgisayar ismini bulmak için DNS sunucuya 98.78.142.195.in-addr.arpa kaydı sorulur.
DNS Dosyaları
Zone.dns veritabaru dosyasıdır. Domaindeki bilgisayarların kayıtlarını içerir. Genelde bu ad zone ismine .dns ifadesi eklenilerek oluşturulur. Örneğin, anadolu.com zone’unun kayıtları anadolu.com.dns dosyasında saklanır.
Cache.dns: Kaşe dosyası. Root domaini oluşturan bilgisayarların adreslerini ve herhangi bir şekilde elde edilmiş diğer adresleri içerir..
Boot dosyası: DNS sunucunun başlatılması, konfigüre edilmesi için kullanılır. NT’nin güzel bir DNS yönetici programı olduğu için biz bütün konfigürasyonu bu program ile yaparız; boot dosyasına işimiz düşmez. Onu Unix’ciler düşünsünler.
DNS Hizmetinin Kuruluşu
Windows NT’de 4.0 versiyonuna kadar bir DNS hizmeti yoktu. DNS hizmetinden yararlanmak için başka firmaların NT üzerinde çalışan DNS programlarını almak gerekiyordu.
NT 4.0la birlikte işler değişti: Microsoft, NT’nin içine gayet güzel bir DNS hizmet programı yerleştirdi.
Şimdi anadolu.com.tr gibi bir domain ismine sahip bir işletmenin DNS sunucusunu oluşturarak DNS hizmetinin kurulmasını ve düzenlenmesini görelim. Bu domainde C sınıfı adreslerin kullanıldığını varsayıyoruz, C sınıfı adresimiz 195.194.34.0 olsun. Yani bu domaindeki adresler 195.194.34.1 ile 195.194.34.254 arasında yer alacaklar.
DNS hizmetini yüklemeden önce TCP/IP özelliklerinden DNS sayfasına gidip domain ismi alanına DNS domain ismini girmemizde yarar var. Bildiğiniz gibi buraya girilen domain isminin NT domain’i ile bir İlgisi yok.
106
DNS (Domain Name System: Domain İsim Sistemi)
DNS hizmeti de, diğer ağ hizmetleri gibi Denetim Masasındaki (Control Panel) Ağ (Network) uygulamasından yüklenir.
Bütün hizmetlerde olduğu gibi DNS’i yükleyince de sistemi yeniden başlatmanız gerekir.
Sistem açılınca Yönetim Araçları menüsüne DNS Yöneticisi (DNS Manager) şeklinde bir şık eklenir. DNS hizmeti buradan düzenlenir.
107
TCP/IP
Şekil: 8.5 DNS Manager ekranı
Yukardaki şekilde gördüğünüz gibi ilk başta hiçbir DNS sunucu bulunmuyor. DNS sunucu eklemek için sol üstte görülen DNS menüsünden “New Server” şıkkından ekleme yapıyoruz. DNS sunucu eklerken bilgisayarın İsmini, IP adresini ya da bulunduğumuz bilgisayar DNS sunucu ise 127.0.0.1 adresini verebiliriz.
Şekil: 8,6 DNS Manager programına bir DNS sunucu eklemek
Şimdi bu sunucunun altına yetkili olduğumuz bir bölge (zone) yaratalım. Bunun için eklediğimiz sunucu üzerinde iken, DNS menüsünden Yeni
108
DNS (Domain Name System: Domain İsim Sistemi)
Bölge (New Zone) şıkkını tıklıyoruz. Sunucumuzu birincil ya da ikincil sunucu olarak seçtiğimizi göstermek için Birincil (Primary) ya da İkincil (Secondary) şıklarından birisini tıklamamız gerekiyor.
Biz yeni bir kurulum yaptığımız için Birincil’i seçeceğiz. Birincil’i seçtiğimizde karşımıza Bölge İsmi (Zone Name) ve Bölge Dosyası İsminin (Zone File) sorulduğu bir kutu gelecek.
Şekil: 8.7 Bir yetki bölgesi girmek
Bu kutuda bölge ismini girdikten sonra TAB tuşuna basarsanız bölge bilgilerinin tutulduğu dosya için otomatik olarak bir öneri üretilecektir. Örneğin, anadolu.com.tr’ye karşılık olarak an.adolu.com.tr.dns gibi.
Bu bilgileri girdikten sonra işlemi tamamlamak için Finish tuşuna basarız. Artık bir DNS yetki bölgemiz var. Bu bölgeye otomatik olarak girilen kayıtlar da var.
109
TCP/IP
Şekil: 8.8 Yeni yaratılan bölgedeki kendiliğinden yaratılmış kayıtlar
Şekilde üç kaydın kendiliğinden yaratıldığını görüyorsunuz. Kayıtların tip (type) alanlarında NS, SOA ve A ifadelerini görüyorsunuz.
NS, bu satırdaki kaydın İsim Çözümleyici (Name Server) bilgisayara ait olduğunu gösteriyor. Bölgemizdeki isim çözümleyici bilgisayarın adı murat4′tür.
SOA ise Yetki Bölgesi Başlangıcı (Start Of Authority) anlamına geliyor ve bu DNS kuruluşu ile ilgili bilgiler içeriyor. Örneğin, kaydın sonunda yer alan “administrator” ifadesi bu bölgeden sorumlu kişinin adını içeriyor (administrator).
A kaydı ise isim çözümleyici bilgisayarın, yani DNS sunucu bilgisayarın IP adresini veriyor.
Ters sorgulama yapacaksak bu aşamada ters sorgulama bölgesini (reverse look-up zone) de yaratmalıyız. Bunu da yine DNS|New Zone şıkkından yapıyoruz. Yaratacağımız bölge yine birincil olacak. Bölgenin ismi ise 1.107.195.in-addr.arpa şeklinde olacak. Bu ismin ilk kısmı bir IP adres bölgesine karşılık geliyor. İkinci kısmı olan .in-addr.arpa ise her ters sorgulama bölgesinin isminde bulunacak bir ifade.
Ters sorgulama yapmak için oluşturduğumuz alanın isminde IP adres
110
DNS (Domain Name System: Domain İsim Sistemi)
kısmına biraz daha dikkatle bakalım. Bu adres tersinden yazılmış ve içinde yalnızca üç oktet var. Ters yazmamızın nedeni ters sorgulama yapmamız. Girdiğimiz adres bir C sınıfı adresi olduğu için de üç oktet kullandık Böylece sonuncu okteti ne olursa olsun bize 195.107.1 ile başlayan bir bir adres sorulduğu zaman bu adrese karşılık gelen ismi sorgulaya-bileceğiz. Şimdi DNS sunucumuz şöyle görünecek:
DNS sunucumuzun kuruluşu bu kadar. Şimdi girdiğimiz bölgeyi düzenlemeye geldi sıra. Yani, bilgilerin elle tek tek girilmesine. Anadolu.com.tr bölgesinde bulunan satis ismindeki bilgisayarın bilgisini DNS sunucuya girelim. Bunun için domain’imizi tıklıyoruz, farenin sağ tuşuna basıp New Record (Yeni Kayıt) şıkkını seçiyoruz. Bize hemen gireceğimiz kayıtın tipi (çeşitini) soruluyor.
111
TCP/IP
Şekil: 8.10 DNS sunucuya yeni bir kayıt ekleme
Tip olarak A Record’unu seçelim. Bunun ne demek olduğunu göreceğiz. Şimdilik sıradan kayıtları A tipinde girdiğimizi bilin yeter.
Gördüğünüz gibi Domain kısmında anadolu.com.tr yazıyor ve bizim tarafımızdan değiştirilemiyor. Host Name (Host ismi) kısmına “satis” yazalım. Host IP Address kısmına ise satis adındaki bilgisayarın IP adresini yazacağız, Örneğin, 195.107.1.45 adresini girelim.
IP adresinin girildiği kutunun altında “Create Associated Pointer Record” (İlişkili İşaretçi Kayıtım Yarat) şeklinde bir ifade ve bir checkbox görüyorsunuz. Bu kutu işaretli ise girdiğiniz isim-IP adresi bilgisine karşılık olarak ters sorgulama bölgesinde bir kayıt otomatik olarak yaratılacaktır. Eğer ters sorgulama için bir bölge yaratılmamışsa ve bu kutu işaretli bırakılırsa ters sorgulama kaydı yaratılamayacaktır.
Son olarak OK tuşuna basalım, kaydımızı girelim. Sonra da girdiğimiz kayıt hem anadolu.com.tr domain’inde, hem de ters sorgulama bölgesinde nasıl görünüyor bakalım.
112
DNS (Domain Name System: Domain İsim Sistemi)
Şekil: 8.11 Yeni girilen kaydın görüntülenmesi
Şekil: 8.12 Yeni girilen kaydın ters sorgulama bölgesinde görüntülenmesi
Gördüğünüz gibi şekil 8.11′de satis için isim, kayıt tipi ve IP adresinden oluşan bir kayıt var. Şekil 8.12′de de ise kaydın tipi PTR (pointer, işaretçi) olarak verilmiş.
Kayıt tipi olarak “A” girmiştik ve açıklayacağımızı söylemiştik. Şimdi bunu yapalım:
113
TCP/IP
A kaydı normal, dört oktetlik bir IP adresine karşılık geliyor. Buna normal dediğimize göre bir de anormal IP adresi olacak, değil mi? Evet, böyle anormal bir IP adresi var: DNS’de AAAA olarak gösteriliyor. Nedir bu AAAA, açıklayalım.
Bildiğimiz gibi kullanmakta olduğumuz IP adresleme şeması 32 bitten ya da 4 oktetten oluşuyor. Bu şema ile 4 milyar adres tanımlanabileceğini ama bundan çok daha az sayıda adres tanımlandıktan sonra bu şemanın yetersiz kaldığını daha önce söylemiştik.
Internetteki adres yetersizliği sorununu çözmek İçin yeni bir adresleme şeması öneriliyor. Bu şemadaki adreslere IP version 6 (IPv6) ya da IP next generation (yeni kuşak IP) deniyor. Şu anda kullanmakta olduğumuz IP şeması IP version 4 olarak adlandırılıyordu.
IPv6′da dört oktet yerine 16 oktet kullanılıyor, dolayısıyla 2 kadar değişik IP adresi tanımlanabiliyor.
IPv6 dört kat fazla oktetten oluştuğu için bu tür adresler de DNS’de AAAA olarak gösteriliyor.
DNS’de kayıt tanımlarken Record Type (Kayıt Tipi) kısmında A ve AAAA dışında başka seçenekler de var. Bunların en önemlisi MX kayıtı.
MX, Posta İletişimi (Mail Exchange) anlamına geliyor ve Posta Sunucuları göstermek İçin kullanılıyor,
Örneğin, anadolu.com.tr domainimizde bir posta sunucusu (mail server) var diyelim. Bu sunucunun ilk görevi kurum içindeki elektronik posta haberleşmesini sağlamak. İkinci görevi İse kurum içindeki kullanıcıların kurum dışındaki kullanıcılara e-posta göndermesini, kurum dışından gelen e-postaların da içerdeki kullanıcılara ulaşmasını sağlamak. Bunu yapabilmek için kurum içindeki çok sayıda kullanıcımıza gönderilen postaların ilk önce posta sunucumuza ulaşması gerekli. Örneğin, dışardan birisi ke-maly@anadolu.com.tr kullanıcısına bir mesaj gönderdiğinde bu mesaj anadolu.com.tr domaininde bulunan bir posta sunucusuna ulaşmalı. Bu amaçla da posta sunucusunun bir yerlerde tanımlanmış olması gerekiyor.
Bir yerlerde diyoruz ama bu yerin tabii ki bir DNS sunucu olması gerekiyor. DNS sunucuda girilen kaydın bir posta sunucusu olduğunu göstermek için de tipini MX olarak veriyoruz.
114
DNS (Domain Name System: Domain İsim Sistemi)
DNS sunucumuza bir MX kayıtı girelim. Posta sunucumuzun adı ne olsun? POSTA olsun.
Şekil: 8.13 DNS sunucuya bir MX kaydının girilmesi
Gördüğünüz gibi kayıt tipi olarak MX’i seçtiğimizde Mail Exclıange Ser-ver DNS Name (Posta İletişimi Sunucusu DNS İsmi) kutusuna posta.ana-dolu.com.tr bilgisini girdik. Host Name (Optional) alanını boş bıraktık. Bu şekilde @ işaretinden sonra anadolu.com.tr ifadesine sahip olan bütün e-posta adresleri için posta.anadolu.com.tr adındaki bilgisayara gidilecek.
Eğer Host Name (Optional) kısmına SATIŞ gibi bir isim girseydik yalnızca @ işaretinden sonra satis.anadolu.com.tr ifadesine sahip e-posta adresleri İçin posta.anadolu.com.tr bilgisayarına gidilecekti,
Yukardaki şekilde bir de Preference Number (Tercih Sırası) şeklinde bir alan görüyorsunuz. Bu ne demek oluyor?
Bir domainde birden fazla posta sunucusu bulunabilir. Bu domaine ulaşması gereken bir posta olduğu zaman ilkönce hangi posta sunucusuna gideceğimizi tercih sırasına girilen değer belirler.
DNS sunucuda aynı domain için birden fazla posta sunucusu tanımlan-mışsa ilkönce tercih sırası kınımda düşük değer girilen posta sunucu tercih edilir. Eğer o sunucuya ulaşılamıyorsa o zaman diğer sunucular denenir.
115
TCP/IP
Bu MX kaydı hangi DNS sunucuda tanımlı olacak? Biz kendi kurum İçindeki DNS sunucumuza girdik bu kaydı. Ama internet kullanıcılarının bundan haberi yok: Onlar DNS sunucu olarak başka sunucuları görüyorlar. O zaman bu MX kayıtı bir yerde daha tanımlı olacak. Orası da bizim internet hizmeti aldığımız firmanın (ISP’nin) DNS sunucusu.
A kaydını gördük, AAAA kayıtını gördük, MX kaydını da gördük. DNS sunucuda başka ne tip kayıtlar tanımlayabiliriz? Eğer Record Type listesine bakarsanız girilebilecek çok sayıda İfade görürsünüz. Ama bunlardan bizim için en anlamlı olanı CNAME (Canonical Name, kanonik isim) tanımı.
CNAME kaydı, aynı IP’ye karşılık gelen birden fazla isim söz konusu ise kullanılıyor. Şimdi bir örnekle açıklayalım.
Anadolu.com.tr domaininde bir sunucunun Internet’te kendi sitemizi oluşturmak için kullanıldığını varsayalım. Internette hem www sitemiz hem de ftp sitemiz bulunsun. Bu durumda Internet üzerinden www.ana-dolu.com.tr ve ftp.anadolu.com.tr denilerek sitemize ulaşılmasını sağlamak istiyoruz. Bu iki adrese karşılık olarak aynı bilgisayara gidilecek.
İlkönce www.anadolu.com.tr ismine karşılık gelen IP adresini girelim.
Şekil; 8.14 DNS sunucuya www kaydının girilmesi
116
DNS (Domain Name System: Domain İsim Sistemi)
İkinci olarak ftp sitemizin adresini de vermeliyiz. Ama bu adres de aslında aynı bilgisayara karşılık geliyor, O zaman burada CNAME kayın giriyoruz.
Şekil: 8,15 DNS sunucuya bir Canonical ismin girilmesi
Sonuç olarak domaindeki kayıtlarınnz şekildekine
Şekil: 8.16 Normal ve Canonical isimlerin görüntülenmesi
117
TCP/IP
DNS ve WINS Hizmetlerinin Birleştirilmesi
Microsoft NT 4.0′a DNS hizmetini yerleştirmekle kalmadı, DNS hizmetini kendi WINS hizmeti ile de birlikte çalıştırarak elle girilmesi gereken kayıt sayısını azalttı.
Şimdi bunu anlamak için aşağıdaki şekle bakalım:
Birincil DNS sunucu
SATİŞ MUHASEBE MÜŞTERİ 195.194.34.4 195.194 34.5 195.194.34.6
WINS sunucu
AHMET 195194.34 89
KEMAL 134.178.90200
LALE 100123.78.67
HASAN 195.194.34.90
Şekil: 8.17 DNS ve WINS hizmetlerinin birleştirilmesi
Şekilde gördüğünüz gibi aynı ağda hem bir DNS sunucu hem de bir WINS sunucu yer alabilir. Yine şekilde gördüğünüz gibi bazı kayıtlar WINS sunucuda olabilir ama DNS sunucuda bulunmayabilir.
Şimdi bu ağda yalnızca DNS sunucunun adresini bilen bir bilgisayar, bir istemci düşünelim. Bu bilgisayar bir isme karşılık IP adresine gerek duyarsa DNS sunucuya gidecek, Peki, DNS sunucuda o kayıt yoksa ne yapacak? Karşı bilgisayara ulaşamayacak. Bu durumda iki seçeneğimiz var: Ya bütün kayıtları DNS sunucuya elle, tek tek gireceğiz ya da DNS sunucunun kendisinde olmayan bir kaydı WINS sunucudan sormasını sağlayacağız.
DNS sunucuyu WINS sunucuya bağlamak oldukça kolay, ilk önce bölgenin üzerine tıklayın, sonra Properties (Özellikler) kısmından WINS Lookup sayfasına gidin.
118
DNS (Domain Name System: Domain İsim Sistemi)

Şekil: 8.18 DNS sunucuya WINS sunucunun adresinin girilmesi
Burada yer alan “Enable WINS Resolution” (WINS isim çözümlemesi de yap) kutusunu işaretleyin, WINS sunucunun adresini de yazın. Bitti, bu kadar.
Şimdi yukardaki şekilde, yalnızca DNS sunucunun adresini bilen bir istemci KEMAL adındaki bilgisayara ulaşmak isterse bu isme karşılık gelen adresi DNS sunucudan soracak, DNS sunucu kendi veritabanında böyle bir kayıt bulamayacak, WINS sunucuya gidecek, WINS sunucuda böyle bir kayıt varsa ondan aldığı IP adresini istemciye iletecektir.
Burada şu akla gelebilir: DNS sunucuya sorulan isim bir host ismi,. Örneğin, kemal.anadolu.com.tr, WINS sunucuda ise KEMAL ismi var. iki isim aynı değil. Nasıl oluyor da sorgulama yapılabiliyor?
Bu sorunun yanıtı da basit ve çok güzel: DNS sunucu WINS sunucuya gitmeden önce kendisine sorulan ismi bir NetBIOS İsmine çeviriyor; yani, bu İsim içinden Internet domain’ine karşılık gelen kısmı çıkarıyor.
ilgili komut: NSLOOKUP.EXE
NSLOOKUP.EXE programı ile var olan bir DNS hizmetini komut satırından sorgulayabiliriz.
119
TCP/IP
Bu program iki şekilde çalışıyor: Ya yanına bir sorgulama parametresi veriyorsunuz ve karşılığını bekliyorsunuz ya da parametre vermeden çalıştırıp NSLOOKUP ortamına geçiyorsunuz ve komutlarınızı burada birbiri ardına etkileşimli bir şekilde veriyorsunuz.
Örnek 1: nslookup www.anadolu.com.tr
Şekil: 8.19 nslookup programı ile DNS sunucunun sorgulanması
Eğer sunucumuzda bir ters sorgulama domainini de oluşturmuşsak ters sorgulama da yapabiliriz.
İkinci kullanım şekli olarak komut satırından NSLOOKUP yazıp etkileşimli kullanıma geçebiliriz. Burada verebileceğimiz komutlar şu şekildedir:
Server IP adresi: Hangi sunucuya bakacağımızı bildirir. Örnek: Server 195.107.1.45
Şeklinde bir komut verirsek 195.107.1.45 adresine sahip olan DNS sunucuyu inceleriz.
Ls -d dns-domaini: Verilen DNS domainindeki kayıtları gösterir.
Şekil: 8.2ü nslookup’ın etkileşimli ortamına geçip bütün kayıtların listesini alma
Exİt: Etkileşimli ortamdan çıkar,
120
DNS (Domain Name System: Domain İsim Sistemi)
HOSTS Dosyası
Internet’in ve TCP/IP’nin başından beri bilgisayar isimleri ile IP adreslerinin hesabının bir şekilde tutulması zorunlu oldu.
Başlangıçta bu iş için HOSTS isminde bir metin dosyası kullanıldı. Bilgisayarların isimleri (host isimleri; Tümüyle Tanımlanmış İsimleri) ve IP adresleri bu metin dosyasına kaydedildi.
Bir bilgisayarın host ismi bilinip de IP adresi bilinmiyorsa bu dosyaya bakarak IP adresi bulunabiliyordu.
Hem isim-IP çözümleme mekanizması, hem de kullanılan dosyanın adı tanıdık geldi, değil mi? Bu çözüm NetBIOS isimlerini çözümlerken kullanılan LMHOSTS dosyası çözümüne benziyor, Gerçekte benzerlik ters yönde: Yani, LMHOSTS dosyası kendisine HOSTS dosyasını örnek almış.
1984 yılında DNS mekanizması geliştirilene kadar HOSTS dosyası internet ortamında kullanıldı. Bu tarihten sonra ise HOSTS dosyasının önemi pek kalmadı. Artık isim-IP eşleme bilgileri DNS sunucularda bulunan veri tabanlarında saklanıyor.
internet ortamında HOSTS dosyasının pek bir önemi kalmadı dedik. Üstelik anlamı olsa bile Internette şu anda milyonlarca bilgisayar olduğu için bu bilgisayarların isim-IP bilgilerini tek tek elle bu dosyaya kaydetmeni-nin bir anlamı yok. Ama TCP/IP’yi bilgisayarınıza kurduğunuzda HOSTS dosyası otomatik olarak oluşturulur. Çünkü yerel ağlarda (LAN’larda) Internet’e göre çok daha az sayıda bilgisayar bulunuyor ve başka mekanizmaları çeşitli nedenlerle kullanamıyorsak HOSTS dosyası iyi bir seçenek olabilir.
Şimdi de biraz HOSTS dosyasının yapısına göz atalım. HOSTS dosyası \winnt\system32\drivers\etc dizini altında bulunur.
Aşağıda örnek bir HOSTS dosyası görüyorsunuz:
# Bu dosya kurumumuzdaki bilgisayarların isimlerini ve IP adreslerini içerir.
121
TCP/IP
127.0.0.1 localhost
190.34.78.45 kapi.anadolu.com.tr #anadolu.com.tr domainin baglanti
bilgisayari
145.154.250.90 satis.anadolu.com.tr
Gördüğünüz gibi oldukça basit bir yapısı var bu dosyanın. Kayıtlar satır satır giriliyor. Yorum yapmak gerekince de “#” işareti kullanılıyor.
HOSTS dosyasında uymamız gereken birkaç kural var:
• 127.0.0.1 adresinin özel bir adres olduğunu ve kendi adresimize karşılık geldiğini biliyoruz. Bu adrese karşılık olarak localhost isminin kendi bilgisayar adımıza karşılık geldiğini de biliyoruz. O zaman HOSTS dosyasında bu isme karşılık gelen bir adres bulunacak.
• HOSTS dosyasında arama yapılırken baştan başlanır, sona kadar gidilir. Bu yüzden sık olarak kullandığınız adresleri en başa yazmak gerekir.
• HOSTS dosyası NetBIOS isimlerini çözümlemek için de kullanılabilir. Tabii, bunun için bilgisayar isimlerinin NetBIOS for-matında yazılmış olması gerekir (yani, internet domain’i yok, en fazla 15 karakter büyüklüğünde olacak şeklinde).
• Her kayıt en çok 255 karakter olabilir.
• HOSTS dosyasındaki isimler küçük-büyük harf duyarlı değildir.
İsim Çözümleme Mekanizmaları Özeti
NetBIOS ve host isimlerini IP adrese çevirme konusunda kullanabileceğimiz beş mekanizma var, Bunlar: Broadcast, WINS, LMHOSTS dosyası, HOSTS dosyası ve DNS,
Peki, biz “ping murat4″ komutunu verdiğimizde ya da “net view \\murat4″ komutunu verdiğimizde bilgisayar isimleri hangi yöntemlerle ve hangi sırayla kullanılıyor?
Kullanılacak olan yöntemi uygulamanın cinsi belirliyor. TCP/IP’nin yapısını anlatırken uygulama katmanında kullanılabilecek İki API’den söz etmiştik: Winsock ve NetBIOS.
122
DNS (Domain Name System: Domain İsim Sistemi)
Eğer bir uygulama Winsock soketine uygun yazılmışsa isim-IP çözümlemesi şu sırayla gerçekleşir:
l) HOSTS Dosyası
2) DNS
3) WINS
4) Broadcast
5) LMHOSTS
Yani, bir İsme karşılık gelen IP’yi bulmak için İlk önce HOSTS dosyasına bakılır. Burada bulunmazsa DNS sunucuya gidilir. Sonra WINS, Broadcast ve LMHOSTS mekanizmalarına başvurulur.
Eğer bir uygulama NetBIOS API’sine uygun yazılmışsa, yani bir NetBIOS uygulaması ise isim-IP çözümlemesi şu sırayla gerçekleşir:
1) WINS
2) Broadcast
3) LMHOSTS
4) HOSTS
5) DNS
Şimdi yukarda örnek olarak verdiğimiz iki komuta bakalım:
Ping murat4
Net view \\murat4
Ping komutu bir WinSock komutudur. Dolayısıyla ona uygun bir sıra izlenerek murat4 ismi IP adresine çevrilecektir.
Net view da içinde olmak üzere bütün Net komutları ise NetBIOS komutlarıdır. Onlar NetBIOS isim-IP çözümleme yöntemlerini kullanırlar.
123
Gözatma Hizmeti (Browsing Service)
GÖZATMA HİZMETİ (BROWSING SERVICE)
A ğ çapında paylaşıma sunulan kaynaklardan verimli bir şekilde yarar-Zilanabilmek için hangi kaynakların paylaşıma açık olduğunu görebilmek gerekir. Bu işi de Browser {Gözatma) servisi yapar.
Ağ komşuları (network neighboorhood) simgesine tıkladığımızda karşımıza NT yönetim alanlarının (domain), çalışma gruplarının (workgroup) ve tek tek bilgisayarların çıkmasını sağlayan İşte bu gözatma servisidir.
Gözatma servisi bazı bilgisayarları browser olarak atar. Browser olarak atanan bilgisayarlar ortamlarındaki bilgisayar listesini tutmakla yükümlüdürler. Böylece ortamdaki diğer bilgisayarların bu listeyi bulundurmak ve güncel tutmak gibi bir işleri olmaz.
Bilgisayarlar açıldıklarında aralarından birisini Master Browser olarak seçerler. Bu seçim bilgisayarların işletim sistemleri dikkate alınarak yapılır.
Browser seçimlerinde işletim sistemlerine göre şöyle bir sıralama yapılır:
Windows NT 4.0 Server
Windows NT 4.0 Workstation
WindowsNT3.51 Server
Windows NT3.51 Workstation
Windows 95
Windows for Workgroups 3.11
DOS
Gördüğünüz gibi burada baş seçim ölçütü işletim sisteminin versiyonu. Bu yüzden NT 4.0 Workstation işletim sistemine sahip bir makina, NT 3.51 Server işletim sistemine sahip bir makinadan daha avantajlı.
125
TCP/IP
Browser seçimi, ortamda bulunan her ağ protokolü için ayrı ayrı yapılır. Yani, ortamda TCP/IP, NetBEUI, IPX/SPX gibi üç protokol varsa brow-ser seçimi bu üç protokolün herbirinde yapılır. Tek başına bu bile bir ağda birden fazla protokol kullanmamak için iyi bir neden, değil mi?
Master Browser seçimi yalnızca bilgisayarlar İlk açıldıklarında yapılmaz. Şu durumlarda da seçime gidilir:
• Master Browser yasal yollardan kapatılırsa (shutdown şıkkı ile)
• Bir bilgisayar açıldığında ortamdaki master browser’in kendisinden daha aşağı özelliklere sahip olduğunu görürse
• MaintainServerList parametresi “yes” yapılmışsa
Seçim sonucunda seçilen master browser seçime katılan diğer bilgisayarlara bakar ve her 15 bilgisayar için bir backup browser atar. Backup brow-ser’lar 15 dakikada bir ellerindeki listeyi master browser’dan güncellerler. (Bu 15 sayısının bir kerameti mi var acaba?)
Peki, master browser elindeki listeyi nasıl oluşturur?
Ortamdaki bilgisayarlar periyodik olarak kendilerini anons ederler: “Adim MUHASEBE, ben bir NT server’ım”, “adım SATIŞ ben bir workstation’ım” gibi.
Anons periyotu 12 dakikadır. Bu anonslar bilgisayarların kullandığı her bir ağ protokolü için ayrı ayrı tekrarlanır (aynen havalaanlarında Türkçe, İngilizce, Almanca, Fransızca tekrarlanan anonslar gibi).
Eğer NT yönetim alanımız (domain) yönlendiriciler ile ayrılmış birden fazla bolüm kapsıyorsa her bölümde bir adet master browser seçilir. Domain çapındaki gözatma listelerini birleştirmek için de bir domain Master Browser’ı seçilir. Domain Master Browser her zaman o yönetim alanındaki PDC’dir.
Master browser hem kendi yönetim alanındaki bilgisayarların listesini, hem de diğer yönetim alanlarının (domain) ya da çalışma gruplarının (workgroup) listesini tutar.
126
Gözatma Hizmeti (Browsing Service)
Master Bro\vser belli aralıklarla bir mesaj yayınlar ve bu mesajda master browser olarak ayakta bulunduğunu bildirir. Eğer bu mesaj yayınlanmazsa master browser’ın ayakta olmadığına karar verilir ve yeni master brow-ser’ seçmek üzere seçim yapılır.
Backup Browser’lar belli aralıklarla master browser’a başvurup elindeki listeyi kendilerine aktarırlar.
Gözatma listesi hazırlandıktan ve yedek browser’lara da aktarıldıktan sonra istemcilere gözatma hizmeti verilmeye başlanabilir. Bu da şu şekilde olur:
1) Bir kullanıcı Network Neighborhood’a tıkladığında bilgisayar master browser’a başvurur.
2) Master browser isteği bir yedek browser’a yönlendirir.
4) İstemci bilgisayar, yedek browser’a başvurur.
5) Yedek browser, tıklanan domain’deki ya da çalışma grubundaki bilgisayarların listesini verir,
6) istemci bu listeden bir bilgisayara tıklarsa o bilgisayara ulaşıp kaynaklarını gösteren listeyi alabilir.
Gözatma servisi trafiği broadcast’lere dayandığı için yönlendiricilerden geçemez. Bazı yönlendiriciler broadcast’leri de geçirebilir ama bu da iyi bir çözüm değildir.
Yönlendiriciler ile ayrılan segmentlerden oluşan bir ağda tüm bilgisayarları görmek için LMHOSTS dosyası ya da WINS kullanmak gerekir.
Bir bilgisayarın master browser olması aslında o bilgisayara ek bir yük getirecektir. Eğer performans yönünden ek yük getirmek istemediğimiz bilgisayarlar varsa bu bilgisayarların browser seçimlerine girmelerini engelleyebiliriz. Bu bilgisayarlar seçime girmeyecekleri için seçilme şansları da kaybolur.
Bir bilgisayarın master browser seçimlerine katılmasını engellemek için:
127
TCP/IP
Windows 3.ll’de SYSTEM.INI’de [network] kısmına
MaintainServerList=No
Şeklinde bir satır eklemek gerekiyor.
Windows 95′te Control Panel|Networks|File and Printer Sharing for Microsoft Networks seçilecek. Özelliklerine geçilecek. Browse Master parametresi Disabled yapılacak.
Windows NT’de aşağıdaki Registry adresine gidilecek.
HKEY-LOCAL_MACHINE\System\CurrentControlSet\Servi-
ces\Browser\Parameters
Bu adresteki MaintainServerList parametresi “no” yapılacak. İlgili Komut: browmon.exe (Windows NT, Resource Kit)
Bu komut, komut satırından çalıştırılır. Ortamdaki master browser’ları gösterir.
Browmon komutu verildiğinde aşağıdakine benzer bir ekran gelir:
Şekil: 9.1 Bir ortamdaki browser’ların browman.exe programıyla görüntülenmesi
Bu ekranda ağımızdaki yönetim alanlarını (domain), kullanılan protokolleri (Transport) ve bu protokollerdeki master browser’ları görürüz. Örnekte kullanılan protokol TCP/IP’dir (NetBT ifadesinden anlıyoruz).
Herhangi bir kayıtın üzerindeki çift tıklarsak o kayıt ile ilgili daha ayrıntılı bilgileri görürüz:
128
Gözatma Hizmeti (Browsing Service)
Şekil: 9.2 NT40SRV01 browser’ı üzerinde bulunan server ve domain bilgilerinin görüntülenmesi
Daha ayrıntılı bilgiler browser’ın durumu (online ya da offline), işletim sistemi (type), bu browser’daki Listede yer alan bilgisayarların sayısı vers), listede yer alan yönetim alanlarının sayısı (domain) şeklindedir.
“Servers on” kutusu İçinde listedeki bilgisayarların isimleri yer alır,
“Domains on” kutusu içinde ise listedeki yönetim alanlarının isimleri yer alır.
Bu ekrandaki Info tuşuna bastığımızda browser ile ilgili daha ayrıntılı bilgiler alırız:
129
TCP/IP
Şekil: 9.3 Bir browser’ın ayrıntılı bilgileri
Ayrıntılı bilgiler şu şekildedir: Name: Browser’ın ismi Version: İşletim sisteminin Build Number’ı Type: İşletim sisteminin versiyonu
Details: Bu browser’ın üstlendiği rollerin listesi. Örnekte bu makinada istemci, sunucu, domain kontrolcü, backup ve master browser rolleri var. Browser statistics since: Belirtilen tarihten başlayarak tutulan istatistikler: Number of Server Announcements: Sunucu anonslarının sayısı Number of Domain Announcements: Domain anonslarının sayısı Number of Election Packets: Seçim paketlerinin sayısı Number of Mailslot Writes: Mailslot yazımlarının sayısı Number of GetBrowserServerList Requests: GetBrowserServerList isteklerinin sayısı
Number of Server Enumerations: Sunucu listeleme sayısı Number of Domain Enumerations: domain listeleme sayısı Number of other Enumerations: Diğer listeleme sayısı Number of Duplicate Announcements: Mükerrer (duplike) anonsların sayısı Number of illegal Datagrams: Geçersiz datagramların sayısı
130
SNMP (Simple Network Management Protocol: Basit Bir Ağ Yönetim Protokolü)
SNMP (SIMPLE NETWORK
MANAGEMENT PROTOCOL:
BASİT BİR AĞ YÖNETİM
PROTOKOLÜ)________
SNMP, ağ üzerindeki cihazların uzaktan izlenmesini ve bazı parametrelerinin değiştirilmesini sağlayan bir protokoldür.
internet yaygınlaştıkça ağlar arası bağlantıları sağlayan yönlendiriciler (router) ve köprüler (bridge) önem kazanmaya başlamıştır. Bununla birlikte yönlendiricinin ya da köprünün sağlıklı çalışıp çalışmadığını İzlemek, bu işi de özellikle uzaktan yapmak zorunlu duruma gelince SNMP yaratılmıştır.
SNMP ile bir yönlendiricinin sabit diskinin dolup dolmadığını, bir portu üzerindeki trafik miktarını vb. izleyebiliriz.
yazılım unsurları da dahil olmak üzere, İzleyebilmektedir. Örneğin, DHCP sunucunun kaç bilgisayara IP adresi dağıttığını ya da WINS sunucuya kaç bilgisayarın isim/IP eşleme bilgisi kaydettirdiğini de artık SNMP ile sorgulayabiliyoruz.
SNMP iki kısımdan oluşur: SNMP yönetim sistemi ve SNMP ajanları. SNMP yönetim sistemi özel bir yazılımdır ve ağdaki yazılım ve donanım unsurlarının SNMP parametrelerini sorgular, bunlardan çeşitli raporlar, alarmlar çıkartır
SNMP ajanları ise kendilerine sorulduğu zaman ya da önceden belirlenmiş olaylar gerçekleştiğinde SNMP parametrelerini yönetici sistemlere bildirirler.
NT 4.0 yüklü bir makina SNMP ajanı olarak çalışabilir. NT üzerinde bir SNMP yönetim sistemi yoktur. Microsoft dışındaki firmalardan SNMP
131
TCP/IP
yönetim sistemi satın alabilirsiniz. En ünlü SNMP yönetim sistemlerinden birisi HP’nin OpenView yazılımıdır.
SNMP’nin NT’deki en önemli yararlarından birisi de yüklendiği zaman TCP/IP sayaçlarını Performance Monitor’e eklemesidir. Bu şekilde kaç tane TCP segmenti geldi/gitti, ne kadarlık UDP trafiği oluştu vb. parametreleri Performance Monitör ile izleyebiliriz. Bu yüzden bir SNMP yönetim sisteminiz yoksa bile SNMP servisini yüklemenizde yarar var.
SNMP, adından da anlaşılacağı gibi oldukça basit bir protokoldür. SNMP yönetim yazılımının başlıca işlevi üç adet komut kullanarak parametreleri sorgulama ve değiştirmedir. Bu üç komut şu şekildedir:
• Get: Özel bir parametrenin, örneğin, DHCP sunucunun dağıttığı IP adreslerinin sayısının sorgulanmasını sağlar.
• Get-next: Bir sonraki parametrenin sorgulanmasını sağlar.
• Set: Bir parametrenin değerinin değiştirilmesini sağlar.
SNMP ajanı da kendisine gönderilen get, get-next ve set komutlarını yerine getirmek durumundadır. SNMP ajanı oldukça pasif çalışır: Kendisine soru sorulur ya da bir parametresini değiştirmesi istenir o da söyleneni yapar. Ajanın aktif olduğu durumlar ise trap (tuzak, kapma ya da alarm) olarak adlandırılır. Ajan, önceden belirlenmiş olayların gerçekleşmesi durumunda bir alarm işlemi yürütür ve yönetim sistemine bu durumu bildi-ririr. Örneğin, yönlendirici görevi gören bir bilgisayarın sabit diski dolmak üzereyken bu durum bir trap yaratır ve ajan yazılımı durumu yönetim sistemine bildirir.
Yukarda get-next komutunu anlatırken bir sonraki parametrenin sorgulanmasını sağlar şeklinde bir laf ettik. Ajan ya da yönetim sistemi bir sonraki parametrenin olduğunu nereden biliyor?
Ajandan istenebilecek bilgilerin toplamı Yönetim Bilgi Tabanı (Management Information Base, MIB) olarak adlandırılır.
Management Information Base’in MIB şeklinde kısaltılmasına karşılık biz de Yönetim Bilgi Tabanı’nı YBT olarak kısaltalım.
Donanım ve yazılım üreticileri kendi ürünlerinin SNMP yönetim sistemleri tarafından sorgulanabilmeleri için ürün parametrelerini YBT’ler
132
SNMP (Simple Network Management Protocol: Basit Bir Ağ Yönetim Protokolü)
içinde toplarlar. Firmalar dışında internet organları da standart ürünler için YBT’ler oluşturur. Bir SNMP yönetim sistemi ne kadar fazla YBT tanırsa o kadar iyi olur.
NT’deki SNMP servisi (ajan olarak çalıştığını söylemiştik) şu YBT’leri tanır: internet MIB II, LAN Manager MIB II, DHCP MIB, WINS MIB. Şimdi kısaca bu MIB’lerde neler var, görelim.
internet MIB II: 171 adet parametre içerir.
LAN Manager MIB II: 90 adet parametre içerir. Bunlar paylaşım, kullanıcı bağlantıları, logon bilgisi vb, bilgilerin sorgulanmasını sağlar.
DHCP MIB: 14 parametre içerir ve DHCP parametrelerinin (dağıtılan IP adreslerinin sayısı, kendisine ulaşan DHCP isteklerinin sayısı vb.) izlenmesini sağlar.
WINS MIB: Yaklaşık 70 adet parametre içerir. Bu parametreler kaydedilen NetBIOS ismi/IP eşleme sayısı, başarılı bir şekilde yanıtlanan isim/IP sorgulamaları vb.’ne ilişkindir.
YBT’ler gelişigüzel hazırlanmaz, YBT’ler, firmalar ya da bağımsız organlar tarafından hazırlanır ve Uluslararası Standartlar Organizasyonu (ISO) tarafından onaylanır. Onaylama sırasında her YBT’ye bir nesne adı bir de nesne numarası verilir. Örneğin LAN Manager MIB II için verilen nesne adı
Iso.org.dod.internet.private.enterprise.lanmanager
Ve nesne numarası
1.3.6.1.4.1.77
şeklindedir.
Microsoft firması LAN Manager için böyle nesne adı ve numarası aldıktan sonra bu ad ve numara altında kendi parametrelerini oluşturabilir.
133
TCP/IP
Internet MIB Il’nin nesne adı ve numarası İse
Iso.org.dod.internet.management.mibii 1.3.6.1.2.1 şeklindedir.
Hem LAN Manager MIB H’de, hem de internet MIB H’de nesne
adlarının ve numaralarının bir kısmının aynı olduğu dikkatinizi çekmiştir.
MIB adlandırması ve numaralandırması hiyerarşik bir yapı izler ve
aşağıdaki şemaya uyar:
Uluslararası Standartlar Organizasyonu (iso) l
Organization (org) 3
Department of Defense f ABD Savunma Bakanlığı, dod) 6
internet l
Directory Management Experimental Private
1 2 3 4
MIB II Enterprise
l l
LAN Manager MIB II
77
Bu şema ışığında MIB’lerin adlandırılması ve numaralandırılması aydınlanıyor.
SNMP’de nesne numarası biliniyorsa sorgulama yapmak çok kolaydır. Çok kolaysa herkes, binbir çeşit niyetlerle sorgulama yapabilir. Daha da kötüsü bazı parametreleri değiştirebilir. Bu yüzden SNMP’ye bir güvenlik unsuru eklenmiştir. Bu unsur SNMP toplum (community) mantığıdır.
SNMP yönetim sistemi ile ajanlar bir toplum oluştururlar. Ajanlar yalnızca kendi toplumlarından gelen sorgulama isteklerine karşılık verirler.
SNMP toplumları toplum isimleri ile belirlenirler.
Bir SNMP ajanı birden fazla SNMP toplumunun üyesi olabilir. SNMP ajanı programının özelliğine göre ajan, hangi toplumdan gelirse gelsin bütün SNMP komutlarına uyacak şekilde de düzenlenebilir. Örneğin, NT SNMP servisini bu şekilde düzenleyebilirsiniz.
134
SNMP (Simple Network Management Protocol: Basit Bir Ağ Yönetim Protokolü)
Aşağıdaki şekilde bilgisayarlar iki ayrı topluluk olarak düzenlenmiş durumda:
Şekil: 10.1 Örnek bir SNMP ortamı
Topluluk ismi Anadolu olan bilgisayarların trap sorumlusu YON1 bilgisayarı. Topluluk ismi Rumeli olan bilgisayarların trap sorumlusu ise YON2 bilgisayarı. Bu durumda BİL1 ve BİL4 adındaki bilgisayarlardaki SNMP ajan servisi YONl’den gelen sorgulamalara yanıt verir ve trap durumlarını ona bildirir. BİL2 ve BİL3 bilgisayarlarındaki SNMP ajan servisi İse YON2′den gelen sorgulamalara yanıt verir ve trap durumlarını ona bildirir.
SNMP servisinde bilgiler UDP paketleri şeklinde taşınır.
Bilgiler UDP gibi güvensiz bir protokol ile taşındığı ve toplum ismi çok ilkel bir güvenlik önlemi olduğu için üretici firmalar genel olarak parametrelerin değiştirilebilmesine (set edilmesine) izin vermezler; genelde yalnızca sorgulama yapılabilir.
SNMP Hizmetinin Kuruluşu
SNMP de, diğer ağ hizmetleri gibi, Control Panel’deki Network uygulamasından yüklenir. SNMP’nin yüklenmesi sırasında bizden bilgisayarımızın verdiği ağ hizmetleri (Service kısmı) ve seçimlik olarak da, ilişki kurulacak kişi ve yer bilgisi istenir,
135
TCP/IP
Şekil: 10.2 SNMP hizmetinin kuruluşu
Yine bu kısımda Traps (Alarm Durumu) sayfasında bizden SNMP topluluk ismi ile alarm durumunu bildireceğimiz yönetici makinanın adresini girmemiz istenir.
136
SNMP (Simple Network Management Protocol: Basit Bir Ağ Yönetim Protokolü)

Şekil: 103 SNMP hizmetinde topluluk adının ve bir alarm olduğunda bildirilecek olan adresin
girilmesi
Security (Güvenlik) sayfasında Accepted Community Names bölümünde hangi topluluklara dahil olan yöneticilerin sorgulamasına yanıt verileceği bilgisi girilir.
137
TCP/IP
Şekil: 10.4 SNMP güvenlik sayfası
Bu bölümde Accept SNMP Packets from Any Host radyo butonu seçili ise yukardaki topluluklara dahil her bilgisayarın sorgulama İsteğine yanıt verilir. Yukarda belirtilen topluluklardan yalnızca belirli bilgisayarlara yanıt verilecekse Only Accept SNMP Packets from These Hosts butonu seçilmeli ve İlgili bilgisayarlar kayıt edilmelidir.
Yine her hizmetin yüklenmesinden sonra olduğu gibi, bilgisayarımız resetlenir.
İlgili Komutlar: NT’nin içinde SNMP ile ilgili bir komut gelmiyor. Ama NT 4.0 Resourcc Kit içinden SNMPUTIL.EXE adında bir program çıkıyor. Bu komut ile hem SNMP servisinin doğru bir şekilde kurulup kurulmadığını kontrol edebiliyorsunuz, hem de SNMP sorgulaması yapabiliyorsunuz. Komutun yazımını şöyle formüllendirebiliriz:
Snmputil komut nesne numarası
ajan_bilgisayarın_ismi topluluk_ismi
138
SNMP (Simple Network Management Protocol: Basit Bir Ağ Yönetim Protokolü)
Örneğin, “şirket” şeklinde bir toplum adımız var diyelim. Bu toplum içindeki “başkan” adlı DHCP sunucunun şimdiye kadar kaç tane IP adresi kiraladığını şu komut ile sorgulayabiliriz:
Snmputil getnext başkan şirket .1.3.6.1,4.1.311.1.3.2.1.1.1
Snmputil’in üç tane komutu var: get, getnext ve walk.
Get komutu verilen parametrenin değerini sorar. Getnext komutu bir sonraki parametreyi sorar. Walk komutu verilen nesne ile belirlenen MIB dalı
139
FTP (File Transfer Protocol: Dosya Aktarım Protokolü)
FTP VE TELNET
FTP (File Transfer Protocol: Dosya Aktarım Protokolü)
Dosya Aktarım Protokolü TCP/IP ile haberleşen bilgisayarlar arasında dosya alışverişini düzenler.
FTP için FTP hizmeti veren bir sunucu makina gerekir. FTP sunucuda bir FTP sitesi oluşturulur. FTP istemciler bu siteye ulaşıp dosya çekebilirler ya da dosya yükleyebilirler.
Windows NT’deki internet Information Server içinde FTP sunucu bulunur, internet Information Server’ı yüklediğimizde FTP sitemiz de açılmış olur.
FTP istemci olarak komut satırından çalışan FTP komutu kullanılabilir. Ama bunun yerine bir ftp sitesine ulaşmak için MS internet Explorer ya da Netscape gibi bir gözatıcı program (browser) kullanılabilir.
Örneğin, kurum içi ağımızda INSUNUCU adında bir bilgisayarda Internet Information Server yüklü diyelim. Bu durumda INSUNUCU bilgisayarının üzerinde otomatik olarak bir ftp sitesi oluşturulur. Bu siteye ulaşmak için gözatıcı programda adres kutusuna ftp://INSUNUCU yazmamız yeterli olacaktır. Bu durumda ftp sitesinin içeriği karşımıza gelecek, biz de oradaki bir dosyanın üzerine tıklayarak dosyayı kendimize kopyalayabileceğiz ya da çalıştırabileceğiz.
141
TCP/IP
Şekil: 11.1 Bir FTP sitesine gözatıcı program aracılığı ile ulaşım
Aynı sunucuya komut satırından ulaşmak istersek ftp yazıp ENTER tuşuna basacağız. Bu durumda etkileşimli ftp ortamına geçeceğiz.
Şekil; 11.2 Bir FTP sitesine komut satırından ulaşım
Burada “open murat4″ komutu ile murat4 sitesine ulaşabiliriz. Siteyle bağlantı kurulduğunda bizden kullanıcı adı ve şifresi soruluyor. Kullanıcı adı olarak “anonymous” (anonim kullanıcı) ifadesini giriyoruz. Şifre ise girmiyoruz.
Dünyadaki FTP sitelerinin hemen hepsine anonim kullanıcı adı ile ulaşılabilir. Çünkü FTP güvensiz bir protokoldür: Girilen isim ve şifreler kriptolanmadan, ASCII veri olarak taşınır. Bu yüzden FTP sitelerine girilirken gerçek isim ve şifreler kullanılmaz.
Bu ortamda open komutunun yanısıra verebileceğimiz diğer komutlar şu şekilde sıralanıyor:
142
FTP ve Telnet
Ls ya da dir: ftp sitesinde bulunan dosyaları gösterir.
Get: ftp sitesinde bulunan bir dosyayı kopyalar.
Put: ftp sitesine bir dosya kopyalar.
Binary; Dosya aktarımını binary moda geçirir.
!: Geçici olarak komut satırına dönmenizi sağlar.
quit ya da bye: Etkileşimli ortamdan çıkmanızı sağlar.
Aşağıda dir komutu verilince ne gibi bilgiler alabileceğimizi görüyoruz:
Şekil: 11.3 FTP sitesindeki dosyaların listesini alma
Gördüğünüz gibi bir ftp sitesine ulaşıp dosya çekmenin en iyi yolu gözatıcı programlan kullanmaktır.
İlgili Komut: FTP.EXE (Windows 95, Windows NT)
TELNET
Telnet bir terminal emülasyon protokolüdür. Telnet ile bir bilgisayar sistemine uzaktan bağlanıp o sistemin bir terminaliymiş gibi çalışabilirsiniz
Telnet için Telnet hizmeti sağlayan bir sunucu gerekir. Windows NT 4.0′da böyle bir sunucu programı yoktur.
Windows NT’dcki telnet programı ile telnet hizmeti veren başka bilgisayar sistemlerine bağlanabiliriz ama bize kimse telnet ile bağlanamaz. Bu iş için üçüncü parti firmaların ürünleri bulunabilir. Bu ürünleri kullandığınızda Windows NT yüklü bilgisayar da bir telnet sunucu gibi davranacaktır.
143
TCP/IP
Telnet ile bir başka sisteme bağlanmak istediğimizde komut satırından ya da Start menüsünden Run komutunu kullanarak Telnet komutunu gireriz. Telnet’in penceresi açılır. Bundan sonra Connect menüsünden Remote System şıkkını seçeriz. Bağlanacağımız sistemde bizim için bir kullanıcı hesabının açılmış olması ve bir şifrenin tanımlanmış olması gerekir. Bağlantı sırasında bunlar bizden istenir.
Şekil: 11.4 Telnet bağlantı ekranı
ilgili uzak bilgisayarın adını girdiğimizde o bilgisayarla iletişime geçilir. Karşıdaki bilgisayar bizden bir kullanıcı adı ve şifresi girmemizi ister. Bunları doğru girersek artık o bilgisayarın bir terminali gibi istediğimiz komutları verebiliriz. Hangi komutları mı veririz? Bağlandığımız sisteme göre değişir.
Şekil: 11.5 Telnet ile bağlantı kurulduktan sonra isim ve şifrenin girilişi
İlgili Komut: Telnet.exe (Windows 95, Win)
144
Windows 2000 Altında TCP/IP
WINDOWS 2000 ALTINDA TCP/IP
17 Şubat 2000 tarihinde çıkan Windows 2000′de TCP/IP önemli değişikliklere uğraşmış. Bütün değişiklikler Microsoft’un Internete ve TCP/IP’ye verdiği önemi yansıtıyor.
Şimdi bu değişiklikleri sırasıyla görelim.
Windows 2000 altında IP adresi
Bir bilgisayara Windows 2000 ailesinden bir işletim sistemi (Professional, Server, Advanced Server ya da Data Center) yüklendiğinde TCP/IP protokolü otomatik olarak yüklenir. Bilgisayarın IP adresi ise DHCP sunucudan alınacak şekilde düzenlenir,
NT’de bir bilgisayar IP adresini DHCP sunucudan alacak şekilde ayarlandıysa (yani, bilgisayar DHCP istemci ise) ama ortada bir DHCP sunucu yoksa TCP/IP iletişimi sağlanamazdı. Nasıl sağlansın ki, bilgisayarın bir IP adresi yok. IP adresini elle vermek de kolay değil: Bir başka bilgisayarla çakışmayan bir IP adresi vereceksiniz, buna uygun subnet maskesi vereceksiniz, bu adresleri çok da keyfi vermeyeceksiniz, belli kurallara göre vereceksiniz, vs.
Windows 2000′de bu sorun çözümlenmiş. Bilgisayarlar DHCP istemci olduklarında bir IP adresi almak için DHCP DISCOVER mesajını yayınlıyorlar. Ama ortamda bir DHCP sunucu bulunmayabilir. Bu durumda bilgisayar, iç ağlar için ayrılmış edilmiş, kesinlikle Internette bulunmayan, bir IP adresini kendisine atıyor. Bu IP adresini acaba daha önce başkası almış mı diye ağda bir kontrol yapıyor. Eğer bilgisayarın bulunduğu ağda bu IP adresine sahip bir malana yoksa bilgisayar o IP adresini kullanmaya devam ediyor. Eğer kendisine beğendiği IP adresi, daha önceden başka bir bilgisayar tarafından sahiplenilmişse o zaman
145
TCP/IP
ayrılmış adreslerin ikincisine geçiyor. Bu yolla bilgisayarlar, ortada bir DHCP sunucu olmasa bile otomatikman ve doğru bir şekilde IP adreslerine kavuşuyorlar.
Örnek bilgisayarımızda bu durumu görelim. Bilgisayarımızın adı ANA-SUNUCU. Üzerine Windows 2000 Server yüklendi. Henüz Active Directory yüklenmedi. Bu durumdayken komut satırında ipconfig komutunu verirsem aşağıdaki ekranla karşılaşıyorum:
Şekil 12.1 Ortamda bir DHCP sunucu yoksa da bir IP adresi kullanılabiliyor.
Şekilde görüldüğü üzere bilgisayarımız ortada bir DHCP sunucu bulamayınca ayrılmış adreslerden bir tanesini kendisine almış. B sınıfı bir adres bu. B sınıfına uygun bir subnet maskesi de almış.
Şimdi ipconfig /ali komutunu vererek daha ayrıntılı bilgi alalım:
Şekil 12.2 IP yapılandırması ile daha ayrıntılı bilgi
İkinci şekilden bu bilgisayarın bir DHCP istemci olduğunu görüyoruz (DHCP enabled: Yes), Ama DHCP sunucuya ilişkin bir bilgi göremiyoruz (DHCP sunucunun IP adresi, IP adresi kira başlangıcı, kira bitişi gibi bilgiler). Bir de daha önceden alışık olmadığımız iki parametre var: Autoconfiguration Enabled ve Autoconfiguration IP Address. İşte
146
Windows 2000 Altında TCP/IP
buralar Windows 2000′le gelen yenilikler. Bu ağ kartı otomatik olarak yapılanacak şekilde ayarlanmış bu özellik sayesinde, ortada bir DHCP sunucu olmadığı halde, kendi kafasına göre bir IP adresi belirlemiş kendisine.
Windows 2000 Altında Bilgisayarların Adları
Anımsayacağınız gibi NT’de bir bilgisayarın hem NETBIOS adı, hem de host adı vardı. Bilgisayarın NETBIOS adı ANASUNUCU olurken host adı papatya.cicekler.com.tr olabilirdi.
Windows 2000′de de bir bilgisayarın hem NETBIOS hem de host adı bulunuyor. Ama burada iki ad birbirine bağlı. Burada NETBIOS adını bilgisayar kurulurken veriyoruz. NETBIOS adına bir DNS domain adı ekleyerek de host adını elde ediyoruz. Yukardaki örneğe bakarsak bilgisayarın host adı anasunucu.cicekler.com.tr olabilir ama papatya.cicek-ler.com.tr olamaz.
Bilgisayarımızın henüz bir host adı yok. Şimdi bu adı oluşturalım. Masaüstünde “My Computer” ikonuna fare ile sağ-tıklayalım, Propeties’den Network Identification sayfasına geçelim. Orada Full com-puter name kısmında bilgisayarımızın adını görüyoruz. Henüz ortada bir domain olmadığı için bir çalışma grubundayız (workgroup adında bir çalışma grubu). Bu sayfada tekrar Properties tuşuna basıyoruz. Identification Changes (Kimlik Değişikliği) başlıklı bir diyalog kutusu çıkıyor. Bilgisayarın adını istiyorsak buradan değiştirebiliriz (Active Directory kurulduktan sonra bilgisayarımızın adını değiştiremeyeceğiz). Arna biz şu anda bilgisayarımızın adını değiştirmeyeceğiz, ona DNS domain bilgisini ekleyeceğiz. Bu yüzden “More” tuşuna basıyoruz. Karşımıza çıkan ekranda “Primary DNS suffix of this computer” alanına bilgisayarımızın ait olduğu DNS domain’i bilgisini yazıyoruz:
147
TCP/IP
Bu ekranda bilgisayarımızın NetBIOS adını görebilirsiniz ve altındaki açıklamadan NetBIOS adının eski bilgisayarlarla ve eski tip hizmetlerle uyumluluk için korunduğunu görebilirsiniz. Yani, NetBIOS adı yavaş yavaş tarih sahnesinden çekilecek.
OK’leyip çıktığınızda değişikliklerin yürürlüğe girmesi için bilgisayarın yeniden başlatılması gerektiği bildirilecek. Windows 2000′deki ender yeniden başlatmalardan birisi bu. Tamam deyip bilgisayarı yeniden başlatacağız.
Windows 2000 Altında DNS
DNS, Windows 2000 altında yaşamsal öneme sahip. Active Directory tümüyle DNS’e bağlı. Eğer ortada bir DNS sunucu yoksa Active Directory kurulmuyor bile.
O zaman DNS’i kuralım. DNS’i kurmadan önce IP adresimizi statiğe çevirmeliyiz. DNS sunucumuzun adresi sabit olmalı. Sabit bir IP verdiğimizi kabul ediyoruz.
DNS, Control Panel | Add/Remove Programs | Add/Remove Windows Components | Networking Services altından kuruluyor. Burada çok sayıda ağ hizmeti bulunuyor. Biz yalnızca Domain Name System (DNS)’i seçiyoruz.
148
Windows 2000 Altında TCP/IP
Şekil 12.4 DNS hizmetinin yüklenmesi
DNS ile ilgili dosyalar yükleniyor artık makinamız bir DNS sunucu oluyor. Bilgisayarımızı yeniden başlatacak mıyız? Hayır, bu bir Windows 2000 Server unutmayın, Hizmet ya da protokol ya da ağ kartı ekleyip çıkardığınızda bilgisayarı yeniden başlatmanız gerekmiyor (Oley).
Burada bir değişiklik daha oluyor. NT’de bir bilgisayara DNS hizmetini yükleyip onu DNS sunucu yapabilirdiniz. İstemci bilgisayarlara da o DNS sunucunun IP adresim girdiğiniz takdirde o bilgisayarlar DNS sunucudan yararlanabilirdi, Ama DNS sunucunun kendisinde de DNS sunucular bölümüne kendi adresini girmeniz gerekirdi. Yani, kendi kendisinin DNS sunucu olduğunu düşünemiyordu. Windows 2ÖOO’de ise bilgisayar DNS sunucu olduğunda DNS sunucu bölümüne 127.0.0.1 şeklindeki kendi IP adresi giriliyor.
149
Kaldığımız yerden devam edelim.
DNS hizmetimizi yapılandırmak için Start | Programs | Administrative Tools altından DNS e gidelim. Bir MMC (Microsoft Management Console) açılıyor ve yönetebileceğimiz DNS sunucuların listesi karşımıza geliyor Başlangıçta burada yalnızca bulunduğumuz makinayı görüyoruz:
150
Windows 2000 Altında TCP/IP
Şekil 12.6 DNS konsolu
Şekilde bir de uyarı var: Configure the DNS Server (DNS sunucuyu yapılandırın). DNS sunucuyu yapılandırmak üzerinde düz ve ters sorgulama alanları yaratmak demek. Uyarıyı dinleyelim, sunucumuzu yapılandıralım. Bu amaçla sunucumuzun üzerinde sağ-klikliyoruz, karşımıza çıkan menüden “Configure the server” seçeneğini işaretliyoruz. Karşımıza bir yardımcı (wizard) çıkıyor. Next tuşuna basarak karşımıza çıkan hoşgeldiniz ekranını geçiyoruz. Bir sonraki ekranda iki şık çıkıyor karşımıza:
This is the first DNS server on this network
(Selecting this option makes this server a root server)
Türkçesi: Bu bilgisayar bu ağdaki ilk DNS sunucudur (Bu seçeneği
seçmek bu sunucuyu bir kök sunucu yapar.)
One or more DNS servers are running on this network Türkçesi: Bu ağda bir ya da daha fazla DNS sunucu bulunuyor
Şu anda ağdaki ilk DNS sunucu bu bilgisayar olacak. Onun için ilk seçeneği işaretli bırakıyoruz. Eğer ortamda daha önceden DNS sunucular kurulmuş olsaydı o zaman alttaki şıkkı seçecek ve diğer sunucuların IP adreslerini girecektik.
Bir sonraki ekranda bize düz sorgulama alanı (forward lookup zone)
151
TCP/IP
yaratmak isteyip istemediğimizi soruyor. Biz “Yes” deyip kendi DNS etki alanımızı yaratalım. Yes dediğimizde aşağıdaki ekranla karşılaşıyoruz:
Zone Type
Windows can obtain and store zone information in three different ways.
Şekil 12.7 DNS alan tipinin belirlendiği bölüm
Birincil (Primary) ve İkincil (Secondary) alanları biliyoruz ama burada bunların başına bir de “Standard” sözcüğü gelmiş. Ayrıca bir de daha önceden alışık olmadığımız bir seçenek de var: Active directory-integrated. Bu sonuncu seçenek şu anda etkin değil. Bu seçenekleri biraz açıklayalım.
NT’den bildiğiniz gibi, DNS hizmeti ile ilgili dosyalar Winnt\Dns klasörü altında yer alır. Window 2000′de Standard Primary ya Standard Secondary dediğimiz alanların bilgileri yine burada saklanacak. Ama Active Directory ile bütünleşik olan alanların bilgileri bu klasörde değil Active Directory’de saklanacak. Yani, Active Directory-integrated alanların dosyalarını Winnt\Dns klasörü altında göremeyeceğiz. Bu seçenek ise ancak Active Directory kurulduğunda seçilebilecek. Olay bu.
Biz Standard Primary seçeneğini seçip yolumuza devam edelim.
Bir sonraki ekranda bizden alan adı isteniyor. Buraya örnek olarak anadolu.com.tr adını yazıyoruz;
152
Windows 2000 Altında TCP/IP
Şekil 12.8 DNS alan adı giriliyor.
Bir sonraki ekranda anadolu.com.tr alanının bilgilerinin saklanacağı dosya adı soruluyor. Varsayılan değeri kabul edelim:
Şekil 12.9 Yaratılan DNS alanının bilgilerinin saklanacağı dosya belirleniyor.
153
TCP/IP
Bir sonraki ekranda ters sorgulama alanı yaratıp yaratmayacağımız soruluyor. Burada da “Yes” deyip bir de ters sorgulama alanı yaratalım. Sonraki ekranda bu alanın Standard Primary mi yoksa Standard Secondary mi olacağı soruluyor. Standard Primary’yi seçiyoruz.
Şimdi ters sorgulama alanının adını vermek zorundayız. NT’den biliyorsunuz, buraya ağtanımlayıcısı.in-addr-arpa şeklinde bir ifadeyi elle giriyorduk. Windows 2000′le girmek mümkünse de işlemi basitleştirmek mümkün. Siz ağ bilgisini verdiğinizde kendisi ters sorgulama alanının adını otomatik olarak öneriyor:
Örneğimizde ağ tanımlayıcısı olarak yukarıya 10.0.0 bilgisini girdik. Windows 2000 de aşağıya 0.0.l0.in-addr.arpa şeklinde bir ters sorgulama alanı adı çıkardı.
Bir sonraki ekranda, ters sorgulama alanı bilgilerinin saklanacağı dosya adı bilgisi giriliyor:
154
Windows 2000 Altında TCP/IP
Artık işimiz bitti. Bir sonraki ekran, girdiğimiz bilgileri özetleyen bir ekran:
Şekil 12.12 DNS yapılandırma yardımcısının son ekranı
155
TCP/IP
Finish tuşuna basıp işlemi tamamlıyoruz. Artık yapılandırılmış bir DNS sunucumuz var. DNS konsolumuz şöyle görünecek:
Şekil 12.13 Yapılanma bittikten sonra DNS konsolununun görünüşü
NT’deki DNS’in tersine düz sorgulama ve ters sorgulama alanları birbirinden ayrılmış. Forward Lookup Zones bölümünde yarattığımız alanın yanısıra “.” şeklinde de bir alan var. Burası DNS sunucunun kaşesi: DNS sunucuya girilmeyen, DNS sunucunun bir şekilde elde ettiği bilgisayar adı-IP adresi bilgileri burada saklanıyor.
NT’de DNS’i anlatırken DNS sunucuya bilgilerin elle girildiğini söylemiştik. Girilen bilgiler host adı-IP adresi şeklindeydi. WINS sunucuya ise bilgiler, bilgisayarlar tarafından otomatikman giriliyordu. WINS’e girilen bilgiler ise NetBIOS adı-IP adresi şeklindeydi. Windows 2000′de WINS sunucu var ama yalnızca eskiyle uyumluluk sağlamak için. Windows 2000 ortamında WINS hiç kullanılmayabilir. Peki ama yalnızca WINS’e kaydedilebilen NetBIOS adları ne olacak? Yanıt kısa: Onlar da DNS sunucuya kaydedilecek. Burası DNS’de çok büyük bir değişikliğe karşılık geliyor. Windows 2000′deki DNS’de A, MX, CNAME gibi bildik kayıt tiplerinin yanı sıra yeni bir kayıt tip daha var: SRV (Service: Hizmet) kaydı. SRV kaydı, WINS’e kaydedilen NetBIOS kayıtlarına karşılık geliyor. Bu kayıtlar Windows 2000 Profesisional ya da Server işletim sistemlerine sahip bilgisayarlar tarafından DNS’e otomatik olarak girilebiliyor. Bu işleme “dynamic update” (dinamik güncelleme) deniliyor. Böyle olunca da WINS’e gerek kalmıyor.
156
Windows 2000 Altında TCP/IP
Ama ortalama bir işletmede istemci olarak genellikle Windows 95-98 ya da Windows NT Workstation kullanılır. Bunların hiçbiri de Active Directory’den ve DNS’deki bu yenilikten haberdar değil. Bu İşlemcilerin kayıtları nasıl DNS sunucuya girilecek? Bunun İki yolu var: Ya Microsoft’un bu eski tip işletim sistemleri için Active Directory istemci yazılımlarını üretmesini bekleyeceğiz ya da istemcilerin bilgilerinin DHCP sunucu tarafından DNS sunucuya aktarılmasını sağlayacağız. Windows 2000′de DHCP sunucu IP adresi dağıttığı istemcilerin bilgisini DNS sunucuya gönderebiliyor.
Yalnız bunun için DNS’de yaratığımız alanların dinamik güncellemeye izin vermesi gerekir. Şimdi bunu sağlayalım, anadolu.com.tr alanına sağ-klikleyelim, Properties seçeneğini seçelim. Orada “Allow dynamic updates” (Dinamik güncellemeye izin ver) seçeneğini Yes’e getirelim, OK tuşuna basalım:
Şekil 12.14 Dinamik güncelleme
157
TCP/IP
Aynı şekilde yarattığımız ters sorgulama alanında da dinamik güncellemeye izin verelim.
Şimdi artık Active Directory kurulumu yapılabilir.
DHCP sunucu ve Active Directory
Herhangi bir NT sunucuya DHCP Server hizmetini yüklersek onu bir DHCP sunucu yaparız. Böyle bir makina üzerinde bir adres havuzunu tanımlayıp harekete geçirdiğimizde adresler dağıtılmaya başlanır. Bu da birçok sorun yaratabilir. Yetkili-yetkisiz herkes herhangi bir NT sunucuya DHCP sunucu hizmetim yükleyip, kafasına göre adres havuzları belirleyip adres dağıtabilir. Bu da ağ üzerinde birçok IP adresinin çakışmasına yol açabilir.
Windows 2000 böyle bir kaosu engelleyebiliyor. Herhangi bir Windows 2000 Server’a DHCP hizmetini yükleyebilirsiniz, bu bilgisayarın üzerinde adres havuzları tanımlayabilirsiniz ama Active Directory içinde bu sunucuyu yetkilen ditmezseniz adres dağıtımı başlamaz.
Şimdi DHCP hizmetini yükleydim. DNS’de olduğu gibi bu hizmeti de Control Panel Add/Remove Programs l Add/Remove Windows Components l Networking Services altından kuruyoruz. Karşımıza çıkan listeden Dynamic Host Configuration Protocol (DHCP)’yi seçiyoruz. Seçtikten sonra Next tuşuna birkaç kez basarak hizmeti yüklüyoruz. Bilgisayarı başlatmak gerekmiyor (yine Oley),
DHCP hizmetini yapılandırmak için Start | Programs Administrative Tools ! DHCP seçeneğine gidiyoruz. Bu seçeneği seçtiğimizde aşağıdaki gibi bir ekranla karşılaşıyoruz:
Şekil 12.15 DHCP konsolu
158
Windows 2000 Altında TCP/IP
Yukardaki ekranda sol tarafta yönetebileceğimiz DHCP sunucuların listesini görüyoruz (şu anda bir tane var). Sunucunun sol tarafındaki kırmızı oka dikkat edin. Kırmızı ok DHCP sunucu hizmetinin şu anda etkin olmadığını gösteriyor. Sağ tarafta İse yine sunucumuzu görüyoruz. Status alanında “Not authorized” (Yetkilendirilmemiş) ifadesi var. Bu İfade doğru çünkü daha hiçbir işlem yapmadık üzerinde.
Sol tarafta sunucumuzu sağ-klikleyip karşımıza çıkan menüden “New Scope” (yeni adres havuzu) şıkkını seçiyoruz. Bizi bir yardımcı karşılıyor. Bir sonraki ekranda yaratacağımız adres havuzuna bir ad ve açıklama girmemiz gerektiği söyleniyor. Biz de giriyoruz:
Next tuşuna bastığımızda adres havuzunun başlangıç ve bitiş adresleri ile subnet maskesi soruluyor. Bu adresleri de giriyoruz:
159
TCP/IP
Şekil 12.17 Adres havuzunun başlangıç ve bitiş adresleri ile subnet maskesi bilgisi giriliyor,
Sonraki ekranda adres havuzu içinde yer alan ama dağıtılmayacak (hariç tutulacak) adresleri belirliyoruz. Tabii, böyle adresler varsa:
Şekil 12.18 Dağıtılmayacak adresler (varsa) giriliyor.
160
Windows 2000 Altında TCP/IP
Sonraki ekranda IP adreslerinin kira süresi belirleniyor. Burada dikkatimizi varsayılan sürenin S gün olması çekiyor. Anımsayacağınız gibi, bu süre NT için 3 gündü. Niye değiştirmişler? Herhalde böylesi daha uygun göründü.
Lease Duration
The lease duration specifies how long a client can use an IP address from this scope.
Bir sonraki ekranda DHCP seçimlik bilgilerinin girilip girilmeyeceği soruluyor. Seçimlik bilgileri anımsıyoruz değil mi? Ağda kullanılan Default Gateway (Router) adresi, DNS sunucunun adresi ve WINS sunucunun adresi. Seçimlik bilgi listesinde daha çok seçenek göreceksiniz ama onlar bizi pek de İlgilendirmiyor. Şimdilik seçimlik bilgi girmeyeceğimizi belirtip (“No, I will configure these options later” seçeneğini işaretliyeceğiz) devam edelim. Sonraki ekran da İşlem tamam ekranı. Finish tuşuna basıp bitirelim.
Şu anda bir adres havuzumuz (scope) da var. Ama halen adres dağıtamıyoruz çünkü sunucumuzu yetkilendirmedik. Sunucu listesinde sunucumuzun üzerindeyken sağ-klikleyelim, karşımıza çıkan menüden Authorize şıkkını seçelim. Sunucunun yanındaki kırmızı okun yeşile dön-
161
TCP/IP
meşini bekleyelim. Eğer makul bir sürede yeşile dönmezse DHCP konsolunu kapatıp yeniden açabiliriz.
Şimdi DHCP konsolumuz şöyle görünecek: Sunucumuzun yanındaki ok
Şekil 12.20 DHCP sunucu yetkilendirildikten sonra konsolun görünüşü,
yeşile dönmüş ve yön değiştirmiş. Ama tanımladığımız adres havuzunun yanındaki ok kırmızı. Çünkü adres havuzunu da harekete geçirmek (Activate) gerekiyor. Adres havuzunu sağ-klikleyip Activate diyelim.
Artık adres dağıtımı yapabiliriz.
Dağıtılan adresleri DHCP konsolunda adres havuzunun altındaki Address Leases (Kiralanan Adresler) bölümünde görebilirsiniz;
IP adresleriyle birlikte yönlendiricinin, DNS sunucunun ve WINS
162
Windows 2000 Altında TCP/IP
sunucunun adreslerini göndermek istersek Scope Options (Adres Havuzu Seçimlik Bilgileri) kısmına gidip sağ-klikleyeceğiz ve Configure Options (Seçimlik bilgileri gir) seçeneğini seçeceğiz. Karşımıza şu ekran çıkacak:
Şekil 12.22 Seçimlik bilgiler
Buradan önce Router (yönlendirici) adresini girelim. 003 Router ifadesinin yanındaki kutuyu işaretleyelim ve aşağıda açılan bölüme ya yönlendiricinin IP adresini girelim ya da yönlendiricinin adını girip Resolve (IP adresini bul) tuşuna basalım:
163
TCP/IP
Aynı şekilde DNS sunucunun adresini de girelim. Bu işlemleri tamamladığımızda konsolda Scope Options bölümü şöyle görünecek:
Şekil 12.24 Seçimlik bilgilerin konsoldan görünüşü.
164
Windows 2000 Altında TCP/IP
Seçimlik parametreleri adres havuzu başına değil de sunucu başına da tanımlayabiliriz. O zaman sunucu başına tanımlı seçimlik bilgiler bütün adres havuzları için geçerli olacaktır. Bu bilgileri de sunucunun altındaki Server Options bölümünden veriyoruz.
Şimdi önemli bir bölüme geldik.
Windows 2000 ortamında WINS sunucuya gerek duyulmadığını söylemiştik. Onun görevini de DNS sunucu yapacaktı. İstemciler ya da istemcilere IP adresi dağıtan DHCP sunucu, bilgisayar adı-IP adresi ve ilgili hizmetler şeklindeki bilgiyi DNS sunucuya kaydedecekti. Hatta bu amaçla DNS sunucudaki domainler üzerinde dinamik güncelleme yapılacak demiştik (Allow Dynamic Updates: Yes). Şimdi bunu ayarlayalım.
Adres havuzunun üzerinde iken sağ-klikleyelim ve Properties seçeneğini İşaretleyelim, oradan da DNS sayfasına gidelim.
Şekil 12.25 DHCP ile DNS bağlantısının yapılması
165
TCP/IP
Bu sayfadaki şıklara bakalım:
Automatically update DHCP client information in DNS
(Otomatik olarak DHCP istemci bilgilerini DNS’de güncelle)
Update DNS only if DHCP client requests
(Yalnızca DHCP istemci isterse DNS’i güncelle)
Always update DNS
(İstemci istese de istemese de DNS’i her zaman güncelle)
Discard forward (name-to-address) lookups when lease expires
(Bilgileri otomatik olarak kaydedilen İstemcilerin kira süresi dolarsa onlara ilişkin isim-adres sorgulamalarına yanıt verme)
Enable updates for DNS clients that do not support dynamic update (Dinamik güncellemeden haberi olmayan istemcilerin bilgilerini güncelle)
Bu bolümde başlangıçta seçilmemiş olan “Enable updates for DNS clients that do not support dynamic update” şıkkını seçelim ki eski tip işletim sistemlerine sahip istemcilerin bilgisi DNS sunucuya gönderilsin.
166

Murat Yıldırımoğlu

Yazar Hakkında

Hakkında:
Kimlik kartı

Bir Cevap Yaz

kendi isteğimle kurallara uygun yazıyorum. (Lütfen yandaki kutuyu işaretleyin.)

Otomatik robotlara karşı soru.