You are on page 1of 228

Her Yönüyle

İnternetin Altyapısı

TCP/IP
MURAT YILDIRIMOĞLU

YAYINCILIK ve İLETİŞİM LIMITED ŞİRKETİ


Pusula 136
Her Yönüyle İnternetin Altyapısı TCP/IP
ISBN 975-6477-55-5

Murat Yıldırımoğlu
1.Baskı: Mayıs 1998
2.Baskı: Aralıık 1999
3.Baskı: Eylül 2000
4.Baskı: Şubat 2001
5.Baskı: Ekim 2001
6.Baskı: Mayıs 2002
7.Baskı: Mart 2003
8.Baskı: Temmuz 2005
9.Baskı: Mayıs 2006

Yayın yönetmeni: Mustafa Arslantunalı


Yayın koordinatörü: Bünyamin Güneş
Düzelti: Suat Özdemirci
Kapak illüstrasyonu: Mehmet Öztürk
Sayfa düzeni: Özgür Güder
Dağıtım sorumlusu: Hüseyin Üstünel

Baskı: Şefik Matbaası, Tel: (0212) 472 15 00

Bu kitabın bütün yayın hakları Pusula Yayıncılık ve İletişim San. Ve Tic. Şti’ne aittir.
Yayınevimizin yazılı izni olmaksızın kısmen veya tamamen alıntı yapılamaz, kopya
edilemez, çoğaltılamaz ve yayınlanamaz.

Pusula Yayıncılık ve İletişim San. Ve Tic. Ltd. Şti.


İnönü Caddesi, Emektar Sokak, No: 24/B
34427 Gümüşsuyu-Beyoğlu / İSTANBUL

Tel. : (0212) 252 42 80 pbx


Faks : (0212) 293 15 44
E-posta : pusula@pusula.com
Web : www.pusula.com
Murat YILDIRIMOĞLU, 1964’ün son haftası, Ankara’da doğdu. 1988 yılında
ODTÜ’den elektronik mühendisi olarak mezun oldu. 1990 yılından itibaren de fiilen
bilgisayar alanında çalıştı. Bilgisayar alanında pek çok işe girdi çıktı.

Yine 1990 yılından itibaren birçok bilgisayar dergisine yazmaya başlayan yazarın
en büyük özelliği yazdığı dergilerin biri hariç (Bilgisayar Pazarı, PC günlüğü PC!,
son olarak da PCWorld) kapanmış olmasıdır. Kendisi kapanacak dergileri
saptama konusunda uzmandır. Sadece PCWorld yayın hayatına devam
etmektedir.

Koyu bir Microsoft ve Bill Gates hayranı olan Murat Yıldırımoğlu; 1997 yılının
sonunda Microsoft Sertifikalı Sistem Mühendisi (MCSE) ve Microsoft Sertifikalı
Eğitmen (MCT) oldu.

2003 yılı şubat ayında Ankara’da kendi eğitim merkezini (Yıldırımoğlu Eğitim
Merkezi) kurdu. Halen bu merkezde Microsoft Sistem Mühendisliği (MCSE)
eğitimleri veriyor ve çeşitli kuruluşlara teknik destek sağlıyor.

Kendine murat@muratyildirimoglu.com adresinden ulaşılabilir, www.muratyildirimoglu.com


adresindeki sitesinden çeşitli yazılarını okuyabilirsiniz.
Sevgili eşim Şebnem’e
İçindekiler

1. Giriş 1

2. TCP/IP'ye Giriş 3
RFC (Request for Comment) 4

3. TCP/IP'nin Yapısı 13
Windows Sockets (Winsock) 15
TCP 18
UDP 20
ARP 21

4. IP Adresleme 27
IP Adresi Sınıfları 28
Subnet Maskesi (Subnet Mask) 31
Alt Ağlara Ayırma (Subnetting) 37

5. IP Yönlendirme (Routing) 45
Bir Windows 2003 Bilgisayarın Yöneltici Yapılması 47
Yönlendirme Tablosu (Routing Table) 50

6. DHCP 61
DHCP Sunucu Hizmetinin Kuruluşu 62
DHCP Sunucu Hizmetinin Yapılandırılması 63

7. WINS 99
NetBIOS Adları 99
WINS Mekanizmasının Çalışması 104
NetBIOS Adlarının IP Adreslerine Çevrilmesi 110

8. DNS 131
DNS’nin Yapısı 132
Dinamik Güncelleme ve AD ile Tümleşik Bölgeler 183
Windows 2000, XP ve 2003’de DNS ile ilgili Olarak
Yapılması Gerekenler 187
9. Bilgisayar Tarama Hizmeti 191

10. SNPM: Basit Bir Ağ Yönetim Protokolü 195


SNPM Hizmetinin Kuruluşu ve Yönetimi 199

11. FTP ve Telnet 203


FTP (File Treansfer Protocol: Dosya Aktarım Protokolü) 203
Telnet 205

12. RFC Listesi 213

13. Kendimizi Sınayalım 217


1
Giriş

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. 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.

TCP/IP’yi anlatırken belli bir platformu, Windows 2003 platformunu (Türkçe


sürümünü) seçiyorum. Windows 2003; 1993 yılında piyasaya çıkan Windows
NT’ye dayanıyor. TCP/IP kitabının ilk 7 baskısı bu NT işletim sistemini esas
olarak almıştı. Yine NT tabanlı olan Windows 2000, Windows XP ve son ola-
rak Windows 2003 ile birlikte TCP/IP alanında sayısız yenilik geldi. Artık
kitabımızda köklü bir değişiklik ve güncelleme yapmanın zamanı gelmişti. Bu
kitapta anlatılan TCP/IP kavramları genel olarak her platformda aynen
geçerlidir. Yalnızca Windows 2003’e özgü yerleri kitap boyunca
vurgulayacağım.

Kitap içinde bazı yerlerde Ağ izleyicisi (Network Monitor) adındaki bir program
ile alınmış veri paketleri gösteriliyor. Ağ İzleyicisi ç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 sürümü var: Birincisi 2003 içinde ü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 sürüm.
Birincisinin en belli başlı kısıtı, yalnızca izleyicinin yüklendiği makineye
gelen/giden trafiği alabilmesi. Tam sürüm ise ağdaki her türlü trafiği alabiliyor
ve buna benzer başka avantajlara sahip. Tam sürümü çok gerekli değil;
ağdaki trafiği izleyip sorunu öğrenmek için kısıtlı sürüm de oldukça yeterlidir.

TCP/IP yapılandırmasını test etmek ve gözlemek için kullanabileceğimiz çok


sayıda komut ve program var; PING, ROUTE, IPCONFIG gibi. Bu komutlardan

-1-
TCP/IP

bazılarını konuları anlatırken açıklıyorum. Komutların bir özetini Ekler kısmın-


da bulabilirsiniz.

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 sözcükler SERVER,


CLIENT, SERVİCE, FRAME ve ROUTER oluyor. Bu sözcükleri İ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 sözcüğünün karşılığı olarak


SUNUCU sözcüğünü, CLIENT’ın karşılığı olarak İSTEMCİ sözcüğünü,
SERVICE’ın karşılığı olarak HİZMET sözcüğünü, FRAME için ÇERÇEVE
sözcüğünü, ROUTER için YÖNELTİCİ sözcüğünü kullanıyorum. Geriye kalan
İngilizce terimlerin de mümkün olduğu sürece Türkçe karşılıklarını
kullanıyorum.

Kitabın sonunda güzel bir sürpriz sizleri bekliyor: Bir sınav! Kitabı bitirdikten
sonra kendinizi bir sınayın bakalım.

-2-
2
TCP/IP'ye Giriş

TCP/IP'nin kökleri 1960'ların sonunda ve 1970'lerin başında Amerikan


Savunma Bakanlığı'na bağlı ileri Araştırma Projeleri Ajansının (Advanced
Research Projects Agency, ARPA) yürüttüğü paket anahtarlamalı 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
iletiş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’i
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.

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.

-3-
TCP/IP

RFC (Request for Comment)


Internet ile ilgilenmeye başladığımızda sıklıkla duyacağımız bir terim de RFC
terimidir. Internet standartları RFC ifadesi ile anılır. Her Internet protokolü veya
mekanizması için bu protokolleri, mekanizmaları tanımlayan bir RFC vardır,
örneğin, TCP/IP’ye adını veren TCP (Tansmission Control Protocol) RFC
793’de, Telnet RFC 854’de, HTTP 1.0 RFC 1945’de ve SMTP RFC 821’de
tanımlanmıştır. En önemli RFC’lerin listesini, EK A’da bulabilirsiniz.

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 için kendisine özgü bir (hatta
birden fazla) protokol yazmış. Bunların çoğu yok olup gitmiş.

Günümüzde yaygın olarak kullanılan ağ protokollerini şöyle sıralayabiliriz:

• NetBEUI
• IPX/SPX
• TCP/IP

Yukarıdaki üç 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.

Yukarıdaki üç protokol arasında kurulması en kolay olanı NetBEUI, en zoru


TCP/IP’dir. Bilgisayarlara NetBEUI protokolünü kurduğunuz anda birbirleriyle
konuşmaya başlarlar. TCP/IP protokolünde ise IP adreslerini, Subnet Maskesi
denilen bir parametreyi ve gerekiyorsa Default Gateway, WINS Server ve DNS
server adreslerini doğru olarak vermeniz gerekir. 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).

Yukarıdaki üç protokol arasında en hızlısı NetBEUI, en yavaşı TCP/IP’dir.

-4-
TCP/IP’ye Giriş

IPX/SPX ise her iki bakımdan da ortadadır.

Bu durumda akıl ve mantık, kullanılacak protokol 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:

NetBEUI’nin iki temel sorunu var: Birincisi firmaya özel olması. NetBEUI,
Microsoft ve IBM firmalarının birlikte, kendi bilgisayarları iç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, ikinci temel sorun ise NetBEUI’nin
yönlendirilebilir (routable) olmaması. Yani, NetBEUI ile aşağıdaki gibi bir ağ
kuramayız:

Şekil 2.1: Bir yöneltici ile birbirine bağlanmış iki ağ.

Şekilde bir yönelticinin 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önelticinin ö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. İkinci bir nedenimiz de şudur: Novell’in kendisi ana ürünü olan
Netware’in son sürümlerinde birincil protokol olarak IPX/SPX’i değil TCP/IP’yi
kullanmaktadır. Novell’in terk ettiğ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ınlaşmıştır. Üstelik
sahibi yoktur ya da herkes onun sahibidir.

İlk zamanlar, bir kurum Internet’e bağlandığında yalnızca Internet’e bağlanan


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ı Internet’e çıkarmak gerekli olmaya başladı. Bu durumda da içerde
başka bir protokol, Internet’e bağlanırken farklı bir protokol kullanmak yerine
havada, karada, suda, her yerde, her zaman TCP/IP kullanmak çok daha
mantıklı olmaktadır.

-5-
TCP/IP

TCP/IP: Internet'in Protokolü


TCP/IP, Transmission Control Protocol/Internet Protocol ifadesinin kısaltması.
Türkçesi “İletimi Denetleme 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ğını 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.
Şimdi niye bu kadar protokol var, TCP/IP içindeki yığınla protokol ne yapıyor,
anlatmaya başlayalım.

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, SATIS ya da AHMETPC gibi
açıklayıcı ve anımsanması kolay adlar verilir).

IP adresi ise 131.107.2.101 örneğinde olduğu gibi 4 bölümden oluşan bir


adrestir. Nokta ile bir diğerinden ayrılan bu bölümlerin her biri 0 ile 255
arasında bir değer alabilir.

MAC adresi, Ethernet ya da Token-Ring gibi alt düzey ağ teknolojilerinin


kullandığı bir adrestir. Bilgisayarlardaki ağ kartlarına ya da benzer ağ
cihazlarının içine değiştirilmez bir şekilde yerleştirilmiş bulunan bir adrestir.
0020AFF8E771 örneğinde olduğu gibi onaltılık düzende (hexadecimal)
rakamlardan 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 ile gerçekleşir. Çünkü IP


adresleri TCP/IP protokolüne özeldir. Başka bir protokolde, örneğin, NetBEUI
protokolünde IP adresi diye bir şey yoktur. Bilgisayarların adları ise sistemden
sisteme değişiklik gösterir: örneğin, Microsoft işletim sistemlerine sahip

-6-
TCP/IP’ye Giriş

bilgisayarların adları 15 karakter iken Internet ortamında adlar 255 karaktere


kadar çıkabilir.

Bütün protokollerde değişmeden kalan tek şey MAC adresidir. Ethernet ya da


Token-Ring teknolojileri yalnızca bu adresi kullanabilirler.

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ğ Bağlantılarım (My


Network Places) simgesine tıkladığınızda, karşınıza, 0020AFF8E771 benzeri,
yığınla rakamın çıkmasını mı isterseniz, yoksa MAILSERVER, MUHASEBE,
AHMETPC gibi ifadelerin çı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, insanlar ise, bilgisayarları göstermek için
bilgisayar adlarını kullanmak eğilimindeler.

Yukarıdaki 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 ve
alt ağlara ayırma işlemleri için IP adreslerine gerek duyuyoruz. (Bu sözlerin ne
anlama geldiğini ilerde göreceğiz.)

Bir bilgisayar bir başka bilgisayarın IP adresine sahipse ama MAC adresine
sahip değilse Adres Çözümleme Protokolü (Adress Resolution Protocol, ARP)
adı verilen bir protokol kullanarak IP adresini MAC adresine çevirir. TCP/IP’nin
bir protokol kümesi olduğunu söylemiştik, iş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 ile yanıt verir, ilk bilgisayar

-7-
TCP/IP

artık diğer bilgisayarın MAC adresini bildiği 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 adresi
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ış girile- bilmesidir. 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ı


Bilgisayarları Dinamik Yapılandırma Protokolü’dür (Dynamic Host
Configuration 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ı 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 “iyi ama, biz Windows XP’de ya da Windows
2003’de Ağ Bağlantılarım’a (ya da My Network Places’a) tıkladığımızda
karşımıza IP adresleri ya da MAC adresleri gelmiyor ki, yalnızca bilgisayar
adları geliyor” diyebilirsiniz; haklısınız. Başta söylediklerimizi anımsayalım:
TCP/IP dünyasında bir bilgisayarı üç şey belirler: Bilgisayarın adı, 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 (AHMETPC,
MEHMETPC ya da SATIS, MUHASEBE gibi) ve iletişim sırasında bu adları
kullanıyoruz.

-8-
TCP/IP’ye Giriş

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ı İP adreslerine nasıl çevriliyor? En basitinden şunu
yapabiliriz: Bulunduğumuz yerde “Adı şu olan makine 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 dua 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.

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 iki 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 olarak da
“muhasebe.altindam.com.tr” adını verebiliriz. Host ismindeki ilk parametre
(“muhasebe”) bir Internet domain’indeki bilgisayarın ismidir. Host isminin geri
kalanı ise o bilgisayarın bulunduğu Internet domain’ini tanımlar
(altindam.com.tr).

Bilgisayarın “bilgisayar adı+domain adı”’ndan oluşan host adına Tümüyle


Tanımlanmış Ad (Fully Qualified Name, FQN) de denilir.

Bilgisayar adları iki tane olunca ad/IP eşleştirme (çözümleme) mekanizmaları


da iki tane oluyor. Microsoft, NetBIOS adlarını IP adresine çevirme konusunda
Windows Internet Adlandırma Hizmeti’ni (Windows Internet Name Service-
WINS) öneriyor. Host adlarını IP’ye çevirme konusunda ise hem Microsoft,
hem de Internet dünyası Domain Adı Sistemi (Domain Name System, DNS)
mekanizmasını kullanıyor.

WINS hizmetinde bir makineyi 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ı

-9-
TCP/IP

gibi). Böylece WINS sunucu üzerinde ortamdaki bilgisayarların adları ve IP


adreslerine ilişkin bir veritabanı oluşturuluyor.

Bir bilgisayar NetBIOS adını bildiği bir bilgisayarın IP adresini bulmak istediğ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 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?

Yukarıda 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 (Domain Name
System). Bu sistemde yakın zamana kadar bilgisayar adları ve IP adresleri
DNS sunucu olarak konumlandırılan bilgisayarlara “elle” kaydediliyordu.
Burada WINS’dekine benzer bir otomasyon söz konusu değildi. Ad-IP
bilgilerini girme işi bilgi işlem bölümü çalışanlarının (bu kitabı okuduğunuza
göre sizin) üzerine kalıyordu. Bilgiler DNS’e kaydedildikten sonra bir bilgisayar
ismini bildiği bir bilgisayarın IP adresini öğrenmek isterse DNS sunucuya
gidiyor ve adresi soruyordu. Bu konuda hep di’li geçmiş zaman kullandım
çünkü Windows 2000 ile birlikte DNS’e dinamik güncelleme (dynamic update)
özelliği geldi. Bu özellik sayesinde bilgisayarlar aynen WINS’de olduğu gibi,
kendi host adlarını ve IP adreslerini DNS sunucuya kaydettirebiliyorlar.

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.

- 10 -
TCP/IP’ye Giriş

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
yapılandırması sağlamak için kullanılır. ARP, IP adresini MAC adresine çevirir.
WINS, NETBIOS adlarım IP adresine çevirir. DNS, host adlarını IP adresine
çevirir. Ayrıntıları istiyorsanız kitabı okumaya devam.

- 11 -
3
TCP/IP'nin Yapısı

Bilgisayar ağlarını anlatan kitapların hepsinde yedi katmanlı OSI yapısından


söz edildiğini görmüşsünüzdü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:
Uygulama
Windows Sockets NetBIOS (Application)

İletim
TCP UDP (Transport)

ICMP IGMP IP Internet

ARP

Ethernet, Token-Ring, FDDI, Frame Realy, X-25 SUP, PPP Ağ


(Network)

Şekil 3.1: TCP/IP protokolü kullanan bir bilgisayar ağının katmanları.

Ağ (network) katmanı bilgisayarda bulunan ağ kartını, hub’ları, switch’leri,


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üzenlenmiş 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:

• ARP: IP adreslerini MAC adreslerine çeviriyor.


• ICMP: Kontrol mesajları gönderip karşılığında gitti-gitmedi bilgisi sağlar.

- 13 -
TCP/IP

Örnek olarak PING komutu bu protokolü kullanarak karşı bilgisayarın


TCP/IP iletişimi bakımından ayakta olup olmadığını 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önderebilir: Mesaj ya bütün makinelere (broadcast mesaj), ya
bir gruba (multicast), ya da doğrudan bir makineye (unicast-directed)
gönderilebilir.

• IP: Paketlerin adresleme ve yönlendirme işlemlerini yapar. Bağlantısız


(connectionless) bir protokoldür. Yani, mesajların iletilmesi için ilk olarak
makineler arasında bağlantı kurulmaz ve mesajların yerine ulaşıp
ulaşmadığı kontrol edilmez.

İletim (transport) katmanında bilgisayarlar arası iletişim iç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: iki 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 iş yapacak uygulamaların bulunduğu


katmandır. FTP, DNS, WINS gibi uygulamalar, PING benzeri komutlar bu
katmanda bulunur.

Ağ işlevleri içeren bir uygulama geliştirmek için iki spesifikasyonumuz var. Bu


spesifikasyonlar bilgisayarların nasıl adlandırılacağını, hangi komutların
kullanılabileceğini, iletişimin nasıl yapılacağını vb. belirler.

Internet üzerinde ağ uygulamaları için Microsoft ve IBM’in birlikte geliştirdiği


NetBIOS spesifikasyonu ya da Internet ortamındaki standart olan Sockets’in
Windows uyarlaması, Windows Sockets spesifikasyonu. Bir programı NetBIOS
spesifikasyonu ile yazarsanız bu program Microsoft işletim sistemleri altında

- 14 -
TCP/IP’nin Yapısı

çalışır, diğer işletim sistemlerinde çalışmaz. Uygulama Windows Sockets


spesifikasyonuna uygun yazılırsa her işletim sisteminde çalışır. Sockets
uyumlu bir uygulamaya örnek olarak PING programını verebiliriz. NetBIOS
uyumlu bir uygulamaya örnek olaraksa net komutunu verebiliriz (NET VİEW
\\INSUNUCU komutunda olduğu gibi).

Windows Sockets (WinSock)


TCP/IP ortamında uygulama geliştirmek için kullanılabilecek
spesifikasyonlardan birisi Sockets’dir. PC’lerde bu spesifikasyonun PC’ye
uygun hale getirilmiş bir sürüm, Windows Sockets kullanılır.

Bir soket uygulaması üç şey ile tanımlanır: Bilgisayarın IP adresi, hizmet 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 sözcük 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. 0 ile 1023 arasındaki port
adresleri İyi Bilinen Port Numaraları (Well-Known Port Numbers) olarak
tanımlanır. İyi bilinen port numaraları Internet ortamındaki standart hizmetler
tarafından kullanılır.

Örneğin, DNS hizmeti 53 nolu portu, HTTP hizmeti 80 nolu portu, FTP hizmeti
ise 21 nolu portu kullanırlar.

\windows\system32\drivers\etc klasöründeki “services” dosyasında


port numaralarının bir listesini bulabilirsiniz.

Burada dikkat edilecek nokta şudur: TCP ve UDP’nin ayrı ayrı port numaraları
vardır, örneğin yukarıdaki adrese gidip services dosyasının bir kısmına göz
atalım:

- 15 -
TCP/IP

# Copyright (o) 1993-1999 Microsoft Corp.


#
# This file contains port numbers for well-known services defined by IANA
#
# Format:
#
# <service name> <port number>/<protocol> [aliases...] [#<comment>]
#
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/udp users #Active users
systat 11/udp users #Active users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote #Quote of the day
qotd 17/udp quote #Quote of the day
chargen 19/tcp ttytst source #Character generator
chargen 19/udp ttytst source #Character generator
ftp-data 20/tcp #FTP, data
ftp 21/tcp #FTP. control
telnet 23/tcp
smtp 25/tcp mail #Simple Mail Transfer
#Protocol
time 37/tcp timeserver
time 37/udp timeserver
rlp 39/udp resource #Resource Location
#Protocol
nameserver 42/tcp name #Host Name Server
nameserver 42/udp name #Host Name Server
nicname 43/tcp whois
domain 53/tcp #Domain Name Server
domain 53/tcp #Domain Name Server
bootps 67/udp dhcps #Bootstrap Protocol Server
bootpc 68/udp dhcpc #Bootstrap Protocol Client
tftp 69/udp #Trivial File Transfer
gopher 70/tcp
finger 79/tcp
http 80/tcp www www-http #World Wide Web
kerberos 88/tcp krb5 kerberos-sec #Kerberos
kerberos 88/udp krb5 kerberos-sec #Kerberos
hostname 101/tcp hostnames #NIC Host Name Server
iso-tsap 102/tcp #ISO-TSAP Class 0
rtelnet 107/tcp #Remote Telnet Service
pop2 109/tcp postoffice #Post Office Protocol -
#Version 2
pcp3 110/tcp #Post Office Protocol -
#Version 3
sunrpc 111/tcp rpcbind portmap #SUN Remote Procedure
#Call
sunrpc 111/udp rpcbind portmap #SUN Remote Procedure
#Call

- 16 -
TCP/IP’nin Yapısı

auth 113/tcp ident tap #Identification


#Protocol
uucp-path 117/tcp
nntp 119/tcp usenet #Network News
#Transfer Protocol
ntp 123/udp #Network Time Protocol
epmap 135/tcp loc-srv #DCE endpoint resolution
epmap 135/udp loc-srv #DCE endpoint resolution
netbios-ns 137/tcp nbname #NETBIOS Name Service
netbios-ns 137/udp nbname #NETBIOS Name Service
netbios-dgm 138/udp nbdatagram #NETBIOS Datagram
#Service
netbios-ssn 139/tcp nbsession #NETBIOS Session
#Service
imap 143/tcp imap4 #Internet Message
#Access Protocol
pcmail-srv 158/tcp #PCMail Server
snmp 161/udp #SNMP
snmptrap 162/udp snmp-trap #SNMP trap
print-srv 170/tcp #Network PostScript
bgp 179/tcp #Border Gateway Protocol
irc 194/tcp #Internet Relay Chat
#Protocol
ipx 213/udp #IPX over IP
ldap 389/tcp #Lightweight Directory
#Access Protocol
https 443/tcp MCom
https 443/udp MCom
microsoft-ds 445/tcp
microsoft-ds 445/udp
kpasswd 464/tcp # Kerberos (v5)
kpasswd 464/udp # Kerberos (v5)
isakmp 500/udp ike #Internet Key Exchange
exec 512/tcp #Remote Process
#Execution
biff 512/udp comsat
login 513/tcp #Remote Login
who 513/udp whod
cmd 514/tcp shall
syslog 514/udp
printer 515/tcp spooler
talk 517/udp
ntalk 518/udp

Gördüğünüz gibi echo, discard, systat, daytime, qotd, chargen vb. hizmetler
aynı port numaralarını kullanıyorlar. Ama bunların protokolleri (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.

- 17 -
TCP/IP

Çalışma şu şekilde olur: Bir başka bilgisayarda bulunan bir programla iletişime
geçmek isteyen program IP adresi ile port numarasından oluşan bir soket
yaratır ve iletişim süresince bu soketi kullanır.

TCP
TCP/IP protokol kümesine adını veren TCP (Transmission Control Protocol:
İletim Denetimi Protokolü), bağlantılı (connection-oriented) 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


geçmeden önce aralarında bir oturum (session) açıyorlar. Oturumun açılması
sırasında bilgisayarlar kendi iletişim parametrelerini birbirlerine iletiyorlar,
iletiş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 doğru bir şekilde 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 işler yapan protokoller ve hizmetler verilerini TCP
ile iletirler. Örnek ister misiniz? 21 no’lu portu kullanan FTP, 80 portu kullanan
HTTP.

Ağ izleyicisi 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.

- 18 -
TCP/IP’nin Yapısı

Şekil 3.2: İki bilgisayar arasında bir TCP/IP oturumunun açılışı.

ANASUNUCU ve IDRISPC adındaki makineler arasında gidip gelen bu üç


çerçevenin amacı veri paketlerinin (bu paketlere TCP’de segment 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: Dosya paylaşım işlemleri yapmak üzere 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.

Ağ İzleyicisi programı ile ağ trafiğini kapma iş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 segmente 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. İki ardışık çerçeve tampon
belleğe yerleştirilince alıcı bilgisayar aldığı en son çerçeve için bir onay
mesajını 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.

- 19 -
TCP/IP

İ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 gelmez-
se veri iletimini tekrarlayacaktır. Ama burada ilginç olan şey şu: Çerçeveleri te-
ker 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 windows) 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 portu

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
UDP (User Datagram Protocol: Kullanıcı Datagram Protokolü), yukarıda
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 adresimizi, 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.

- 20 -
TCP/IP’nin Yapısı

“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 iletim 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
iş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.

Yukarıdaki cümlede “bu aşamada” dediğimize dikkat ettiniz mi? UDP’nin


sağlayamadığı güvenilirliği daha yukarlarda bulunan uygulama programları
sağlayabilir.

UDP’yi kullanan programlara örnek olarak 161 nolu portu kullanan SNMP’yi
(Simple Network Management Protocol, Basit Ağ Yönetim Protokolü) ve 53
nolu portu kullanan DNS’i (Domain Name System) 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 kad

Bu başlık kısmını TCP’nin başlığı ile karşılaştırırsak ne kadar basit olduğunu


farkedebiliriz.

ARP
ARP (Address Resolution Protocol :Adres Çözümleme Protokolü), IP adresi
bilinen bir makinenin MAC adresini bulmak için 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 makinenin 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.

- 21 -
TCP/IP

ARP kaşesinde iki türlü kayıt bulunur: statik ve dinamik. Dinamik kayıtlar
yukarıda 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_LOCAL_MACHİNE\SYSTEM \CurrentControlSet\Services\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
3. Farklı bir donanım adresini içeren bir ARP broadcast’i alınırsa silinir.

Bir adresi ARP kaşesine elle giriyorsak MAC adresinin her bir baytı tire ’-‘ ile
NOT

ayrılmalıdır.

Şimdi network monitor adındaki programımızı kullanarak ARP’yi işbaşında


görelim:

Şekil 3.3: ARP ile bir İP adresinin MAC adresine dönüştürülmesi.

- 22 -
TCP/IP’nin Yapısı

Yukarıdaki şekilde, 2. çerçevede ANASUNUCU adındaki bir bilgisayar ARP


REQUEST mesajı kullanarak 192.168.0.5 adresindeki bilgisayarın MAC
adresini soruyor. Bu soru mesajı broadcast ediliyor; yani, ağdaki herkese
gidiyor.

Buna karşılık olarak bu adresin sahibi olan IDRISPC bilgisayarı bir ARP REPLY
mesajı ile kendi MAC adresini bildiriyor. Bu ikinci mesajın broadcast
edilmediğine dikkat ediniz: İlk mesajda ANASUNUCU bilgisayarının MAC
adresi bildirildiği için yanıt doğrudan ona yollanıyor, inanmadınız mı? O zaman
ARP REQUEST mesajını biraz daha ayrıntılı şekilde inceleyelim:

Şekil 3.4: ARP REQUEST mesajının ayrıntısı.

Şekilde, gönderilen mesajın ayrıntılarını görüyoruz. Mesajı yollayan makine


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.

- 23 -
TCP/IP

Şekil 3.5: ARP REPLY mesajının ayrıntısı.

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 (Fiziksel
Adres) ve Kayıt Tipi alanları bulunuyor.
Kaşeye statik bir kayıt eklemek için arp -s komutu verilir. Komutun yazımı
şöyledir:

Şekil 3.6: ARP kaşesinin görüntülenmesi.

Arp —s IP adresi MAC adresi (MAC adresi tirelerle ayrılacak)

- 24 -
TCP/IP’nin Yapısı

Örnek:

Arp -s 192.168.0.5 00-e0-06-09-78-87

Bu komut 192.168.0.5 adresine karşılık olarak 00-e0-06-09-78-87 şeklinde bir


MAC adresini kaşeye ekler. Bundan sonra herhangi bir şekilde 192.168.0.5
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 için arp -d komutu verilir.
Komutun yazımı şöyledir:

Arp -d IP adresi

Örneğin, yukarıda kaşeye eklediğimiz kaydı silmek için şu komutu vermeliyiz:

Arp -d 192.168.0.5

- 25 -
4
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 için kullanabileceğimiz 32 bit varsa toplam 232 = 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:

11000000 10101000 00000000 00000001

Yukarıdaki 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 0 ve 1 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, yukarıdaki adres

192.168.0.1

şeklinde yazılıyor. IP adreslerinin bu şekildeki yazımına onluk düzendeki


noktalı yazım (dotted decimal notation) deniyor.

Oktetler soldan başlayarak numaralandırılıyor. Örneğin yukarıdaki IP adresinin


birinci oktetinde 192 değeri var, dördüncü oktetinde 1 değeri var.

- 27 -
TCP/IP

Peki, ikilik düzenden onluk düzene nasıl geçtik? Bunun için ortaokul
matematiğini anımsamak gerekiyor. Bir sayıyı oluşturan rakamlar bulundukları
basamaklara göre değer kazanırlar. Örneğin, bir oktette basamak değerleri şu
şekildedir:

27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1

İkilik düzende yazılan bir rakamın sağdan ilk basamağı 20 ’a karşılık gelir. Yine
okul matematiğinden anımsayacağınız gibi herhangi bir rakamın 0 üssü her
zaman 1’dir. Sağdan ikinci basamağı 21 ’e karşılık gelir. Herhangi bir rakamın
1 üssü kendisine eşittir; burada 2’ye eşit olacaktır. Daha sonraki rakam 22 ’ye,
bir sonraki 23 ’e eşit olur ve böyle gider.

Yukarıdaki adresin birinci okteti (11000 0000) ile bir hesap yapalım. Aşağıda
ilk satır ikili düzendeki bir sayıyı, altındaki satır ise bu sayıyı oluşturan
rakamların onluk düzendeki karşılıklarını göstermektedir.

1 1 0 0 0 0 0 0
128*1 64*1 32*0 16*0 8*0 4*0 2*0 1*0

İkilik düzendeki bir rakamı onluk düzene çevirirken bu eşitlikleri kullanırız. İkilik
düzendeki sayının her bir rakamını onluk düzene çevirir ve toplarız. Yukarıdaki
örnekte ikili düzendeki sayı onlu düzende 131’e karşılık gelir. Çünkü 27 ’ye
karşılık gelen basamakta 1 var, buradan onlu düzendeki 128 sayısını elde
ederiz. 26 ’ya karşılık gelen basamakta da 1 var. Oradan da 64 gelir. 0’lı
basamakları atlıyoruz (oralardan bir değer gelmiyor). Hepsini toplarsak da onlu
düzendeki 192 sayısını elde ederiz.

Aynı işlemi diğer oktetler için de yaptığımızda 192.168.0.1 adresini elde ederiz.

Yukarıda 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?

IP Adresi Sınıfları
Internet adresleri beş sınıfa (Class) 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ıfları A, B, C, D ve E şeklinde sıralanır.

- 28 -
IP Adresleme

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.

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 ilk üç oktet ile belirlenir. Geri kalan tek oktet o
ağdaki bilgisayarı gösterir. Örneğin, Devlet İstatistik Enstitüsü C sınıfı bir adres
kullanır.

D ve E sınıfı adresleri ise özel test adresleridir. Bizim tarafımızdan kullanılmaz.

Peki, bir adresin A, B ya da C sınıfı olup olmadığını nereden anlayacağız?


Bunu adresin ilk oktetine bakarak anlıyoruz.

İlk oktet 0 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.

Yukarıdaki 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 bazılarının da özel
anlamları vardır (çoğunun yoktur). 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 0 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
27 = 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 kullanılabilir.
Elimizde üç oktet bulunduğuna göre adresleme için 3 X 8=24 bit var. 224 de
yaklaşık 16 milyon yaptığına göre bu ağda 16 milyon bilgisayar bulunabilir.

- 29 -
TCP/IP

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ı ile 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, 216 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 ilk üç 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 28 = 256 değil de tam tamına 254?
Açıklayacağız, bizi izlemeye devam edin).

Peki, Internet’te adresleri kim dağıtıyor? 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Ü yapıyor. Her bir ülkede de ODTÜ benzeri yerel kurumlar
kendilerine verilen adreslerin dağıtımından sorumlu oluyorlar.

Yukarıda 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ğini 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 bilgisayar sayısı
400.000 oluyor. Hadi, aralığı biraz daha geniş tutalım ve 1.000.000 adres
kullanılıyor diyelim. En çok 1 milyon adrese gereksinimimiz olduğu halde
Internet’ten 16 milyon adreslik bir kad aldığımız için ne oluyor? 4 milyar adres
içinden 15 milyonluk bir kad 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 Internet’teki 4 milyar adres hemen hemen dolmuş
durumda. Örneğin, şu anda ne kadar isterseniz isteyin, karşılığında ne

- 30 -
IP Adresleme

ö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. 2128 ise 4 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. Ağ Adresi Dönüşümü
(Network Address Translation) mekanizmasını kullanarak tek bir IP adresini
yüzlerce, binlerce kişinin kullanmasını sağlayabiliyoruz. Hatta bazıları bu
nedenle IPv6 protokolüne geçişin hiç de gerekli olmadığını bile savunuyor.

Yukarıda verdiğimiz IP adresleri sınıfları bizim için başlangıç değerlerini


oluşturuyor. Biz herhangi bir ağı alıp alt ağlara bölerek çok farklı yapıları
yaratabiliyoruz. Bu yüzden yukarıdaki bilgileri genel bilgiler ve başlangıç
değerleri olarak kabul edin. Gerçek ağ adresleri için aşağıdaki bilgilere (subnet
mask ve alt ağlara ayırma işlemlerine ilişkin bilgiler) gereksinimimiz var.

Subnet Maskesi (Subnet Mask)


Ethernet ağ teknolojisinin bir sonucu olarak bir bilgisayar yalnızca kendisiyle
aynı fiziksel 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 İletişime geçebiliriz ama doğrudan değil dolaylı şekilde (örneğin
yönelticiler ile).

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 iç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.

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.

- 31 -
TCP/IP

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. 0 ve 1 değerini alabilecek iki X Y


değişkenim olsun. Bu değişkenlere x ve y adlarını verelim. 0 ve 1
gibi iki değer alabilecek iki değişkenle toplam dört ayrı 0 0
kombinasyon hazırlayabiliriz. Bu kombinasyonları aşağıya yazalım: 0 1

İki değer (0,1) alabilen iki değişkenle bir beşinci kombinasyon 1 0


yaratamayız (herhangi bir şekilde yaratabilirseniz tarihe geçersiniz). 1 1

Şimdi x ve y değişkenlerini bu dört değişik durum için VE


işlemine tabi tutalım: X Y X ve Y

0 0 0
Yandaki tablodan da gördüğümüz gibi yalnızca her iki
değişkeninin de değeri 1 olduğunda sonuç 1 oluyor. Diğer 0 1 0
bütün kombinasyonların değeri 0. 1 0 0
1 1 1
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:

1100 0011.1000 0110.0100 0011.1100 1000

VE 1111 1111.1111 1111.1111 1111.0000 0000

Sonuç: 1100 0011.1000 0110.0100 0011.0000 0000

- 32 -
IP Adresleme

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. Yani, 255 sayısı burada etkisiz elemandır. Onluk
düzendeki 0 ise ikilik düzendeki 0000 0000 oktetine karşılık geliyor. Bu sayıyı
da ne ile VE'lerseniz VE’leyin sonuç hep 0 olacaktır. Yani, 0 sayısı da burada
yutan elemandır. İşlemleri kolay yapmak için subnet maskesinde genellikle
255 ve 0 sayıları kullanılır. Ama çok değişik subnet maskeleriyle de
karşılaşacaksınız.

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 iki bilgisayardan oluşan örnek bir ağ düşünelim. Şekle bakınız:

195.134.67.200 195.134.67.56
Subnet Maskesi: 255.255.255.0 Subnet Maskesi: 255.255.255.0

Şekil 4.1: Örnek ağ.

Ş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
(görünüşe bakarak bunların zaten aynı ağda olduğunu düşünebilirsiniz. Ama
bilgisayarlar bizim gibi bakmıyor, onların işlem yapması gerek).

Soldaki bilgisayar ilk önce kendi ağ adresini saptamalı. Bunu nasıl yapacak?
IP adresi ile ağ adresini VE’leyerek yapacak:

195.134.67.200

VE 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:

- 33 -
TCP/IP

195.134.67.56
VE 255.255.255.0
Sonuç: 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öneltici ile bağlanabileceğimiz ikinci bir ağ
oluşturalım:

195.134.67.200 195.134.67.56
Subnet Maskesi: 255.255.255.0 Subnet Maskesi: 255.255.255.0

R
195.134.78.45 195.134.78.46
Subnet Maskesi: 255.255.255.0 Subnet Maskesi: 255.255.255.0

Şekil 4.2: Daha karmaşık bir ağ.

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 no’lu bilgisayarla iletiş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 yukarıda 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:

- 34 -
IP Adresleme

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 demek.
195.134.67.200 no’lu bilgisayar iletmek istediği veriyi yönelticiye yollayacak, o
da gelen paketteki adrese bakıp 195.134.78.46 no’lu bilgisayarın
hedeflendiğini anlayacak ve ilgili bacağından, veriyi o bilgisayara aktaracak.

Şimdi subnet maskesinin ne kadar önemli olduğunu yine bu örnekte görelim.


Varsayalım ki 195.134.67.200 no’lu 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 no’lu 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

Her iki işlem de aynı sonucu verdi. Bu ne demek? İki bilgisayar da aynı ağda
bulunuyor demek. 195.134.67.200 no’lu 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 no’lu
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 ile kendi subnet maskemizi VE’liyoruz:

- 35 -
TCP/IP

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 şekilde
girdiğimizden emin olmalıyız.

En iyisi 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.)

Yukarıdaki ö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
bilgisayara 195.134.67.0 adresini veremeyiz; bu adres tek bir bilgisayarı değil
ilk 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 (C sınıfı ağlarda sonuncu oktetin
bilgisayarlara IP adresi vermede kullanıldığını anımsayın) 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. Örnek ağdaki bir
bilgisayar ağ içindeki bütün makinelere bir mesaj göndereceği zaman paketin
alıcı kısmına bu adresi yazar.

O zaman tanımlanabilecek adresler için şöyle bir kural getirebiliriz:

IP adresinde hem ağ tanımlayıcısı kısmı, hem de bilgisayar tanımlayıcı kısmı


255 olamaz (1111 1111).

IP adresinde hem ağ tanımlayıcısı kısmı, hem de bilgisayar tanımlayıcı kısmı 0


olamaz (0000 0000).

- 36 -
IP Adresleme

Yukarıdaki kuralları matematiğe çevirirsek:

Bir ağda tanımlanabilecek IP adresi sayısı = 2n − 2

Yukarıdaki ö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ı 28 − 2 = 256 − 2 = 254 oluyor.

Alt Ağlara Ayırma (Subnetting)


Alt ağlara ayırma (Subnetting), verilen bir adres aralığını bölümlemek ve yeni
ağ adresleri türetmek 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 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 28 − 2 = 254 adet bilgisayar
adresi verilebilir).

Buraya kadar her şey normal.


Ama ya kurumumuzu oluşturan
bilgisayarlar fiziki olarak ayrı
bölgelerde iseler ne olacak?
Yani, kurumumuzun bilgisayarları
Ankara, İstanbul ve İzmir 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 istiyorsam ne
olacak?

Eğer yukarıdaki durumların


herhangi birisi geçerli ise
kurumumda üç ayrı ağ bölümü
(segment’i) bulunacak ve bunlar
yönelticiler aracılığı ile birbirlerine
bağlanacak. Örnek ağımızı Şekil 4.3: Yönelticiler ile birbirine bağlanmış
yandaki şu şekilde çizebiliriz: ağ bölümleri.

- 37 -
TCP/IP

Yönelticiler ile birbirine bağlanan ağların her biri için ayrı bir ağ tanımlayıcısı
(network ID) gerekir. Ek olarak yönelticiler arasında kalan kısımlar da ayrı bir
ağ sayılır. Buna göre toplam beş adet ağ bölümü (segment) 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 2n − 2 şeklinde. Eğer yalnızca 2 bit kullanırsam 22 − 2 = 2 yapar,
bana yetmez. Üç bit kullanırsam 23 − 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: 2n − 2.
Örneğimizde 25 − 2 = 30 olur. Yani, her bir ağda 30 adet bilgisayar adresi
tanımlayabilirim. Toplam olarak altı ağ tanımlanabiliyorsa kurumumda
6 ∗ 30 = 180 bilgisayar bulunabilir.

Ş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


0 0 0
adrese verdiğimiz paraya yazık oldu. Ama bu sayede
amacımıza ulaşabildik: Kurum ağımızı üç alt bölüme 0 0 1
(yönelticiler arasındakileri de sayarsak toplam beş bölüme) 0 1 0
ayırabildik.
0 1 1
Üç bit kullanarak 23 = 8 kombinasyon oluşturabiliriz. Şimdi bu 1 0 0
kombinasyonları görelim: 1 0 1
1 1 0
1 1 1

- 38 -
IP Adresleme

Bunların ikisi (hepsi 0 ve hepsi 1 olanlar) kullanılamaz. Çünkü hepsi ağ adresi


kısmında bütün bitler 0 olamıyordu, bütün bitler 1 olamıyordu anımsarsanız.

Kullanılamayacak kombinasyonların üzerini çizdik. Bize altı adet ağ


tanımlayıcısı kaldı. Yani, altı adet ağ tanımlayabiliriz. Şimdi yukarıdaki
ö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


195.156.89.001 11110
1 195.156.89.001 00001 (195.156.89.33)
(195.156.89.62)
195.156.89.010 11110
2 195.156.89.010 00001 (195.156.89.65)
(195.156.89.94)
195.156.89.011 11110
3 195.156.89.011 00001 (195.156.89.97)
(195.156.89.126)
195.156.89.100 11110
4 195.156.89.100 00001 (195.156.89.129)
(195.156.89.158)
195.156.89.101 11110
5 195.156.89.101 00001 (195.156.89.161)
(195.156.89.190)
195.156.89.110 11110
6 195.156.89.110 00001 (195.156.89.193)
(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ğ bölü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 bölümde
bulunsaydı kullanmaya devam edebilirdik.

Şimdiki işimiz subnet maskemizin değiştirilmesi.

Öyle bir subnet maskesi bulalım ki yukarıdaki altı bölümde yer alan
bilgisayarla 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.

- 39 -
TCP/IP

O zaman gözümüzü son oktete çevireceğiz. Yukarıda 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 1
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

Kural olarak şunu söyleyebiliriz: IP adresi kısmında kaç biti kullanarak alt
ağlara ayırma işlemi yapıyorsak subnet maskesinde de o kadar biti daha 1
yapmalıyız. Yukarıdaki örnekte alt ağlara ayırma işlemi için üç bit kullandık. Bu
yüzden subnet maskesinde önceden sıfır olan üç biti daha 1 yaparak yeni bir
subnet maskesi oluşturuyoruz.

Şimdi bu bilgileri kullanarak örneğimizdeki bilgisayarların bazılarının


adreslerini aşağıdaki şekilde gösterelim:

Şekil 4.4: Yeni Subnet Maskeleri.

Bakalım bu şema iletişim sorunumuzu çözüyor mu?

- 40 -
IP Adresleme

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 iş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 iletişim
gerçekleşebilecektir.

Şimdi aynı bilgisayarın İstanbul’daki 195.156.89.66 no’lu bilgisayarla iletişime


geçmek istediğini varsayalım. Yine kendi adresi ile kendi subnet maskesini VE
işleminden geçirir. Sonucu yukarıdan 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önelticiye yollayacaktır.

Burada dikkat etmemiz gereken bir şey var: Örnek ağımızdaki yönelticilerin
durumu.

Yönelticilerin her bir bacağına bir IP adresi vermek gerekiyor. Peki bu


bacaklara nasıl adresler verelim?

Yönelticilerin bacaklarına, bağlı oldukları bölümlere uygun adresler vermek


gerekir. Örneğimizde adresler şu şekilde olacaktır:

- 41 -
TCP/IP

Şekil 4.5: Yönelticilerin IP adresleri.

Bu şekilde bir eksiklik var. Hatta eksikliklerin sayısı birden fazla. Yönelticilerin
Ankara-İstanbul ve İstanbul-İzmir arasındaki bacaklarına adres atamamışız.
Ankara-İstanbul ve İstanbul-Izmir arasında hiç bilgisayar yok, değil mi?
Yalnızca yönelticilerin bacakları var. Farketmez. O bölümler de, hiç bilgisayar
içermemesine karşın ayrı birer alt ağdır (segment); onlara da birer alt ağ
tanımlayıcısı (network ID) vermek gerekir. Alt ağ tanımlayıcısı verdiğimize
göre buralarda yer alan yöneltici bacaklarına uygun IP adresleri vermek de
gerekir. O zaman yeni şeklimiz şöyle olacaktır:

- 42 -
IP Adresleme

Şekil 4.6: Yönelticiler arasında kalan bölgeler.

Şimdi alt ağlara bölme konusunda yapılacak işleri biraz toparlayalım:

• Kurum ağımızı alt ağlara ayırırken ilk önce kaç adet ayrı ağ
istediğimize karar vereceğiz. Toplam alt ağ sayısını belirlerken
yönelticiler arasında kalan kısımları da unutmayacağız. Onlar da, hiçbir
bilgisayar içermemelerine karşın, ayrı birer alt ağdır. Hesaba onlar da
dahil edilecek.

• Kurum adresimizde bizim sorumluluğumuza bırakılan kısma


bakacağız. Oluşturacağımız alt ağlar için buradaki bitleri kullanacağız.

• 2n − 2 kuralına uygun olarak alt ağ belirlerken kaç adet bit


kullanacağımızı saptayacağız. Çıkan sayıda bitleri alt ağ
tanımlayıcılarını belirlemekte kullanacağız. Geriye kalan bitler de alt
ağlardaki bilgisayarları tanımlayacak.

• Her bir ağda, bilgisayarlara, ağ yazıcılarına ve IP adres kullanan başka


aygıtlara verilecek IP adreslerini belirleyeceğiz.

• Kurum çapında geçerli olacak yeni subnet maskesini belirleyeceğiz. Bu


yeni subnet maskesinde alt ağ oluşturmada kullanılan bitlerin sayısı
kadar 1’lerimiz olacak.

- 43 -
5
IP Yönlendirme (Routing)

Bir bilgisayar yalnızca kendi ağında bulunan bilgisayarlarla doğrudan


görüşebilir. Başka ağlardaki bilgisayarlarla ise 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


Subnet.maskesi: 255.255.255.0 Subnet.maskesi: 255.255.255.0

Şekil 5.1: İki adet bağlantısız ağ.

Bu şekilde iki ayrı ağ (subnet) görüyoruz. Soldaki ağda bulunan bilgisayarlar


birbirleri ile iletiş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 siyasette 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önelticiler (router)


kullanıyoruz. Yönelticilerin 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.

Şimdi aşağıdaki şekle bakalım.

- 45 -
TCP/IP

195.194.34.2 195.194.34.3 195.194.34.4


Subnet.maskesi: 255.255.255.0
R 200.123.89.2 200.123.89.3 200.123.89.4
Subnet.maskesi: 255.255.255.0

195.194.34.1 200.123.89.1

Şekil 5.2: İki ağı birbirine bağlayan yönelticinin İP adresleri.

İki ağı birleştirmek için ortaya bir yöneltici koyduk. Yönelticinin iki bacağı var.
TCP/IP protokolü, ağdaki her ucun ayrı bir IP adresinin olmasını şart koşuyor.
Bu yüzden yönelticinin bacaklarına da birer IP adresi veriyoruz.

Yönelticinin 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önelticiler vb.) yalnızca kendi ağlarındaki makineler ile
doğrudan görüşebilirler.

Yine dikkatinizi çekmiştir: Yönelticinin 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öneltici ilk adresi
alırken diğeri zorunlu olarak ondan bir sonrakini alacak. Ağdaki ilk adresin
yönelticiye verilmesi zorunlu bir kural değildir. Bu, yalnızca çıkabilecek ağ
sorunlarında rahat etmemizi sağlar: Yönelticilere hep ilk numaralar veriliyorsa
gittiğimiz yabancı bir ortamda bile yönelticileri kolayca bulabiliriz.

Yönelticiyi kurduk ama her iki ağda da bilgisayarların bundan haberi yok.
Onları haberdar etmek için TCP/IP yapılandırma kısmında “default gateway”
parametresini kullanabiliriz. Bu parametre “varsayılan çıkış kapısı-ağ geçidi”
anlamına geliyor ve eğer kendi ağımızda olmayan bir adrese ulaşmamız
gerekirse ilişki kuracağımız yönelticiyi gösteriyor.

195.194.34.0 ağında bulunuyorsak bilgisayarların hepsinde default gateway


olarak 195.194.34.1 adresini veriyoruz (bu adres, yönelticinin bize bakan
bacağını gösteriyor) 200.123.89.0 ağında bulunuyorsak bu sefer
bilgisayarların hepsinde 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,

- 46 -
IP Yönlendirme (Routing)

PING mesajlarını yönelticiye gönderiyoruz. Yöneltici, mesajın içindeki hedef


adresi kısmına bakıyor, mesajı 200.123.89.3 adresine yolluyor.

Peki, yöneltici 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 2003 bilgisayarı yöneltici olarak kullanmak: Bir
Windows 2003 bilgisayara iki adet ağ kartı takarız, her birini bir ağa bağlarız,
sonra da bir yöneltici olarak çalışacağını söyleriz, işimiz biter. (Teorik olarak
TCP/IP yüklü her aygıt bir yöneltici yapılabilir ama Microsoft’un işletim
sistemlerinde genel olarak Server işletim sistemlerini yöneltici olarak
yapılandırıyoruz. Diğer işletim sistemlerini yöneltici olarak yapılandırmak için
ya Registry’de değişiklikler yapmak ya da özel programlar kullanmak gerekir.)
Windows 2003 yüklü makineye ille de iki ağ kartı takmak gibi bir kısıtımız da
yok: Bilgisayarın elverdiği kadar ağ kartı takıp o kadar ağı birbirine
bağlayabiliriz.

Bir Windows 2003 Bilgisayarın


Yöneltici Yapılması
Windows 2003 makineleri yöneltici yapmak için Yönlendirme ve Uzaktan
Erişim (Routing and Remote Access) adındaki hizmet kullanılır.

Bütün Windows 2003 makinelerde Yönlendirme ve Uzaktan Erişim adında bir


hizmet vardır. Başlangıçta bu hizmet devre dışıdır (disabled). Bu durumu
Yönetimsel Araçlar’daki Hizmetler konsolundan görebilirsiniz. Ama hizmeti bu
konsoldan etkinleştirmiyoruz. Bu iş için yine Yönetimsel Araçlar’daki
Yönlendirme ve Uzaktan Erişim adlı konsolu kullanacağız.

Yönlendirme ve Uzaktan Erişim konsolunu açtığımızda sunucumuzu


görüyoruz.

- 47 -
TCP/IP

Şekil 5.3: Yönlendirme ve Uzaktan Erişim konsolu.

Şu anda, üzerinde bulunduğumuz bilgisayarda, Yönlendirme ve Uzaktan


Erişim hizmeti devre dışı. Bilgisayarın (ANASUNUCU) yanındaki kırmızı ok
bunu gösteriyor. Bilgisayara sağ tıklayıp “Yönlendirme ve Uzaktan Erişim’i
Yapılandır ve Etkinleştir” şıkkını seçelim. Karşımıza bir yardımcı program
(wizard) çıkacaktır. Yardımcı programın yapılandırma menüsünde çeşitli şıklar
var.

Şekil 5.4: Yönlendirme ve Uzaktan Erişim'i yapılandırma seçenekleri.

- 48 -
IP Yönlendirme (Routing)

Şu anda bu seçeneklerden sonuncusu bize uyuyor (diğer seçenekleri kitabın


ilerleyen kısımlarında işleyeceğiz). Bu yüzden “Özel yapılandırma” şeklindeki
sonuncu düğmeyi işaretleyip “İleri” düğmesine basacağız. Karşımıza özel
yapılandırma seçenekleri çıkacak.

Şekil 5.5: Özel yapılandırma seçenekleri.

Yukarıdaki ekranda “LAN Yönlendirmesi” şeklindeki kutuyu işaretliyoruz ve


yardımcı programı kapatıyoruz. Yönlendirme ve Uzaktan Erişim hizmetinin
yüklendiğini belirten ve bu hizmeti başlatmak isteyip istemediğimizi soran bir
iletişim kutusuyla karşılaşırız.

Şekil 5.6: Yönlendirme ve Uzaktan Erişim için iletişim kutusu.

Soruyu Evet ile yanıtlayıp bitiriyoruz. Artık makinemiz bir yöneltici olmuştur.

- 49 -
TCP/IP

Yönlendirme Tablosu (Routing Table)


TCP/IP protokolünün kurulduğu her bilgisayarda (hatta bilgisayar olmayan
ama TCP/IP yüklü herhangi bir aygıtta) bir yönlendirme tablosu tutulur.
Bilgisayarlar bu yönlendirme tablosuna bakarak hangi veri paketini, nereye
göndereceklerine karar verirler.

Şimdi bir Windows 2003 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.7: Yönlendirme tablosu.

Nasıl, biraz karışık, değil mi?

İlk satırdaki IPv4 ifadesi bu bilgisayarda IP’nin 4 no’lu sürümünün kullanıldığını


anlatıyor.

Hemen altında bir arabirim (interface) listesi var. Bilgisayarın dış dünya
iletişimini sağlayan aygıtlara arabirim deniyor. Şu anda üç arabirim görünüyor;

- 50 -
IP Yönlendirme (Routing)

uydurma bir arabirim olan MS TCP loopback, Realtek RTL8139 ve SIS 900-
Based PCI Fast Ethernet. Bilgisayarımda iki adet ağ kartı var demektir.

Arabirimlerin altında etkin yollara (ya da ağlara) ilişkin bilgiler var. Bu satırlarda
yer alan alanların anlamlarını açıklayalım:

Ağ hedefi: Ağ adresi

Ağ maskesi: Bu ağda kullanılan ağ maskesi.

Ağ geçidi: Bu ağdaki bilgisayarlara ulaşmak için gitmem gereken çıkış kapısı


adresi. Yani, o ağa bakan yönelticinin adresi.

Arabirim: Bu ağa ulaşmak için bilgisayarımızda kullanılan IP adresi. Bilgisaya-


rımızda birden fazla ağ kartı bulunabileceğini, her birine bir IP adresi verilebile-
ceğini anımsayın. Ayrıca tek bir ağ kartına da birden fazla IP adresi verilebilir.

Ölçüt: Bu ağın uzaklığının bir ölçüsü. Genelde (her zaman değil) bu ağa
ulaşmak için katedilmesi gereken yöneltici sayısına eşittir.

Windows 2003 öncesinde, yönlendirme tablosunda kendiliğinden oluşan


kayıtlarda ölçüt hep 1 idi. 2003’de ise ölçüt değerleri 1 ya da 30 oluyor. 2003
öncesindeki değerler daha mantıklı idi.

Tabloda yer alan her satır bir ağ adresini ve ona ulaşılma şeklini gösteriyor.

İlk satırda varsayılan çıkış kapısı ile ilgili bilgileri görüyoruz. Eğer paketleri gön-
dereceğimiz IP adresi 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 ağ
geçidine 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. Örnekte, bizim
ağımızda olmayan IP adresleri için 195.174.128.1 adresine gidileceği
görünüyor.

İkinci satırda 127.0.0.0/24 ağına ilişkin adres bilgimizi görüyoruz. Bildiğiniz gibi
bu ağ adresi özel test adreslerine karşılık geliyor. Tablodaki bu satır TCP/IP
yüklendiğinde otomatik olarak oluşturulur ve 127 ile başlayan bir IP adresi ile
karşılaştığımızda paketi 127.0.0.1 adresine göndereceğimiz anlamına gelir.

Üçüncü satırda ağ adresi kendi ağ adreslerimizden birisi görünüyor:


192.168.1.0. (Örnekteki bilgisayarımızda iki ağ kartı var: Birisi bir kurum ağına
bağlı, diğeri ise bir kablo modeme.)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 ile arabirim adresim aynı: 192.168.0.1.

- 51 -
TCP/IP

Dördüncü satırda ağ adresi olarak 192.168.0.1’i görüyoruz. Bu satır “eğer


192.168.0.1 adresine bir şey göndereceksen onu loopback adresine gönder”
demektir. Bu satır olduğu için “ping 192.168.0.1” komutunu verirsek loopback
adresi ile ilişki kurulur, hiç ağ üzerine çıkılmaz, ağda trafik yaratılmaz.

Beşinci satırda kendi ağımızdaki broadcast (yayın) adresini görüyoruz:


192.168.0.255. Bulunduğumuz ağda her makineye giden bir paket
göndereceğim zaman paketi bu adrese yolluyoruz. (Biz derken yanlış
anlamayın, bu işi bilgisayarımızdaki TCP/IP protokolü yapıyor.)

Altıncı satırdaki 195.174.128.0 adresi sahip olduğumuz ikinci IP adresine


ilişkin ağ adresini gösteriyor. O ağa çıkmak için kullanacağımız ağ geçidi de
ikinci IP adresimiz: 195.174.134.224.

Yedinci satırdaki adres, 195.174.134.224, ikinci IP adresimiz. Bu satır da “eğer


195.174.134.224 adresine bir şey göndereceksen onu loopback adresine
gönder” demektir. Bu satır olduğu için yine “ping 195.174.134.224” komutunu
verirsek loopback adresi ile ilişki kurulur, hiç ağ üzerine çıkılmaz, ağda trafik
yaratılmaz.

Sekizinci adres 195.174.134.255, ikinci ağ kartına ilişkin broadcast adresidir.

Dokuzuncu ve onuncu 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. Her iki
ağımızda da (ağ kartlarımızın bağlı olduğu ağlar) bu çeşit adreslerle
karşılaştığımız zaman o ağdaki bağlantımızdan yararlanıyoruz.

Onuncu ve onbirinci satırda 255.255.255.255 ağ adresini görüyoruz. Bu da


broadcast adresi oluyor. Bir yayın yapılacağı zaman hem ilk, hem de ikinci ağ
kartımızdan paketleri gönderiyoruz.

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:

- 52 -
IP Yönlendirme (Routing)

195.194.34.2 195.194.34.3 195.194.34.4


R1 200.123.89.2 200.123.89.3 200.123.89.4
Subnet.maskesi: 255.255.255.0 Subnet.maskesi: 255.255.255.0

R2 195.194.34.10 195.194.34.1 200.123.89.1

203.56.78.1

250.56.78.2 205.56.78.3 205.56.78.4


Subnet.maskesi: 255.255.255.0

Şekil 5.8: Birden fazla yönelticiye sahip örnek 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 segmentteki 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.34.3 no’lu bilgisayardan 205.56.78.2 no’lu 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 ağ geçidi adresi (default gateway) var. Ama ona giderse
yanlış yönelticiye gitmiş olacak, çünkü o yöneltici kendisini yalnızca
200.123.89.0 ağına bağlayabilir. Kendisini doğru ağa bağlayacak bir yöneltici
var ama bu bilgisayarın o yönelticiden haberi yok.

O zaman bilgisayarların yönlendirme tablosunu değiştirmek gerekiyor.


Yönlendirme tablosuna yeni ağ ile ilgili bilgileri yazmamız gerekiyor.
Kullanacağımız komut ROUTE ADD. Şimdi bu komutun yazımına bakalım:

ROUTE ADD ağ-adresi MASK ağ-maskesi çıkış-kapısı adresi


METRIC metric-değeri

Yukarıdaki örnekte 195.194.34.3 no’lu bilgisayarda şöyle bir komut vereceğiz:


Route add 205.56.78.0 mask 255.255.255.0 195.194.34.10 metric 2

- 53 -
TCP/IP

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


genel olarak, geçilmesi gereken yöneltici+1’e eşittir, anımsayabildiniz, değil
mi?

Ama burada şöyle de yapabiliriz: 195.194.34.3 no’lu bilgisayara ya da diğer


bilgisayarlara bu şekilde bir yol bilgisi eklemek yerine, onların yönelticilerine
diğer ağlara ilişkin yol bilgilerini ekleyebiliriz. Böylece istemci makineler ile
uğraşmamış oluruz (onlar sayıca çokturlar), yalnızca yönelticilerle uğraşırız
(onlar sayıca hep azdırlar).

Yukarıdaki öneriyi dinlersek, R1’de vermemiz gereken komut şu şekilde olur:

Route add 205.56.78.0 mask 255.255.255.0 195.194.34.10 metric 2

Bu şekilde 195.194.34.0 ve 200.123.89.0 ağındaki makineler 203.56.78.0


ağındaki bir makineye gönderecekleri paketi R1’e gönderirler, R1 de
yönlendirme tablosuna bakar, ilgili ağ için ağ geçidinin 195.194.34.10
olduğunu anlar, paketi ona gönderir. Böylece son derece az komut vererek
bilgisayarların o ağa ulaşmasını sağlarız. Genel ilkemiz budur: İstemcilerde
değil ana bilgisayarlarda ya da aygıtlarda işlem yap.

Benzer şekilde R2’de de bir komut vermeliyiz ve o yönelticiye de 200.123.89.0


ağına ilişkin bir yol bilgisi eklemeliyiz. Vereceğimiz komut şu şekilde olacak:

Route add 200.123.89.0 mask 255.255.255.0 195.194.34.1 metric 2

205.56.78.0 ağındaki bilgisayarlara ayrıca bir yol bilgisi girmeyeceğiz. Onlar


yalnızca ağ geçidi olarak 203.56.78.1 adresini görecekler, o kadar. Gerisini
yönelticiler halledecek.

Yönelticilere daha genel yol bilgileri de girebiliriz. Örneğin, R1’e şöyle bir yol
bilgisi girilebilir:

Route add 0.0.0.0 mask 0.0.0.0 195.194.34.10 metric 2

Bu yol bilgisi, R1’in adres tablosunda ayrıca belirtilmeyen her adres için,
195.194.34.10 adresine gidilmesini söyler. Yani, 195.194.34.10 adresi R1 için
varsayılan ağ geçidi (default gateway) olmuştur.

Benzer şekilde R2’ye de şöyle bir yol bilgisi girilebilir:

- 54 -
IP Yönlendirme (Routing)

Route add 0.0.0.0 mask 0.0.0.0 195.194.34.1 metric 2

Route komutu ile eklenen yol bilgileri bilgisayar kapatılana kadar geçerlidir.
Bilgisayar kapatıldığında eklediğimiz yol bilgisi de silinir. Yol bilgisinin kalıcı
olmasını istiyorsak, bilgisayar kapatılıp açıldığında silinmemesini istiyorsak o
zaman Route add komutunda “-p” anahtarını kullanmalıyız. Bu anahtar
verilen yol bilgisini kalıcı (permanent) yapar. Örnek:

Route add -p 0.0.0.0 mask 0.0.0.0 195.194.34.1 metric 2

Peki, şöyle bir soru aklınıza geliyor mu? “Yönelticiler nereye ait olduğunu
bilemedikleri IP paketlerini hep kendi varsayılan ağ geçitlerine gönderiyorlarsa,
olmayan bir adrese sahip olan bir IP paketi sürekli olarak Internet ortamında
bir yönelticiden diğerine gezip durmayacak mıdır?”

Böyle bir soru çok haklı kaygıları içeriyor. Ama Allah’tan bunun çaresi de
düşünülmüş. Bir IP paketi yola çıktığında ona bir TTL (Time-to-Live; yaşam
süresi ya da oyunlardaki can sayısı diye düşünebilirsiniz) verilir. Örneğin, bir
2003 makineden çıkan IP paketinin TTL’i 128’dir. Bir IP paketi bir yönelticiye
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 iletilmez; çöpe atılır.

Hemen bir örnek yapalım, ilkönce kendi subnetimizdeki bir adresi PING
’leyelim:

Şekil 5.9: Kendi subnetimizdeki bir bilgisayarın PING'lenişi.

Şekilde gördüğünüz gibi TTL değeri 128 olarak kalmış; çünkü bir yöneltici
geçmedik.

- 55 -
TCP/IP

Şimdi de bir başka ağ bölümünde (segment) bulunan bir IP adresini PING


’leyelim:

Şekil 5.10: Başka bir ağ bölümünde bulunan bir bilgisayarın PING’lenişi.

Bu şekilde TTL değeri 127’ye düşmüş. Çünkü bir yönelticiden geçtik.

İlgili Komutlar: ROUTE.EXE, TRACERT.EXE, PING.EXE, PATHPING.EXE

PING komutu ile verilen IP adresine sahip bilgisayarla aramızda sağlıklı bir
TCP/IP iletişimi olup olmadığını öğrenebiliyor ve 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 yapılandırmamızı
test etmemiz yerinde olacaktır.

Kendimizi PING’lerken ilk önce loopback adresimizi (özel bir test adresi olup
kendimizi gösterir) kullanabiliriz:

- 56 -
IP Yönlendirme (Routing)

Şekil 5.11: Loopback adresimizin PING'lenişi.

Aynı şeyi “PING Localhost” komutunu vererek de yapabiliriz. Localhost


kendi adımıza karşılık gelir:

Kendi adımızı açık açık yazarak da PING çekebiliriz:

Şekil 5.12: Kendimizi PING’leme.

Kendimizi PING’ledikten sonra başka bir bilgisayarı PING’leyelim.


PING’Ieyeceğimiz bilgisayarın ismi tungapc olsun:

- 57 -
TCP/IP

Şekil 5.13: Kendi makinemizi adı ile PING'leme.

TRACERT komutu bir IP adrese ulaşırken kullandığımız yolu gösterir; yolu izler.

Şekil 5.14: Tungapc adındaki makinenin PING'lenişi.

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önelticiler üzerinden gittiği görüntülenecektir.

Bir yöneltici ile bağlandığımız başka bir subnetteki IP adresine giden yolu
izleyelim:

- 58 -
IP Yönlendirme (Routing)

Şekil 5.15: Bir bilgisayara giden yol tracert.exe komutu ile izleniyor.

Yukarıdaki şekilde 195.174.129.1 adresindeki bilgisayara giden yolu izliyoruz.


Komutun çıktısından açıkça görüldüğü gibi bu bilgisayara ulaşmak için
60.0.0.1 adresine sahip bir yönelticiden geçiyoruz.

Pathping komutu PING ile TRACERT komutlarının bileşimi gibidir: Hem karşı
taraf ile sağlıklı bir iletişim olup olmadığını anlamaya yarar, hem de karşı
tarafa giderken geçtiğimiz yolu (yönelticileri) gösterir.

Komutun ürettiği çıktı biraz karışık değil mi?

Şekil 5. 16: PATHPING komutunun çıktısı.

- 59 -
6
DHCP

TCP/IP protokolünü kullanan bir ağda her bilgisayar için ortalama beş adet
parametre tanımlamak gerekir: IP adresi, subnet maskesi, default 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; iletişim kurulamaz. Subnet maskeleri yanlış verilir; kendi ağımızdaki
veya başka ağlardaki makinelere erişemeyiz. Default gateway adresi yanlış
girilir; kendi ağımızdaki makinelerle iletişim kurabiliriz, ama bir başka ağa
bağlanamayız. DNS ve WINS adresleri yanlış girilir; ad-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: Dynamic Host Configuration
Protocol, Türkçesi “Bilgisayarları Dinamik Yapılandırma 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. BOOTP, disket sürücü ya da
sabit diski bulunmayan bilgisayarların TCP/IP yapılandırmasını sağlamak
üzere geliştirilen bir protokoldü.

DHCP kullanımı kısaca şöyle olur: Bir makine 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. Bu fazladan bilgilere seçimlik bilgiler (optional
parameters) denir.

Diğer makineler DHCP istemci olarak yapılandırılır. DHCP istemciler aşağıda


ayrıntıları anlatıldığı şekilde, IP adreslerini ve diğer TCP/IP yapılandırma
bilgilerini DHCP sunucudan alırlar.

Şimdi bu işlerin ayrıntılarına göz atalım.

- 61 -
TCP/IP

DHCP Sunucu Hizmetinin Kuruluşu


DHCP hizmeti sunucu ailesinden bilgisayarlara (Windows NT Server,
Windows 2000 Server, Windows 2003 Server) bilgisayarlara kurulur. Biz
Windows 2003 Server üzerindeki yapılandırmayı anlatacağız. Bu bilgisayar
üzerinde TCP/IP protokolü bulunmalı, IP adresi statik girilmelidir.

DHCP sunucu hizmeti, Denetim Masası’ndaki “Program Ekle veya Kaldır”


uygulamasından, “Windows Bileşenlerini Ekle/Kaldır” bölümünün altından,
“Ağ Hizmetleri” öğesinin altından (Ayrıntılar düğmesine basarak) yüklenir.
Buradaki “Dinamik Ana Makine Yapılandırma İletişim Kuralı” kutusunu
işaretleyerek DHCP sunucu hizmetini yükleriz.

Şekil 6.1: DHCP sunucu hizmetinin yüklenişi.

Yukarıdaki şekilde, bu öğenin yanında 0.0 MB ifadesi yer alıyor. Bu ifade,


hizmetin yüklenişi sırasında kopyalanması gereken dosyaların büyüklüğünü
gösteriyor. 0.0 MB değeri bu hizmete ilişkin dosyaların zaten sistemde
bulunduğunu, bu dosyaların kopyalanması için Windows 2003 CD-
ROM’undan dosya almak gerekmediğini anlatıyor.

Tamam ve sonra da İleri düğmelerine basarak devam ediyoruz.

- 62 -
DHCP

Eğer DHCP sunucu hizmetin kurduğumuz makinede statik olarak girilmemiş


bir IP adresi varsa aşağıdaki şekilde görülen uyarıyı alacağız:

Şekil 6.2: Dinamik İP adresi uyarısı.

Bu uyanda yalnızca statik IP adresi kullanmamız gerektiği belirtiliyor, Tamam


düğmesine basar basmaz da dinamik IP adresimizi statik IP adresi ile
değiştirmeye götürülüyoruz. İnatçılık etmeyelim ve DHCP sunucudaki bütün IP
adreslerini statik olarak verelim.

Artık DHCP sunucu hizmetimiz kuruldu. NT’dekinin tersine 2000’de ve 2003’de


bu hizmeti (ve genel olarak diğer hizmetleri) kurduktan sonra sistemi yeniden
başlatmaya gerek yoktur.

DHCP Sunucu Hizmetinin Yapılandırılması


DHCP sunucu hizmetini kurduktan sonra yapılandırma işlemleri için
Yönetimsel Araçlar menüsüne “DHCP” şeklinde bir yönetim konsolu
yerleştirilir. Yapılandırmayı bu konsolla yaparız.

DHCP konsolunu açtığımızda DHCP sunucularını görürüz. Başlangıçta


burada yalnızca üzerinde bulunduğumuz DHCP sunucuyu görüyoruz.

Şekil 6.3: DHCP konsolu.

- 63 -
TCP/IP

DHCP konsolu ile yalnızca üzerinde bulunduğumuz DHCP sunucuyu


yönetmek zorunda değiliz. Konsolda, en üstteki DHCP ifadesine sağ tıklayıp
“Sunucu Ekle” şıkkını seçerek başka DHCP sunucuları da konsola ekleyebilir
ve onları da yönetebiliriz.

Yapmamız gereken ilk iş DHCP sunucuyu yetkilendirmek (Authorize). Bir


Active Directory (AD) etki alanı içindeki DHCP sunucular yetkilendirilmedikleri
sürece IP adresleri dağıtmazlar. Yalnızca yetkilendirilen DHCP sunucular IP
adresi dağıtabilir. Böylece korsan DHCP kurulumları ya da denetimsiz DHCP
sunucu kurulumları engellenir. Öte yandan, bir AD etki alanı üyesi olmayan
Windows 2003 DHCP sunucuları (ya da başka işletim sistemlerine sahip
sunucuları) yetkilendirmeye gerek yoktur. O zaman yetkilendirme anlamsız
gibi görünebilir. Öyle ya, kötü niyetli bir kişi, etki alanı üyesi olmayan bir
makineye DHCP sunucu hizmetini kurup yalan-yanlış IP adresleri ve diğer
bilgileri dağıtabilir. Ama öyle olmuyor. AD içindeki yetkilendirilmiş DHCP
sunucular, ortamda bir başka ve yetkilendirilmemiş DHCP sunucunun
çalıştığını görürlerse sistem olay günlüğüne 1054 ve 1053 kodlu olayları
kaydedip çalışmalarını sonlandırırlar. Siz de bu günlük dosyalarına bakıp
ortamdaki korsan DHCP sunucuları bulabilirsiniz. Özellikle 1053 nolu olay
kaydı değerlidir çünkü bu olay kaydında diğer DHCP sunucunun IP adresini
görebilirsiniz.

Şekil 6.4:
DHCP sunucu
bir başka DHCP
sunucuyu saptıyor
ve duruyor.

- 64 -
DHCP

DHCP sunucuyu yetkilendirme için DHCP konsolunda sunucumuzun üzerine


sağ tıklayıp Yetkilendir şıkkını seçeceğiz. Sunucumuzun solundaki kırmızı
yuvarlak yeşil bir oka dönüştüğünde sunucumuzun yetkilendirilmiş olduğu
anlaşılacak.

Sunucumuz yetkilendirildiğine göre artık sunucuda yeni bir adres havuzu


(DHCP konsolunda Kapsam olarak geçiyor) yaratabiliriz.

Yeni bir kapsam yaratmak için sunucuya sağ tıklıyoruz ve çıkan menüden
“Yeni kapsam” şıkkını seçiyoruz. Yeni kapsam sihirbazı başlıyor. Sihirbazın
hoş geldiniz penceresini İlerle düğmesine basarak geçiyoruz.

Sonraki pencerede kapsam için bir ad ve açıklama bilgisi girmemiz isteniyor.


Tek bir kapsam kullanacaksak sorun değil ama çok sayıda kapsam
yaratacaksak kapsamların adlarını ve açıklamalarını anlamlı bir şekilde
vermek doğru olacaktır.

Şekil 6.5: Kapsamın adı ve açıklaması giriliyor.

Sonraki pencerede dağıtılacak IP adreslerini ve alt ağ maskesini giriyoruz.

- 65 -
TCP/IP

Şekil 6.6: Dağıtılacak IP adreslerinin belirlenmesi.

Sonraki pencerede dağıtılmasını istemediğimiz IP adreslerini belirliyoruz. Şekil


6.4’de belirttiğimiz IP adresleri arasında olup da çeşitli nedenlerle
dağıtılmasını istemediğimiz IP adreslerini burada belirtiyoruz.

Şekil 6.7: Dağıtılmayacak (dışarıda bırakılacak) IP adreslerinin belirlenmesi.

- 66 -
DHCP

Yukarıdaki şekilde bir adresi (192.168.0.55) ve bir adres aralığını


(192.168.0.190-192.168.0.194 aralığı) dışarıda bıraktığım görülüyor. DHCP
sunucu bu IP adreslerini istemcilere dağıtmayacak.

Sonraki pencerede, dağıtılacak IP adreslerinin ne kadar süreyle kiralanacağını


(istemcinin DHCP sunucudan gelen IP adresini ne kadar süreyle
kullanabileceğini) belirtiyoruz.

Şekil 6.8: Kira süresinin belirlenmesi.

Varsayılan süre 8 gün. NT zamanında bu süre 3 gündü. Bu süreyi


arttırabilirsiniz ya da azaltabilirsiniz. Önerimiz süreyi olduğu gibi bırakmanız.
Özel bir nedeniniz yoksa süreyi değiştirmeye gerek yok.

Sonraki pencerede bu kapsam için seçimlik parametreleri (DNS sunucu


adresi, WINS sunucu adresi gibi) yapılandırmak isteyip istemediğimiz
soruluyor.

- 67 -
TCP/IP

Şekil 6.9: Seçimlik parametrelere ilişkin pencere.

Soruyu Evet şeklinde yanıtlıyoruz.

Sonraki pencerede ilk seçimlik parametremiz olan Yönlendirici adresini (Varsa-


yılan ağ geçidi) giriyoruz. Bu adres istemcilere gönderilecek. İstemciler kendi
ağlarında olmayan bir bilgisayara bir paket göndermek istediklerinde
paketlerini burada belirtilen adrese yollayacaklar.

- 68 -
DHCP

Şekil 6.10: Yönlendirici adresinin girilişi.

Sonraki pencerede DNS ile ilgili parametreleri giriyoruz.

Şekil 6.11: DNS ile seçimlik parametreler.

- 69 -
TCP/IP

Burada üç alan var:

1. Ana etki alanı: Buraya anadolu.com benzeri bir DNS alan adı girebiliriz.
DNS istemciler DNS sunucuya bir sorgu isteği gönderirken (bilgisayar
adını IP adresine dönüştürme isteği), bilgisayar adında bir alan adı belirt-
mezlerse, burada girilen alan adı otomatik olarak sorguya eklenecek. Ör-
neğin, bir istemciden “PING logoserver” benzeri bir komut verildi diyelim.
Logoserver adının IP adresine dönüştürülmesi gerekir. Bunun için de
DNS sunucuya gidilir. DNS sunucu “logoserver” gibi bir adı değil, “lo-
goserver.anadolu.com” gibi bir adı IP adresine çevirebilir. Böyle bir du-
rumda buraya girilen ifade (alan adı), bilgisayar adına eklenecektir. Ya-
rarlı bir alan gibi görünüyor ama çoğunlukla buraya bir şey girmek ge-
rekmez çünkü bu alan boş bırakılırsa, istemcinin eksik bıraktığı alan adı
kısmı, istemcinin üyesi olduğu Windows 2003 etki alanı bilgisi kullanıla-
rak doldurulur. Bu da çoğunlukla işimizi görür.
2. Sunucu adı: Buraya DNS sunucunun adını yazabiliriz. Örneğimizde
sunucunun adı “anasunucu.anadolu.com". Ama bu alan da işlevsel
sayılmaz. Boş bırakılabilir.
3. IP adresi: Buraya DNS sunucunun IP adresini giriyoruz, istemcilere yal-
nızca bu bilgiyi göndermek yeterlidir.

Bir sonraki pencerede WINS sunucunun adresi soruluyor.

Şekil 6.12:
WINS
sunucu ile
ilgili kısım.

- 70 -
DHCP

Şimdilik bu alanı doldurmayacağız. WINS sunucu kurduğumuzda dönüp bu


adresi girebiliriz. İleri düğmesine basıp geçiyoruz.

Son penceremiz yarattığımız kapsamın etkinleştirilip etkinleştirilmeyeceğine


ilişkin.

Şekil 6.13: Kapsamın etkinleştirilmesine ilişkin soru.

Yarattığımız kapsamı etkinleştirmezsek DHCP sunucu bu kapsamdan IP


adresi dağıtamaz. Bu yüzden soruyu “Evet” şeklinde yanıtlıyoruz. İleri ve Son
düğmelerine bastığımızda artık kapsamımız IP adresi dağıtabilir.

DHCP konsolumuzda, yarattığımız kapsamın altında dört kap görünüyor:

1. Adres Havuzu: Dağıtılacak ve dağıtılmayacak IP adreslerini gösterir.


Şu anda burada aralık olarak 192.168.0.30 ile 192.168.0.250 adresleri
arası görünüyor. 192.168.0.55 adresi ve 192.168.0.190-192.168.0.194
adresleri arası ise dağıtım dışı bırakılmış.
2. Adres Kiraları: Burada istemcilere vermiş olduğumuz IP adresleri
görüntülenecek. Kapsamı yeni oluşturduğumuz için burada bir IP adresi
göremeyeceğiz. İstemciler IP adresi aldıkça burada çok değerli bilgiler
olacak (hangi MAC adresine sahip makineye hangi IP adresini verdik,
süresi ne kadar vb.)
3. Ayırmalar: Bazı IP adreslerini bazı makinelere (tam tamına söylemek
gerekirse, bazı MAC adreslerine) ayırabiliriz (rezervasyon). Belirttiğimiz

- 71 -
TCP/IP

MAC adreslerine sahip makinelerden gelen isteklere hep belirlenen IP


adresleri verilir. Şu anda burası da boş.
4. Kapsam Seçenekleri: Burada kapsama ilişkin seçimlik parametreleri
görebiliriz. Kapsamı yaratırken belirttiğimiz Ağ geçidi ve DNS sunucu
adresleri burada görülebilir.

Kapsam seçeneklerine benzer şekilde DHCP konsolunda bir de sunucu


seçenekleri bölümü bulunur. Sunucuda birden fazla kapsam tanımlanabilir.
Eğer bir seçimlik parametre bütün kapsamlarda ortak ise bu parametreyi her
kapsamda ayrı ayrı tanımlamak yerine sunucu seçeneklerinde bir kez
tanımlayabiliriz. Sunucu seçeneklerinde tanımlanan parametreler her
kapsamda geçerlidir: Bir kapsam içinden IP adresi ile birlikte seçimlik
parametreleri gönderirken sunucu seçeneklerinde belirtilenler de istemciye
gönderilir.

Şekil 6.14: DHCP konsolunda kapsamın görüntülenmesi.

Bilgisayarların DHCP İstemci Olarak


Yapılandırılması
Bir makineyi DHCP istemci olarak yapılandırmak kolaydır. Ağ bağlantısı
üzerinde, Internet iletişim Kuralları (TCP/IP)’nin özelliklerine giriyoruz,
“Otomatik olarak bir IP adresi al” ve “DNS sunucu adresini otomatik al”
şıklarını işaretliyoruz. Hepsi bu kadar. Hatta normalde bunu bile yapmaya
gerek yok çünkü bir makine, tersini belirtmediğiniz sürece zaten bu belirtimlere
sahip.

- 72 -
DHCP

Şekil 6.15: Bir bilgisayarın DHCP istemci olarak yapılandırılması.

DHCP Konsolunda İzleme


DHCP konsolunda bir kapsamın altındaki “Adres Kiraları” kabından DHCP
istemcilerini, aldıkları IP adreslerini, kira bitiş sürelerini öğrenebiliriz.

- 73 -
TCP/IP

Şekil 6.16: Adres Kiraları kabı.

Yukarıdaki şekilde iki bilgisayarın DHCP sunucudan IP adresi aldığı görülüyor:


Binnurpc ve c2.anadolu.com adındaki bilgisayarlar. Bunlara sırasıyla
192.168.0.31 ve 192.168.0.200 adresleri verilmiş. Binnurpc adındaki bilgisayar 30
Mart 2005 tarihinde saat 09:02’de IP adresi almış. c2.anadolu.com adındaki
bilgisayar ise aynı günde ama saat 17:34’de IP adresi almış. IP adreslerini 30
Mart’ta aldıkları için kira bitiş tarihleri de 7 Nisan 2005 (8 gün sonra).

DHCP İşlemlerinin Ayrıntıları


DHCP istemci olarak yapılandırılmış 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 (ağ geçidi adresi,
WINS sunucu ve DNS sunucu adresleri gibi) de istemciye gönderilebilir.

Eğer istemci bilgisayar bu adres önerisini kabul ederse önerilen adres


istemciye belli bir süre için kiralanır (niye atama ya da satma terimini değil de
kiralama terimini kullanıyoruz, biraz sonra açıklığa kavuşacak).

DHCP sunucudan adres kiralama işlemi dört aşamada gerçekleşir:

1. İlk olarak istemci, “Benim IP adresi, subnet maskesi vb. bilgileri


içeren TCP/IP yapılandırmasına gereksinimim var. Eğer ortamda bir
DHCP sunucu varsa bana TCP/IP yapılandırma parametreleri
göndersin” anlamında bir mesajı broadcast olarak yayınlar. Niçin
broadcast? Çü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

- 74 -
DHCP

kendi MAC adresini yazar. Hedef MAC adresini bilmediği için buraya
da FFFFFFFFFFFF adresini yazar (FFFFFFFFFFFF: ağ teknolojisi
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. İstemcinin
hâlihazırda bir IP adresi bulunmadığı için bu mesaj da broadcast
olarak yayınlanır. Bu mesaja DHCP OFFER (DHCP ÖNERl) 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ı (identifier) bilgisi bulunur. Bu da sunucunun
IP adresine eşittir.
DHCP OFFER mesajında, önerilen IP adres bilgisinin yanı sıra
adres kiralama süresi de bulunur. (Windows 2003 sunuculardaki
DHCP hizmeti için bu süre varsayılan olarak 8 gün.)

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ı).

4. Son olarak adres önerisi kabul edilen DHCP sunucu, “işlem tamam”
anlamında 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.

Bu dört adımdan sonra istemci bir IP adresine kavuşur. Ama kendisine


gönderilen IP adresini kullanmadan önce son bir şey daha yapar: Kendisine
verilen IP adresinin bir başka bilgisayar tarafından kullanılıp kullanılmadığını
anlamak için bir ARP broadcast’i ile IP adresini sorgular (Şu IP adresine sahip
bir makine var mı diye yayın yapar). Eğer bir başka bilgisayar o IP adresini
kullanmıyorsa bu ARP broadcast’ine bir yanıt dönmeyecektir, istemci de IP
adresini rahatlıkla kullanacaktır.

Aşağıda Ağ İzleyicisi (Network Monitor) programı ile alınmış olan paketlerde


bu dört mesajı görebilirsiniz.

- 75 -
TCP/IP

Şekil 6.17: DHCP paketlerinin Ağ izleyicisinde Görüntülenmesi.

Bu şekilde DHCP’den adres alınması sırasında üretilen dört paketi (bunlara


Ethernet terminolojisinde çerçeve deniyor- İngilizcesi “frame”) görüyoruz.

İlk çerçevede GIGA-B89077F şeklinde MAC adresine sahip olan bir bilgisayar
DHCP DISCOVER mesajını broadcast olarak gönderiyor. Normalde Ağ
izleyicisinde yalnızca MAC adresi görmemiz gerekir ama Ağ İzleyicisi akıllı bir
programdır ve MAC adresi yerine bilgisayarın adını görüntülemeye çalışır.
Eğer paketin içinde bilgisayarın adına ilişkin bir bilgi yoksa MAC adresinin ilk
üç baytına bakarak kartın üreticisi firmasını görüntülemeye çalışır
(örneğimizde görüntülüyor; firma Gigabyte). Eğer firmayı da bulamamış
olsaydı o zaman MAC adresini görüntülerdi.

İkinci çerçevede bir DHCP OFFER mesajı var. Bu mesajı gönderen


bilgisayarın adı bölümünde LOCAL ifadesini görüyoruz. Yani, üzerinde
bulunduğumuz, Ağ İzleyicisini çalıştırdığımız bilgisayar, yerel bilgisayar (Local
sözcüğü Türkçe’de yerel demek).

Üçüncü çerçevede istemci bilgisayar, DHCP sunucunun önerisini kabul ettiğini


göstermek üzere DHCP REQUEST mesajı yayınlıyor.

Dördüncü ve sonuncu çerçevede LOCAL bilgisayarı bir DHCP ACK mesajı


yayınlayarak adres kiralama işleminin onaylandığını bildiriyor.

Şimdi Ağ izleyicisi 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 ilk çerçevenin içeriğini daha ayrıntılı bir şekilde görüyoruz:

- 76 -
DHCP

Şekil 6.18: İstemciden çıkan DHCP Discover paketinin ayrıntısı.

Burada gördüğümüz gibi istemcinin ve karşı tarafın IP adres kadları boş;


bunlar henüz bilinmiyor. İstemci, bir tek kendi MAC adresini (Client Ethernet
Address) gönderebiliyor.

Şimdi ikinci çerçeveye bakalım:

Şekil 6.19: DHCP sunucudan çıkan DHCP Offer paketinin ayrıntısı.

Önerilen adresi burada açık ve seçik olarak görebiliyoruz (Your IP Address):


192.168.0.200. Yine bu çerçevede hangi istemcinin keşif paketine karşılık
olarak bu paketin yollandığı (Client Ethernet Address) ve sunucunun IP adresi
(Server IP Address) bilgileri de görülebiliyor.

- 77 -
TCP/IP

Üçüncü çerçevede istemci kendisine önerilen adresi kabul ediyor:

Şekil 6.20: DHCP istemciden çıkan DHCP Request paketinin ayrıntısı.

Bu çerçevede ilgili bilgileri görebilmek için DHCP Option Field bölümünü


genişlettik. Bu çerçevede Server Identifier kısmında önerisini kabul ettiğimiz
DHCP sunucu görünüyor.

Sonuncu çerçevede sunucudan onay gidiyor:

- 78 -
DHCP

Şekil 6.21: DHCP sunucudan çıkan DHCP ACK paketinin ayrıntısı.

Şimdi sonuncu çerçevenin DHCP: Option Field kısmını biraz yakından


bakalım. Burada ağ geçidi adresi, DNS sunucu adresi vb. şeyler yer alıyor. Bu
bölümden anladığımız kadarı ile DHCP tarafından bazı bilgiler seçimlik bilgi
olarak gönderilmiş. Bunlar;

Router (Yöneltici, ağ geçidi) : 192.168.0.1


Domain Name Server (DNS sunucu adresi) : 192.168.0.1
Domain Name (Etki Alanı Adı) : Anadolu.com
NetBIOS Node Type (NetBIOS düğüm türü) : 00000008

Yine burada kira süresi (8 gün), kira yenileme süresi (4 gün) ve kira yenileme
süresinde sunucuya ulaşılamazsa yeniden deneme zamanı (7. gün) şeklinde
bilgiler de var.

DHCP ile alınmış adres bilgileri grafik ortamdan (Ağ Bağlantılarım’dan Yerel
Ağ Bağlantısının üzerinden) görülemez (Niye? Belli bir yanıtı yok. Aslında
gösterilebilirdi. Peki, TCP/IP yapılandırmasını nereden göreceğiz? Ya komut
satırından IPCONFIG komutunu vereceğiz ya da Kayıt’ın (Registry) içine

- 79 -
TCP/IP

dalacağız. İstemci, TCP/IP parametrelerini Kayıt’ta aşağıdaki anahtarda (key)


saklar:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Para
meters\Interfaces\ağ kartını tanımlayan ifade

Şekil 6.22: DHCP istemcinin parametrelerinin Kayıt'ta görüntülenmesi.

IPCONFIG komutunu komut satırından verirsek IP adresimiz, alt ağ maskemiz


ve ağ geçidi adresimiz görüntülenir:

Şekil 6.23: IPCONFIG komutu ile DHCP istemcinin bilgilerinin görüntülenmesi.

Komut satırından ipconfig komutu verildiğinde yukarıdaki bilgilerin dışında,


DHCP sunucudan seçimlik bilgi olarak gönderilen bilgileri nasıl göreceğiz?
Bunun için komutu “ipconfig /all” şeklinde vermek gerekiyor:

- 80 -
DHCP

Şekil 6.24: IPCONFIG /ALL komutu ile ayrıntılı bilgilerin görüntülenmesi.

Çok daha ayrıntılı bilgiler geliyor, değil mi? Şimdi bu bilgilere bir göz atalım
(DHCP istemci İngilizce bir işletim sistemine sahip olduğu için alanlar da
İngilizce):

Host Name : DHCP istemcinin Host adı.


Primary DNS Suffix : DHCP istemcinin alan adı.
Node Type : NetBIOS adlarım IP adreslerine
çevirmede kullanılacak yöntemleri
belirleyen düğüm türü. “Bu da ne?”
diyorsanız izlemeye devam edin.

IP Routing Enabled : IP yönlendirme yapılıyor mu? Yani, bu


makine bir yöneltici olarak mı çalışıyor?
WINS Proxy enabled : WINS vekil ajan görevimiz var mı?
DNS Suffix Search List : DNS sorgularında, bilgisayarların alan
adları belirtilmezse, bu adlara
eklenecek ifade.

Sonra da ağ kartımıza ilişkin ayrıntılı bilgiler geliyor:


Connection-specific DNS suffix : Bu bağlantıya özgü DNS alan adı
Description : Bağlantıyı tanımlayan ifade
Physical Address : Fiziksel adres. Yani, MAC adresi.

- 81 -
TCP/IP

DHCP Enabled : DHCP istemci miyiz?


Autoconfiguration Enabled : DHCP sunucuyu bulmazsak APIPA ile
IP adresi alacak mıyız? APIPA’nın
açıklaması aşağıda.
IP Address : IP adresimiz
Subnet Mask : Alt ağ maskesi
Default Gateway : Ağ geçidinin adresi / Yönelticinin adresi
DHCP Server : IP adresini aldığımız DHCP sunucunun
adresi.
DNS Servers : DNS sunucuların adresleri
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
istersek yine ipconfig komutunu vereceğiz. Ama bu sefer release (serbest
bırak) parametresi ile:

Şekil 6.25: IPCONFIG /RELEASE komutu ile DHCP sunucudan alınan IP adresinin bırakılışı.

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:

- 82 -
DHCP

Şekil 6.26: IPCONFIG /RENEW komutu ile yeniden DHCP sunucudan IP adresi alınışı.

DHCP'de Kira Kavramı


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. Bu iş aynen bir ev
kiralamaya benzer.

Bir ev kiraladığı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.

Windows 2003’de DHCP ile alınan adresin süresi sekiz gün. “Niye beş gün
değil ya da onüç gün değil de sekiz gün?” diye sorabilirsiniz. Bu tür değerler
günlük hayatta yapılan testlerin, denemelerin sonunda belirlenmiştir. Yani, bu
sekiz 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. (NT
zamanında bu süre üç gündü ve ben yine değiştirmeyin diyordum, istikrar
güzel şey.)

Yukarıda 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 sonunda da
adresi kullanmak istiyorsa kira kontratını yenilemeli dedik. Şimdi 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.

- 83 -
TCP/IP

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. İki
mesaj içinde seçimlik parametrelerin (ağ geçidi, WINS ve DNS sunucu
adresleri gibi) en son hali de yer alır. Sunucu, IP adresini kullanmayı
sürdürmek isteyen istemcinin istediğini kabul etmeyebilir. Gerçek
hayatta “Oğlum gelecek, süre sonunda evi boşaltın” diyen ev sahipleri
gibi, o IP adresi sonradan bir başka makineye rezerve edilebilir ya da
dışarıda tutulabilir (exclude). Böyle bir durumda, DHCP sunucu,
istemciye bir olumsuz yanıt (NACK) mesajı gönderecektir.

İstemci aldığı DHCP mesajına göre kendi yapılandırmasını düzenler.

Eğer istemci kira süresini uzatmak istediğinde DHCP sunucu ile ilişki
kurulamı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 gibi
kiralanan IP adresi de kullanılmaya devam ediliyor.

İstemci ilk girişiminde kira kontratını yenileyememişse kalan sürenin dörtte üçü
tamamlandığında (yedinci günde) 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.

APIPA (Automatic Private IP Addressing)


Eğer DHCP Server’ın IP adres havuzunda verilebilecek bir adres kalmamışsa
ve istemci başka bir DHCP sunucudan da adres alamıyorsa (ya da ortamda bir
DHCP sunucu hiç olmamışsa) normalde o istemci TCP/IP iletişimine geçemez.
Bu da sorun demektir. Bu sorunu çözmek için Windows 98 Second Edition ve
Windows 2000 ve yukarısında APIPA denilen bir mekanizma kullanılır. Bu
mekanizma sayesinde, bir DHCP istemci bir şekilde bir DHCP sunucudan IP
adresi alamazsa özel bir ağ adresinden (169.254.0.0/24 ağından) rastgele
bir IP adresi alır ve en azından kendisi gibi APIPA ile IP adresi almış
makinelerle iletişime geçebilir.

APIPA ile alınan IP adreslerinin çakışmaması şöyle sağlanır: Bir makine


kendisine 169.254.0.0 ağından bir IP adresi almak istediğinde bunu önce
bu adresin kullanılıp kullanılmadığını anlamak için bu adrese yönelik bir ARP
paketi broadcast eder. Eğer o IP adresini kullanan bir makine ortamda varsa
yanıt verecektir, yoksa yanıt da gelmeyecektir. Yanıtın gelmemesi durumunda
istemci o IP adresini kullanabileceğine karar verir. Yanıt gelirse o IP adresi
kullanımda demektir, 169.254.0.0/24 ağından başka bir adres seçilerek
tekrar deneme yapılır.

- 84 -
DHCP

APIPA ile IP adresi alan istemciler araştırmayı da bırakmazlar ve belli


aralıklarla bu DHCP sunucuya ulaşıp ondan IP adresi almaya çalışırlar.

DHCP Sunucunun Verdiği Adres Çakışırsa


DHCP sunucunun dağıttığı IP adreslerini uygun bir şekilde ayarlamak gerekir.
Bu kapsamda adres havuzunu belirlerken havuzda yer alan IP adreslerinin
başka bilgisayarlar tarafından kullanılmaması gerekir.

Başka bilgisayarların kullanmakta olduğu IP adreslerini havuzumuzda


tanımlarsak, DHCP istemcilere bu IP adreslerini verebiliriz. Bu da IP
adreslerinin çakışmasına neden olur (aynı IP adresinin birden fazla bilgisayar
tarafından kullanılması durumu). Bu istenmeyen bir durumdur. TCP/IP’de bir
bilgisayarı belirleyen şey, bilgisayarın IP adresi olduğu için her bilgisayarın
birbiriyle çakışmayan IP adreslerine sahip olması gerekir.

Windows 2000’de ve Windows 2003’de bu durumun çaresi de düşünülmüş.


Çakışma olması durumunda bu durum fark edilir ve DHCP sunucu çakışan
adresi BAD_ADDRESS (Kötü, dağıtılmaması gereken adres) şeklinde
işaretler.

Şimdi bu durumu bir örnekle görelim.

Örneğimizde DHCP sunucunun bir kapsamı var. Bu kapsamın adres havuzu


da 192.168.0.30 ve 192.168.0.31 adreslerini içeriyor (bilerek küçük
tutulmuş bir adres havuzu). Bu havuzun ilk IP adresi, 192.168.0.30 da
başka bir bilgisayar tarafından kullanılıyor. Bir makineyi DHCP istemci olarak
yapılandırıyoruz. İstemci makine DHCP Discover mesajını yayınladığında
sunucu ona 192.168.0.30 adresini önerecek. Bu adres bir başka makine
tarafından kullanılıyor. Bu işlemleri ve çakışmanın nasıl çözümlendiğini Ağ
İzleyicisi ile görelim.

- 85 -
TCP/IP

Şekil 6.27: IP adresi çakışmasının çözümlenmesi.

Yukarıdaki şekil Ağ İzleyicisi’nde kapılan ağ trafiğinin süzülerek yalnızca ARP


ve DHCP protokollerinin görüntülenmesiyle oluşturulmuştur.

Şekilde 710-713 nolu çerçevelerde normal bir DHCP trafiği görüyoruz. 713.
çerçevede istemci bir IP adresine kavuşuyor. Bu adres 192.168.0.30 (havuzun
ilk adresi). Sonra 714. çerçevede istemci bu adresin o anda kullanımda olup
olmadığını anlamak için bir ARP sorgusu yayınlıyor. 715. çerçevede bu
sorguya bir yanıt dönüyor. Bu yanıtta GIGA-B89077F makinesi 192.168.0.30
adresini kendisinin kullandığını belirtiyor (ve MAC adresini de gönderiyor).
Bunun üzerine istemci 716. çerçevede kendisine 192.168.0.1 IP adresine
sahip DHCP sunucu tarafından verilen IP adresini kullanamayacağını belirten
bir mesajı yayınlıyor (DHCP Decline mesajı). Bu mesaj yayın şeklinde olduğu
için DHCP sunucu tarafından da alınıyor ve 192.168.0.30 adresi kötü adres
şeklinde işaretleniyor. İstemci, 920. çerçevede tekrar DHCP Discover mesajı
yayınlıyor. Bu sefer DHCP sunucu ona havuzdaki bir sonraki adresi,
192.168.0.31 adresini öneriyor. 923. çerçevede bu adres için onay geliyor.
924, 935 ve 954 nolu çerçevelerde istemcinin bu adres için ARP sorgusu
yayınladığını görüyoruz. Bu sorguya karşılık bir yanıt dönmüyor. Yani, işler
yolunda, çakışma yok.

DHCP sunucuda, kapsamın altındaki Adres Kiraları kabına bakarsak


192.168.0.30 adresinin kötü adres (BAD_ADDRESS) olarak işaretlendiğini
görürüz.

- 86 -
DHCP

Şekil 6.28: Çakışan adresin kötü adres olarak işaretlendiğinin görüntülenmesi.

DHCP Sunucunun Çakışmaya Yol Açmamasının Sağlanması

Windows 2000 ve Windows 2003’de bulunan DHCP hizmetinin bir başka


güzel yanı DHCP sunucunun verdiği IP adreslerinin baştan hiç
çakışmamasının sağlanması. İstenirse DHCP sunucu bir istemciye bir IP
vermeden önce, o IP adresinin kullanılıp kullanılmadığını araştırabilir. Eğer
önereceği IP adresi o anda başka bir makine tarafından kullanılıyorsa bunu
saptayıp istemciye başka bir IP adresi önerebilir. Buna Çakışma Denetimi
diyoruz.

Başlangıçta çakışma denetimi yapılmıyor. Buna çok da gerek yok aslında.


Çünkü çakışma olursa yukarıda gördüğümüz gibi bu durum da saptanıp gereği
yapılıyor.

Çakışma denetimini etkinleştirmek için DHCP konsolunda sunucuya sağ


tıklayıp Özellikler şıkkını seçiyor ve oradan da Gelişmiş sekmesine gidiyoruz.

- 87 -
TCP/IP

Şekil 6.29: DHCP sunucunun üzerinde Gelişmiş sekmesi.

Yukarıdaki şekilde “Çakışmayı algılama denemeleri” alanında başlangıçta


sıfır değeri vardır. Yani, çakışma algılaması yapılmaz. Bunu 2 yaparsak DHCP
sunucu bir IP adresini önermeden önce iki kez çakışma olup olmadığını
anlamaya çalışacaktır.

Şimdi de çakışma denemesi nasıl oluyor ve DHCP sunucu çakışma olduğunda


neler yapıyor, ona bakalım.

Örneğimizde DHCP sunucunun kapsamındaki IP adresleri 192.168.0.130 ile

140 aralığında yer alıyor. 192.168.0.130 adresi halen bir makine tarafından
kullanılıyor.

Aşağıdaki şekilde Ağ Izleyicisi’nde kapılan bir trafiği izliyorsunuz.

- 88 -
DHCP

Şekil 6.30: DHCP sunucunun çakışma denetimi yapması.

40 nolu çerçevede SILICO097884 makinesi bir DHCP Discover mesajı


yayınlayarak IP adresi istediğini belirtiyor. 41 nolu çerçevede DHCP sunucu
olan LOCAL makinesinin adres havuzundaki ilk IP adresi olan 192.168.0.130’
u önermeden önce bu adresi sorgulayan bir ARP yayını yaptığını görüyoruz.
42 nolu çerçevede GIGA-B89077F makinesi hemen bu ARP’a yanıt veriyor.
Demek ki 192.168.0.130 adresi kullanılıyor. Bunun üzerine DHCP sunucusu
45. çerçevede havuzdaki ikinci IP adresini sorguluyor. Aynı sorgu 48.
çerçevede de tekrarlanıyor (çakışma denemesinin 2 kez yapılacağını
belirtmiştik anımsarsanız). Her iki sorguya da yanıt dönen bir makine
olmayınca 192.168.0.131 adresi 49. çerçevede istemciye öneriliyor.

DHCP Sunucuları Nerelere Kurmak Gerekir?

DHCP ile IP adres alımı broadcast mesajlara dayandığı için ağımızı oluşturan
her bölüme (yönelticilerle ayrılmış bölümlere) bir DHCP sunucu kurmak
gerekiyor gibi görünüyor. Her ağ bölümünün bir TCP/IP ağ adresi var. O ağ
bölümüne bir DHCP sunucu kurarız, adres havuzunu da o ağa uygun olarak
veririz. DHCP sunucu kendi bölümündeki istemcilere IP adresi dağıtır.

Ama günümüzün eğilimi sunucuların azaltılması yönünde, işleri mümkün


olduğunca az sunucu ile halletmemiz isteniyor. Sunucular da zaten yeterince
güçlü. Peki bu durumda ne yapacağız? Bir ağ bölümündeki DHCP sunucunun
hem bulunduğu ağ bölümündeki istemcilere hizmet vermesini, hem de diğer
ağ bölümlerindeki istemcilere hizmet vermesini sağlayacağız. Aşağıdaki şekle
bakalım:

- 89 -
TCP/IP

192.168.0.0/24 192.168.1.0/24

R
DHCP
sunucu
Kapsam1: 192.168.1.50-192.168.1.250

Şekil 6.31: Çok bölümlü bir ağ örneği.

Yukarıdaki şekilde bir yönelticiyle ayrılmış iki ağ bölümü görüyoruz.


Bölümlerden birinde 192.168.0.0/24 ağ adresi, diğerinde 192.168.1.0/24 ağ
adresi kullanılıyor. DHCP sunucuda kendi bölümü için bir kapsam
oluşturulmuş. Şimdi işimiz bu sunucunun yönelticinin diğer yanına da hizmet
vermesini sağlamak. Bunu iki şekilde sağlayabiliriz:

1. Özel bir yöneltici kullanarak. Yönelticiler normalde yayın (broadcast)


mesajlarını iletmezler. Ama Bootp-enabled yöneltici ya da RFC 1542
uyumlu yöneltici denilen yönelticiler DHCP broadcast mesajlarını,
yalnızca bu çeşit yayınları iletebilirler. Eğer yönelticimizi bu özelliği
destekleyen bir yöneltici olarak seçersek, şekilde sol bölümde yer alan
istemciler DHCP discover mesajı yayınladıklarında bu mesaj yöneltici
tarafından sağdaki DHCP sunucuya geçirilecektir. DHCP sunucudan
çıkan paketler de sol bölüme iletilecektir.
Bu yöntemin kötü yanı, her sunucunun bu işleve sahip olmaması, bu
şekilde yapılandırılamaması. Özel ve pahalı bir yöneltici almak ve bunu
doğru şekilde yapılandırmak gerekir. İlke olarak genelde kullanılmayan,
özel aygıtlara pek başvurmamalıyız (onca para verdiğimiz özel aygıt
arızalanırsa ne yapacağız? Her yerde rastlanan bir aygıt kullansaydık
hemen yerine bir başkasını koyabilirdik).
2. DHCP relay agent (DHCP aktarma aracısı) kullanarak. Bu
yöntemde, DHCP sunucu içermeyen bölümde bir Windows 2003
makineyi statik olarak yapılandırıyoruz (IP adresini, varsayılan ağ
geçidi adresini vb. parametreleri elle giriyoruz). Sonra bu makineyi
aşağıda anlatıldığı gibi DHCP aktarma aracısı olarak yapılandırıyoruz.
O bölümde bir istemci DHCP Discover mesajı yayınladığında ajanımız
bu isteği kapıp bağlı olduğu DHCP sunucuya bildiriyor, ondan gelen
yanıtı da istemciye ulaştırıyor.

DHCP aktarma aracısını oluşturmadan önce DHCP sunucuda karşı bölüm için
bir kapsam yaratmalıyız. DHCP sunucuda birden fazla kapsam bulunacak.

- 90 -
DHCP

DHCP sunucu IP adresi isteğinin bir aktarma aracısından geldiğini görünce


aracının bulunduğu bölüm için tanımladığı havuza bakacak ve uygun bir adres
varsa bu adresi röle ajanına iletecektir. Aktarma aracısı da adresi, sanki o
bölümde bulunan bir DHCP sunucudan geliyormuş gibi istemciye
gönderecektir.

DHCP Aktarma Aracısı (Relay Agent) Kuralım

DHCP aktarma aracısı olacak bilgisayarın sabit bir IP adresi bulunmalıdır


(kendisi DHCP istemci olan bir bilgisayar nasıl başka makineler için ajan
olacak, değil mi?). DHCP Relay agent işlevi bir yönlendirme protokolüdür
(routing protocol). Yönlendirme protokolleri yönelticilere yüklenir ve onların
çeşitli işlevler kazanmasını sağlar. Dolayısıyla, DHCP aktarma aracısı olacak
Windows 2003 makinenin bir yöneltici olarak yapılandırılmış olması gerekir.
Bunun nasıl yapılacağını biliyoruz (Bölüm 5). Aynı zamanda, DHCP aktarma
aracısı olacak makinenin DHCP sunucu da olmaması gerekir ya da en
azından DHCP hizmetinin çalışmıyor olması gerekir.

Bir yöneltici olarak yapılandırılmış Windows 2003 makineyi DHCP aktarma


aracısı yapmak için o makinede “Yönlendirme ve Uzaktan Erişim” konsolunu
açıyoruz. Konsolda IP Yönlendirmesi kabının altındaki Genel düğümüne sağ
tıklayıp “Yeni Yönlendirme İletişim Kuralı” şıkkını seçiyoruz. Karşımıza
eklenebilecek yönlendirme protokollerinin listesi geliyor.

Şekil 7.32:
Yönlendirme
protokollerinin listesi.

- 91 -
TCP/IP

Bu listeden “DHCP Aktarma Aracısı” şıkkını seçiyoruz ve “Tamam”


düğmesine basıyoruz. Şimdi IP Yönlendirmesi başlığının altında “DHCP
Aktarma Aracısı” düğümü oluştu.

Şimdiki işimiz eklenen yönlendirme protokolüne bir arabirim (interface)


eklemek. Arabirim ifadesi, üzerinde bulunduğumuz bilgisayarın ağ
bağlantılarından her biri anlamına geliyor. Bir arabirim seçtiğimizde, o ağ
bağlantısından gelen DHCP Discover yayınlarını dinliyor ve onlar için işlem
yapıyoruz. Seçmediğimiz bir arabirim DHCP Discover yayını duysak bile
herhangi bir işlem yapmıyoruz.

Örneğimizde, DHCP aktarma aracısında iki arabirim var: İç ve Dış adlarındaki


arabirimler. Biz arabirim olarak İç arabirimini seçeceğiz ve bu arabirimden
gelen DHCP Discover mesajları için işlem yapacağız.

Arabirim eklemek için IP Yönlendirmesi başlığının altındaki DHCP Aktarma


Aracısı düğümüne sağ tıklıyoruz ve “Yeni Arabirim” şıkkını seçiyoruz.
Karşımıza arabirimlerin listesi geliyor.

Şekil 7.33: Eklenebilecek arabirimlerin listesi.

- 92 -
DHCP

Bu listeden “ic” arabirimini seçiyoruz. Bu arabirimi seçtiğimizde aşağıdaki


pencereyle karşılaşacağız ve buradan arabirim üzerindeki parametreleri
ayarlayabileceğiz.

Şekil 7.34: Arabirim üzerindeki ayarlar.

Yukarıdaki pencerede “Atlama sayısı eşiği” alanı DHCP aktarma aracısının


en çok kaç yöneltici geçerek bir DHCP sunucuya ulaşabileceğini belirtiyor.
Varsayılan değer 4.

Önyükleme eşiği ise aracının bir DHCP sunucuya başvurmadan önce kaç
saniye beklemesi gerektiğini belirtiyor. DHCP aracısı ağda bir DHCP Discover
mesajı duyduğunda hemen işe koyulmuyor, bir süre bekliyor, sonra DHCP
sunucuya ulaşmaya çalışıyor. Bu şekilde, eğer aracının bulunduğu ağ
bölümünde bir DHCP sunucu varsa istemcinin o sunucudan IP adresi alması
garantileniyor.

- 93 -
TCP/IP

Son olarak, bu aracının hangi DHCP sunucu ya da sunuculardan hizmet


alacağını belirtmemiz gerekiyor. Bunu da DHCP Aktarma Aracısı öğesine sağ
tıklayıp Özellikler şıkkını seçerek yapıyoruz. Karşımıza çıkan pencerede
Sunucu adresi alanına DHCP sunucusunun IP adresini yazıyoruz ve Ekle
düğmesine basıp listeye atıyoruz. Sonra da Tamam düğmesine basıp
çıkıyoruz.

Şekil 7.35: Ajanın bağlı olduğu DHCP sunucunun belirtilmesi.

Artık DHCP aktarma aracımız hazır. Aracı, ilgili arabiriminden bir DHCP
Discover mesajı alırsa bunu belirtilen DHCP sunucuya gönderecek, oradan
aldığı IP adresini de istemciye iletecek. Bir istemciye DHCP aktarma aracısı ile
IP adresi verilmesi trafiğini aşağıdaki şekilde görebiliriz.

- 94 -
DHCP

Şekil 7.36: DHCP aktarma aracısı aracılığı ile IP adresinin elde edilmesi.

Yukarıdaki şekilde SILICO097884 makinesi DHCP Discover mesajı yayınlıyor


(552 ve 586 numaralı çerçeveler). DHCP aktarma aracısı yaptığımız LOCAL
makinesi bu isteği alıp SILICO095654 makinesine, yani bağlı bulunduğu
DHCP sunucuya gönderiyor (589). 590 nolu çerçevede SILICO095654
makinesinden LOCAL’e bir DHCP Offer mesajı geliyor. Bu mesajda istemciye
önerilen IP adresi var. 592 nolu çerçevede LOCAL makinesi gelen DHCP
Offer mesajını SILICO097884 makinesine gönderiyor. 734 nolu çerçevede
SILICO097884 makinesi kendisine önerilen IP adresini kullanmak istediğini
belirten DHCP Request mesajını yayınlıyor. 735 nolu çerçevede LOCAL
makinesi bunu bağlı olduğu sunucuya iletiyor. 738 nolu çerçevede sunucudan
LOCAL’e bir ACK mesajı geliyor. 739 nolu çerçevede LOCAL makinesi
kendisine gelen ACK mesajım SILICO097884 makinesine gönderiyor.

Yukarıdaki şekilde bazı çerçevelerin defalarca gönderildiğini görebilirsiniz.


DHCP röle ajanı harekete geçmeden önce 4 saniye beklediği için istemci
makine bu arada çerçeveleri tekrar tekrar gönderiyor.

DHCP Veritabanı, Yedekleme ve Yedekten Geri Yükleme

DHCP veritabanı dosyaları \Windows\SYSTEM32\DHCP\ klasöründe


saklanmaktadır. Bu dosyalar şu şekildedir:

DHCP.MDB DHCP veritabanı dosyası

TMP.EDB DHCP sunucu çalışmakta iken geçici olarak tutulan


veritabanı bilgilerini içerir.

J*.LOG Veritabanında yapılan işlemlerin günlük dosyası. Eğer


bir terslik olursa sunucu bu dosyaları kullanarak verileri

- 95 -
TCP/IP

kurtarmaya çalışır.

J50.CHK Günlük dosyasındaki kayıtların hangilerinin veritabanına


aktarıldığını gösteren denetim dosyası.

DhcpSrvLog-*log DHCP sunucunun günlük işlemlerine ilişkin günlük


dosyaları. Bu günlük dosyalarında bilgiler metin
temellidir. Not Defteri programı ile açılıp okunabilirler.

Res1.log ve Bu dosyalar rezerv dosyalardır. Sabit diskte yer


Res2.log kalmaması olasılığına karşı tutulurlar. Bu dosyalar da
kullanıldıktan sonra yer kalmazsa DHCP hizmeti durur.

DHCP veritabanı dosyalarının uzantısından anlayacağınız gibi bu dosyalar


Access veritabanlarıdır. Ama Acces ile açılamamaktadırlar. Demek ki
yapılarında birtakım değişiklikler yapılmış.

DHCP veritabanı her altmış dakikada bir otomatik olarak yedeklenir. Yedek
dosyaları \systemroot\SYSTEM32\DHCP\BACKUP\NEW klasöründe saklanır.

Eğer 60 dakikalık ilk değeri değiştirmek isterseniz Kayıt içindeki


Backuplnterval değerini değiştirmelisiniz. Bu parametre,

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCP
Server\Parameters
altında yer alır. Bu registry alt anahtarının bir kopyası \systemroot
\SYSTEM32\DHCP\BACKUP klasöründe 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:

1. DHCP sunucu hizmetini durdurup yeniden başlatın. Eğer DHCP


sunucu hizmeti veritabanının bozuk olduğunu saptarsa yedek
kopyalardan otomatik olarak yeniden yükleme yapar.
2. RestoreFlag değerini 1 yapıp DHCP sunucu hizmetini yeniden başlatın.
RestoreFlag parametresi registry’de aşağıdaki adreste bulunabilir:
HKEY_LOCAL_MACHINE\SYSTEM\CurrenControlSet\Services\
DHCPServer\Parameters
Veritabanı başarılı bir şekilde yedekten yüklenince bu değer otomatik
olarak 0 yapılır.

- 96 -
DHCP

3. DHCP sunucu hizmetini durdurun. \Windows\SYSTEM32\DHCP


\BACKUP\NEW klasörünün içeriğini \Windows\SYSTEM32\DHCP
klasörüne kopyalayıp DHCP sunucu hizmetini tekrar başlatın.

DHCP Veritabanının Kompakt Hale Getirilmesi

Windows 2003, DHCP veritabanını otomatik olarak kompakt eder (fazla


büyümesini, aşırı boyutlara ulaşmasını önler). Ama çeşitli nedenlerle DHCP
veritabanının büyüklüğü aşırı miktarda artmışsa veritabanını sizin kompakt
etmeniz gerekir. Bu amaçla Windows 2003 içinde gelen JETPACK komutunu
kullanabilirsiniz. Bunun için

• DHCP sunucu hizmetini durdurun.


• \Windows\SYSTEM32\DHCP klasöründe 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 hizmetini tekrar çalıştırın.

- 97 -
7
WINS

WINS hizmetinin başlıca amacı bilgisayarların NetBIOS adlarını IP adreslerine


Çevirmektir. Bunun yanı sıra bilgisayarların üzerindeki bazı özel hizmetlere
ilişkin bilgiler verir ve bir etki alanının denetçilerini (Domain Controller-DC) de
gösterir. Şimdi WINS’e ayrıntısıyla geçmeden önce NetBIOS adlarıyla daha
yakından ilgilenelim.

NetBIOS Adları
Bilgisayarların, etki alanlarının, çalışma gruplarının NetBIOS adları vardır. Bu
adlar bizim tarafımızdan maksimum 15 karakter (15 Bayt) olacak şekilde
verilir.

15 sayısı kötü bir sayıdır. Bilgisayarlardaki parametreler normalde hep ikinin


katları şeklinde (2,4,8,16,32,64 vb. ) şeklinde büyüklüklere sahiptir. O zaman
bu “15” de neyin nesi?

Aslında NetBIOS adları 15 bayt değil, 16 bayttır. Adlarda bulunan ve normalde


görüntülenmeyen 16. bayt bilgisayarın üzerindeki NetBIOS hizmetlerini,
görevlerini gösterir.

Örneğin, şu anda üzerinde bulunduğum makinenin adı ANASUNUCU. Bu adı


ben verdim ve istediğim zaman da değiştirebilirim. Bu makinede NetBIOS
bakımından anlamı olan hizmetler ve görevler var. Örneğin, bu bilgisayarda
“Sunucu” hizmeti çalışıyor. Bu hizmet sayesinde bu bilgisayardaki
dosyalarımızı ve yazıcılarımızı paylaşıma açabiliyoruz. Yine bu bilgisayarda “İş
istasyonu” hizmeti çalışıyor. Bu hizmet, başka makinelerdeki dosya ve yazıcı
paylaşımlarına erişimi sağlar. Yine bu bilgisayarda Messenger hizmeti var; bu
hizmet “Net send” komutu ile başka bilgisayarlardan gönderilen mesajları
almamızı sağlar. Bu bilgisayar bir Ana Tarayıcı (Master Browser); yani,
ortamdaki bilgisayarların listesini tutuyor ve makinelerin Ağ Komşularım’da
bütün bilgisayarları görmesini sağlıyor.

- 99 -
TCP/IP

İşte NetBIOS adının 16. baytı bilgisayarın üzerindeki bu hizmetleri, görevleri


gösterir. 16. baytın aldığı değerler 00, 20 ya da 03 gibi ifadeler şeklinde
gösterilir. Bir bilgisayarın adı da bu karakterlerle anlam kazanır. Örneğin,
ANASUNUCU<00> ifadesi ANASUNUCU makinesinde İş İstasyonu hizmetinin
çalışmakta olduğunu, ANASUNUCU<20> ifadesi ANASUNUCU makinesinde
Sunucu hizmetinin çalışmakta olduğunu, ANASUNUCU<03> ifadesi
ANASUNUCU makinesinde Messenger hizmetinin çalışmakta olduğunu
gösterir. Bu bakımdan bilgisayarın bir NetBIOS adı yoktur, NetBIOS adları
vardır. ANASUNUCU<00> da ANASUNUCU<20> da bilgisayarın NetBIOS
adları arasındadır. 00, 20 ya da 03 ifadeleri onaltılık düzendeki (hexadecimal)
ifadelerdir. Onaltılık düzende, bir sayı 0,1,2,..9,A,B,C,D,E,F rakamları ile
gösterilir. Onaltılık sayı düzeninde A,B,C,D,E,F ifadeleri harfleri değil rakamları
gösterir. Onaltıncı baytın onaltılık sayı düzeninde olduğunu göstermek için
birçok zaman bu ifadelerin yanında “h” ifadesini görürüz: “h” harfi
kendisinden önce gelen değerin onaltılık (hexadecimal) sayı düzeninde
olduğunu gösterir.

Üzerinde bulunduğumuz makinenin NetBIOS adlarını görüntülemek için (buna


NetBIOS ad tablosu da deniyor) “nbtstat -n” komutunu verebiliriz.

Şekil 7.1: ANASUNUCU makinesinin NetBIOS adlarının görüntülenmesi.

Yukarıdaki şekilde, ANASUNUCU’nun NetBIOS ad tablosunu görüyoruz.

Bu tablodan anladığımız kadarı ile ANASUNUCU’da İş İstasyonu, Sunucu,


Messenger hizmetleri çalışıyor.

- 100 -
WINS

NetBIOS adlarının normalde görüntülenmeyen onaltıncı baytı için değerler şu


şekildedir:

00h: İş İstasyonu

03h: Messenger

06h: RAS Sunucusu

1Bh: Etki Alanı Yönetici Tarayıcısı

1Ch: Etki Alanı Denetçisi

1Eh: Normal Grup Adı

1Fh: NetsDDE

20h: Dosya Sunucusu

BEh: Ağ izleyicisi Aracısı

BFh: Ağ İzleyicisi Adı

Yukarıdaki şekilde ANAD0LU<1C> şeklindeki ad, üzerinde bulunduğumuz


makinenin ANADOLU adındaki etki alanının denetçisi olduğunu gösteriyor.
Önemli bir bilgi!

Eğer ANASUNUCU makinesinde NetBIOS hizmetlerinden birisini durdurursam


bu durum NetBIOS tablosuna yansıyacaktır.

- 101 -
TCP/IP

Şekil 7.2: Bir hizmetin durdurulmasının NetBIOS tablosuna yansıması.

Yukarıdaki şekilde önce normal tabloyu görüyoruz. Sonra “Net stop


Messenger” komutu ile Messenger hizmetini durduruyoruz. Sonra nbtstat
komutu ile tekrar tabloya bakıyoruz. Bilgisayarda Messenger hizmetinin
çalışmakta olduğunu gösteren ANASUNUCU<03> ifadesinin artık tabloda yer
almadığını görüyoruz.

Nbtstat komutu ile yalnızca üzerinde bulunduğumuz makinenin değil, diğer


makinelerin de NetBIOS ad tablolarına bakabiliriz. Bunun için vermemiz
gereken komut şu şekildedir:

- 102 -
WINS

Nbtstat -a diğermakineninadı
Ya da
Nbtstat -A diğermakineninIPAdresi

Resmi açıklama yukarıdaki gibi ama nbtstat —a komutu ile karşıdaki


makinenin adı yerine IP adresi de kullanabiliyoruz. Şimdi bu şekilde
192.168.0.30 IP adresine sahip makinenin NetBIOS ad tablosuna bakalım.

Şekil 7.3: 192.168.0.30 IP adresine sahip makinenin NetBIOS ad tablosu.

Yukarıdaki şekilde 192.168.0.30 makinesine ilişkin çok değerli bilgiler elde


ediyoruz. Örneğin, bilgisayarın adı C2. Üzerinde Sunucu ve Iş istasyonu
hizmetleri çalışıyor ama Messenger hizmeti çalışmıyor. Yine bu makine
SEKERBANK adındaki bir etki alanının denetçisi (domain controller, DC).
Hatta son satırda bu bilgisayarın ağ kartının MAC adresini bile görebiliriz: 00-
20-ED-89-07-7F. MAC adresinin ilk üç baytına bakarak (00-20-ED) ağ kartının
Realtek marka olduğunu bile anlayabiliriz.

Her iki tabloda da satırların yanında “Kaydedildi” ifadesi var. Bunu


açıklayalım.

Bilgisayarlar ilk açıldıklarında hemen ve sonrasında da periyodik olarak


NetBIOS adlarını duyururlar (broadcast). Bu kabaca “ben çalışmaya
başladım, adım şudur, üzerimdeki ağ hizmetleri de budur” demektir. Bu
duyurular sonucunda ortamdaki bilgisayarların listesi hazırlanır (Ağ

- 103 -
TCP/IP

Bağlantılarımda gördüğümüz bilgisayarlar) ve başka bir makinenin bu adı


kullanıp kullanmadığı denetlenir. Eğer başka bir makine bu adları
kullanmıyorsa bilgisayar bu adları kaydettirmiş olur. Bir bilgisayar açıldığında,
bu duyuruyu yaptığında, duyurduğu ad başka bir bilgisayar tarafından
kullanılıyorsa o bilgisayar bu adın kullanıldığını belirtir. Bu durumda
bilgisayarımız ilgili NetBIOS adını kullanamaz. NetBIOS ad tablosunda da
bunu belirten bir ifade yer alır.

WINS Mekanizmasının Çalışması


WINS’i şöyle özetleyebiliriz: Bir Windows 2003 makinesi, üzerine WINS
hizmeti eklenerek WINS sunucu yapılır. Ortamdaki diğer makineler WINS
istemci yapılır. WINS istemciler kendilerine ilişkin bilgileri WINS sunucuya
kaydettirirler. İstemciler bir bilgisayarın NetBIOS adına karşılık IP adresine
gerek duyduklarında WINS sunucuya giderler ve o ada karşılık IP adresini
öğrenirler. WINS istemciler bir etki alanının denetçilerini de WINS’den
öğrenirler. Ayrıca hangi bilgisayarın Bilgisayar Tarama (Computer Browser)
hizmetinden sorumlu (Master Browser) olduğu da yine WINS sunucudan
öğrenilebilir.

WINS’in en güzel yanı bilgisayar adı-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, üzerimdeki hizmetler şunlardır” şeklinde kaydettirirler.

Bu kayıtlar yapıldıktan sonra NetBIOS adı 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 Sunucu Kurulumu


WINS sunucu hizmeti, tahmin edebileceğiniz gibi, Denetim Masası’ndaki,
Program Ekle/Kaldır, Windows Bileşenlerini Ekle/Kaldır bölümünden, Ağ
Hizmetleri bölümünden eklenir. Bu bölümdeki Windows Internet Ad Hizmeti
öğesinin yanındaki kutuyu işaretleyerek bu hizmeti yükleyebiliriz. Bu sırada
Windows 2003 CD-ROM’undaki I386 klasöründen birtakım dosyaların
kopyalanması gerekir. Ya elinizin altında bir Windows 2003 CD-ROM’u
bulunsun ya da I386 klasörünü sabit diske kopyalayın, bu ve buna benzer
durumda dosyaları oradan alın.

WINS hizmeti yüklenince Yönetimsel Araçlar menüsüne WINS şeklinde bir


konsol eklenir. WINS sunucumuzu buradan yönetiriz.

- 104 -
WINS

WINS konsolunu açlığımızda yönetebileceğimiz WINS sunucularım görürüz.


Burada başlangıçta yalnızca üzerinde bulunduğumuz WINS sunucuyu
görürüz. Ama konsoldaki WINS ifadesine sağ tıklayıp “Sunucu Ekle” şıkkını
kullanarak başka bir WINS sunucuyu konsola ekleyebilir ve onu da
yönetebiliriz (tabii yönetme yetkimiz olan WINS sunucuları).

Şekil 7.4: WINS yönetim konsolu.

Konsolda WINS sunucunun altında iki kap görünüyor: Kaydettirilmiş Girdiler ve


Çoğaltma Ortakları. Kaydettirilmiş Girdiler kabında kendisini WINS sunucuya
kaydettirmiş istemcilerin bilgisini göreceğiz. Çoğaltma Ortakları kabındaysa bu
WINS sunucunun veritabanını çoğalttığı (replication) diğer WINS sunucuları
göreceğiz. Ama önce WINS istemcileri yapılandıralım.

Bilgisayarların WINS İstemcisi Olarak


Yapılandırılması
WINS sunucuyu kurduktan sonra 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 sunucunun adresini bir bilgisayara elle vermek için Yerel Ağ


Bağlantısının özelliklerine gidiyoruz, “Internet iletişim Kuralları (TCP/IP)”
öğesini seçip Özellikler düğmesine basıyoruz, karşımıza çıkan pencerede
Gelişmiş düğmesine basıyoruz ve WINS sekmesine geçiyoruz. Bu sekmede,
Ekle düğmesine basarak “Kullanım sırasına göre WINS adresleri” kutusuna
bir ya da birden fazla WINS sunucunun adresini ekliyoruz. Yine bu sekmede,
“NetBIOS ayarı” başlıklı bir bölüm var. Bu bölümdeki seçenekleri kullanarak bu
bağlantı üzerinde NetBIOS işlemlerini etkinleştirebilir ya da devreden
çıkartabiliriz.

- 105 -
TCP/IP

Şekil 7.5: Bir bilgisayarın elle WINS istemci olarak yapılandırılması.

WINS sunucunun adresini elle vermek yerine DHCP ile de dağıtabiliriz.

WINS sunucunun adresini DHCP ile dağıtmak için DHCP konsolunu açıyoruz.
Orada ilgili kapsamı buluyoruz ve kapsamın altındaki Kapsam Seçenekleri’ne
sağ tıklayıp “Seçenekleri Yapılandır” şıkkını seçiyoruz. Karşımıza Kapsam
Seçenekleri penceresi çıkıyor.

- 106 -
WINS

Şekil 7.6: DHCP'de bir kapsamın seçenekleri penceresi.

Kapsam yaratırken kullandığımız sihirbazda bu pencere ile karşılaşmamıştık.


Seçimlik parametreleri sonradan yapılandırmak istediğimizde işlemleri bu
pencereden yapacağız.

Kapsam Seçenekleri penceresinde seçenekler yanlarında birtakım sayısal


kodlar ile yer alıyorlar. WINS sistemi ile ilgili iki seçenek var:

044 WINS/NBNS Sunucuları: Bu seçenekte bir ya da birden fazla WINS


sunucu adresi girebiliyoruz. NBNS kısaltması WINS’in atası olan “NetBIOS
Name Service” anlamına geliyor.

046 WINS/NBT Düğüm Türü: Bu seçenek, istemcilerin NetBIOS adlarını IP


adresine çevirmek için izleyecekleri sırayı gösteriyor, istemciler NetBIOS
adlarını IP adresine çevirirken broadcast yapabilirler, WINS sunucuya
sorabilirler ya da bu iki işlemi belli bir sırada yapabilirler. Düğüm türü için
girilecek sayısal değerler ve anlamları şu şekildedir:

- 107 -
TCP/IP

0x1 B-düğüm: “B” broadcast (yayın) anlamına gelir ve NetBIOS adlarının IP


adresine çevrilmesi sırasında yalnızca broadcast yönteminin kullanılacağını
anlatır.

0x2 P-düğüm: “P” peer (eş, noktadan noktaya) anlamına gelir ve NetBIOS
adlarının IP adresine çevrilmesi sırasında yalnızca WINS yönteminin
kullanılacağını anlatır.

0x4 M-düğüm: “M” mixed (karışık) anlamına gelir ve NetBIOS adlarının IP


adresine çevrilmesi sırasında önce broadcast yönteminin kullanılacağını,
bundan sonuç alınmazsa WINS yönteminin kullanılacağını anlatır.

0x8 H-düğüm: “H” hybrid (melez) anlamına gelir ve NetBIOS adlarının IP


adresine çevrilmesi sırasında önce WINS yönteminin kullanılacağını, bundan
sonuç alınmazsa broadcast yönteminin kullanılacağını anlatır.

Bizim tercih ettiğimiz düğüm türü 0x8 kodlu H-düğüm yöntemidir. Bu şekilde,
hem genel olarak broadcast yapmadan, WINS sunucuyu kullanarak NetBIOS
adlarını IP adreslerine çeviririz, hem de eğer WINS sunucu ulaşılabilir değilse
broadcast yöntemi kullanılabilir.

Aşağıdaki şekilde WINS sunucunun adresinin bir kapsam seçeneği olarak


girilişi görülüyor.

- 108 -
WINS

Şekil 7.7: DHCP'de bir kapsam seçeneği olarak WINS sunucunun adresinin girilişi.

Aşağıdaki şekilde düğüm türünün girilişi görülüyor.

- 109 -
TCP/IP

Şekil 7.8: DHCP'de kapsam seçeneği olarak düğüm türünün girilişi.

DHCP’de bu seçenekleri uygun bir şekilde girdikten sonra, DHCP sunucudan


IP adresi alan ya da IP adreslerini tazeleyen istemciler WINS sunucu adresini
ve düğüm türü bilgisini de alacaklar. Sonra da bu bilgiyi alan istemciler her
açıldıklarında kendilerini WINS sunucuya kaydettirecekler.

NetBIOS Adlarının IP Adreslerine Çevrilmesi


Şimdi bir NetBIOS adı nasıl IP adresine dönüştürülür, görelim. Bu işlemi önce
broadcast yöntemi ile, sonra da WINS sunucuyu kullanarak yapacağız.

Broadcast ile adı IP’ye çevirmek için bulunmakta olduğumuz anasunucu


adındaki makinede komut satırından “PING C2” komutunu veriyoruz. Yani, C2
adındaki bir makineye PING çekiyoruz. Bu sırada ilk olarak C2 adı IP adresine
çevrilecek, eğer IP adresi bulunursa ICMP protokolü ile C2 makinesine
denetim
- 110 -
WINS

paketi gönderilecek. Eğer C2 ile aramızda sağlıklı bir TCP/IP iletişimi varsa C2
makinesi kendisine gelen paketi bize gerisin geri yollayacak. Üstelik bu işi dört
kez yapacağız ki işi rastlantıya bırakmayalım. Ama asıl amacımız PING’in
kendisi değil, PING komutunda verilen adın, C2 adının, IP adresine çevrilmesi.
İşlemleri yaparken Ağ izleyicisi ile de gelen giden paketleri kapacağız ve sonra
da yorumlayacağız.

Yaptığımız işlem komut satırından şöyle görünüyor:

Şekil 7.9: C2 adındaki makinenin PING'lenişi.

Aynı işlemi Ağ İzleyicisi’nde şöyle görüyoruz:

Şekil 7.10: C2 makinesinin PING'lenişinin Ağ Izleyicisi'nde Görünüşü.

Yukarıdaki şekildeki çerçeveleri (anımsarsanız Ethernet’te paket değil


çerçeve- frame) terimi kullanılıyordu) yorumlayalım:

- 111 -
TCP/IP

13.çerçevede, bulunduğumuz makine (Source MAC address kısmında LOCAL


olarak görünüyor) broadcast şeklinde bir paket yayınlıyor. Çerçevenin hedefi
(Destination MAC address) kısmında *BROADCAST yazıyor. Yani, bu paket
bütün makinelere gidiyor. Çerçevenin İletişim Kuralı kısmında NBT yazıyor.
Yani, bu paket TCP/IP üzerinden NetBIOS işlemi yapan bir paket. Açıklama
kısmında NS: Query req. For C2<00> yazıyor. NS, Name Service’ın (Ad
Hizmeti) kısaltması. Query request ise Sorgu isteği anlamına geliyor.

14.çerçevede GIGA-B89077F şeklindeki MAC adresine sahip makine bize


yanıt verebilmek için bizim MAC adresimizi soruyor (ARP Broadcast’i
şeklinde).

15.çerçevede LOCAL makine, GIGA-B89077F makinesine doğrudan kendi


MAC adresini gönderiyor (Niye doğrudan? Çünkü bu çerçeveye kadar iki
tarafın da IP adresleri ve MAC adresleri belli oldu).

16.çerçevede GIGA-B89077F makinesi bize yanıt veriyor. Kendi adına karşılık


IP adresini bildiriyor. Bu çerçevenin Açıklama kısmında “NS: Query response
for C2...” yazıyor; yani, “2 adını sorana yanıt veriyorum, IP adresini
bildiriyorum” demek istiyor.

17 ve 24 no’lu çerçeveler arasında LOCAL makinesinden dört kez ICMP


paketi GIGA-B89077F makinesine gönderiliyor, dört kez de GIGA-B89077F
makinesinden yanıt alınıyor.

Şimdi de bir NetBIOS adının IP adresine WINS’i kullanarak nasıl çevirdiğini


görelim. Bunun için C2 makinesinde “PING ANASUNUCU” komutunu veriyoruz
ve bu sırada ANASUNUCU makinesinde Ağ İzleyicisi’ni kullanarak paketleri
kapıyoruz.

Şekil 7.11: Bir NetBIOS adının WINS ile İP adresine çevrilmesi.

Yukarıdaki şekilde ICMP çerçeveleri görünmüyor. Onların ne olduğunu, ne işe


yaradığını biliyoruz. Bu yüzden süzme (filtering) yapıp yalnızca İletişim Kuralı
kısmında NBT yazan çerçeveleri görüntüledik. İki adet çerçeve var: 88 ve 89
no’lu çerçeveler.

88 no’lu çerçevede GIGA-B89077F makinesi doğrudan (broadcast değil) bir


sorgu paketini LOCAL makinesine (yani, üzerinde bulunduğumuz

- 112 -
WINS

ANASUNUCU adındaki makineye) gönderiyor. Çerçevenin İletişim Kuralı


kısmında NBT, Açıklama kısmında NS: Query req. For ANASERVER<00>
yazıyor. Bu çerçeve bir önceki şekildeki 13. çerçeveye benziyor. Bir farkla: bir
önceki şekildeki 13. çerçeve broadcast olarak gönderiliyor, Şekil 7.8’deki
çerçeve doğrudan (directed, point-to-point) gönderiliyor.

89 no’lu çerçevede LOCAL makinesi GIGA-B89077F makinesine yanıt veriyor.


Bu çerçeve de Şekil 7.10’deki 16. çerçeveye benziyor.

Şekil 7.11’deki iki çerçeve, Şekil 7.10’deki iki çerçeveye benziyor. Aradaki
fark, Şekil 7.8’deki ilk çerçevenin (88 no’lu çerçeve) broadcast şeklinde
olmaması. (GIGA-B89077F makinesi artık bir WINS sunucudan haberdar
olduğu için sorusunu broadcast olarak sormak yerine WINS sunucuya
doğrudan iletiyor. Böylece ortamdaki diğer makineler boş yere meşgul
edilmemiş oluyor.

WINS Hizmetinin Yönetimi


WINS hizmetini yönetmek için Yönetimsel Araçlar altındaki WINS konsolunu
kullanacağız. Bu konsolu Şekil 7.1’de görmüştük. Şu anda istemcilerimiz de
olduğuna göre bu konsolu kullanmaya başlayabiliriz.

Konsolda Kaydettirilmiş Etkin Girdiler kabına sağ tıklayıp “Kayıtları Görüntüle”


şıkkını seçiyoruz. Karşımıza bazı şeyleri seçmemizi isteyen Kayıtları Göster
başlıklı bir pencere çıkıyor.

- 113 -
TCP/IP

Şekil 7.12: Kayıtları Göster penceresi.

Bu pencerede üç sekme var: Kayıt Eşleme sekmesinde özel bir makinenin


adını ya da IP adresini verebiliriz ve WINS veritabanında verdiğimiz bilgiye
uyan kayıtlar görüntülenir. Örneğin, bu sekmedeki “Bu Ad düzeniyle eşleşen
kayıtları süz” kutusunu işaretleyip altındaki alana “c” ifadesini girsek adı “c” ile
başlayan bilgisayarların kayıtları görüntülenir. İkinci sekme Kayıt Sahipleri
sekmesidir. Eğer diğer WINS sunucularla çoğaltma (replication) yapılıyorsa
veritabanımızda hem bu sunucuya, hem de diğer sunuculara yaptırılan kayıtlar
bulunacaktır. Bu durumda, bu sekmeyi kullanarak yalnızca belirlediğimiz
sunucudaki kayıtların görüntülenmesini sağlayabiliriz. Üçüncü sekme “Kayıt
Türleri” sekmesidir. Bu sekmeden istediğimiz türdeki kayıtları (iş istasyonu ya
da sunucu hizmetine ilişkin kayıtlar gibi) belirtip yalnızca bu türdeki kayıtların
görüntülenmesini sağlayabiliriz.

Başta çok bir şey belirtmiyoruz ve “Şimdi Bul” düğmesine basıyoruz. WINS
veritabanındaki kayıtlar karşımıza geliyor.

- 114 -
WINS

Şekil 7.13: WINS veritabanındaki kayıtlar.

Bu şekilde “Kayıt adı” sütununda ilgili bilgisayarın, çalışma grubunun ya da


etki alanının adı var: C2 adındaki bilgisayar, ANASUNUCU adındaki
bilgisayar, ANADOLU adındaki çalışma grubu, SEKERBANK adındaki çalışma
grubu gibi. “Türü” sütununda ilgili kaydın türü var. Bu sütunda ilgili NetBIOS
hizmetlerinin kodlarını görüyoruz. IP adresi kısmında ilgili IP adresini
görüyoruz. “Durum” sütununda kaydın halen etkin olup olmadığını görüyoruz.
“Sahibi” sütununda bu kaydın hangi WINS sunucuda bulunduğunu görüyoruz.
Burada tek seçenek var, IP adresi 192.168.0.1 olan WINS sunucu, ilerleyen
kısımlarda ikinci bir WINS sunucu daha yaratacağız ve sunucular arasında
bilgileri çoğaltacağız. O zaman bu sütunda başka bir IP adresi de
görebileceğiz. “Sürümü” kısmında bu kaydın sürüm bilgisini, kabaca yenilik
derecesini görüyoruz. Bu bilgi diğer sunucularla çoğaltma işleminde
kullanılacak. (Sunucular sürüm numarası belli bir değerden yukarı olanları,
yani yeni olanları diğer WINS sunuculara gönderecekler.) “Kullanım süresi”
sütununda bu kaydın kullanım süresi sonunu görüyoruz. WINS’e yapılan
kayıtların geçerlik süresi 6 gündür ve bu süre bitmeden kaydın yenilenmesi
gerekir. Kayıt yenilenmezse aynı bilgisayar adını başka bir makine WINS
sunucuya kaydettirme olanağına kavuşur. (Tabii, böyle bir durum olacak diye
zorunluluk yok. Genelde iki bilgisayara aynı adı vermeyiz.)

WINS Veritabanına Statik Kayıt Eklenmesi


WINS sunucu kullanmanın en iyi yanı kayıt işleminin otomatik yapılmasıdır.
WINS istemciler kendi NetBIOS adlarını WINS sunucuya kaydettirirler. Ama
WINS istemci olamayacak makineler, örneğin, UNIX makineleri, kendilerini
WINS sunucuya kaydettiremezler. Bu türlü makineler statik olarak WINS
veritabanına kaydedilebilir.

- 115 -
TCP/IP

Statik kayıt eklemek için WINS konsolunda Kaydettirilmiş Etkin Girdiler kabına
sağ tıklayıp Yeni Statik Eşleme şıkkı seçilir. Karşımıza gelen pencerede
bilgisayarın adını ve IP adresini gireriz.

Şekil 7.14: WINS veritabanına statik bir kaydın girilişi.

Burada NetBIOS kapsamı şeklinde bir alan da bulunur. Bu alan çok eski bir
işlevi sürdürmek için var. Boş bırakılmasında sakınca yok. Yine bu pencerede
Tür şeklinde bir alan da var. Bu alana kaydın türünü yazıyoruz. Tür kısmında
seçeneklerimiz şunlardır:

Benzersiz: Normal bir bilgisayar adı ve IP adresi

Grup: Grup adı ve IP adresi

Etki Alanı Adı: NT Domain Adı

Internet Grubu: 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)

- 116 -
WINS

Birden Çok Anabilgisayara Bağlı: Buradaki ifade ne yazık ki tümüyle yanlış


bir çeviri eseri. Burada kastedilen şey bir bilgisayarda birden fazla IP adresinin
bulunması. Bu türlü bilgisayarlara İngilizce’de Multihomed deniyor; yani,
birden fazla ağ kartına, IP adresine ev sahipliği yapıyor anlamına. Kısacası bu
tür bir kayıt birden fazla IP adrese sahip bir makineyi göstermek için kullanılır.
Yani, birden çok ana bilgisayara bağlı falan değil.

Eklediğimiz statik kayıt WINS konsolunda şu şekilde görüntülenir:

Şekil 7.15: Statik kaydın WINS konsolunda görünüşü.

Gördüğünüz gibi eklediğimiz makineye ilişkin olarak üç kayıt var: İş istasyonu,


Sunucu ve Messenger hizmetlerine karşılık gelen üç kayıt.

Statik kayıtlar için Static alanında bir “x” karakteri var. Kullanım süresi
kısmında ise Sonsuz yazıyor. Sonsuz, yani, bu kaydın belli sürelerle
tazelenmesi gerekmiyor. Silmediğimiz sürece veritabanında kalacak bu kayıt.

WINS İşlemleri (Ayrıntılı)


WINS işlemleri şöyle işler:

1. WINS ortamında bir WINS istemci her açıldığında kendi NetBIOS adını
ve IP adresini WINS sunucuya kaydettirmek ister. WINS istemci,
kendisinde tanımlı bulunan ilk WINS sunucuyu bulmak için üç kez ARP
mesajı yayınlar. Eğer üçünde de başarılı olamazsa ad kayıt isteğini,
varsa, ikincil WINS sunucuya gönderir. Eğer ikinci WINS sunucu
tanımlı değilse ya da bulunamıyorsa WINS istemci, NetBIOS adlarını
kaydettirmek için broadcast yapar.
Kayıt işlemi bilgisayarın üzerindeki hizmetler ve üstlendiği rollerin
herbiri için yapılır. Yani, bir bilgisayarda sunucu (server) hizmeti varsa

- 117 -
TCP/IP

kendisini sunucu olarak kaydettirir. İstemci (workstation) hizmeti var ise


kendisini istemci olarak kaydettirir.
Eğer kaydettirilmek istenen ad WINS sunucuda bulunmakta ise WINS
sunucu adın kayıtlı sahibine halen ayakta olup olmadığını görmek için
bir mesaj yollar. Bu mesaj 500 milisaniye aralıklarla üç kez gönderilir.
Eğer adın sahibi görünen bilgisayar bu mesajlara yanıt verirse WINS
sunucu aynı adı kaydettirmek isteyen istemciye olumsuz bir yanıt
gönderir. Eğer adın sahibi görünen bilgisayar yanıt vermezse yeni kayıt
isteği kabul edilir ve 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.
İstemci, NetBIOS adını WINS’de tutabilmek için ad kaydını yenilemek
zorundadır. Eğer istemci belirli bir süre sonuna kadar (tanımlanan TTL
değeri kadar) ad kaydını yenilemezse WINS sunucu bir başka
bilgisayarın aynı adla kaydettirme isteğini olumlu karşılayacaktır.
WINS istemci TTL değerinin sekizde biri bittiği zaman ad kaydını
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 ad kaydını yenileyememişse bu sefer
ad kaydı 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 ad kaydı yenileme isteğine karşılık
olarak olumlu bir yanıt verecek ve ad kaydını yenileyecektir.
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 ad/IP bilgisine
sahipse IP adresini verir.
4. WINS istemci normal yollardan (Başlat’tan Kapat şıkkı ile)
kapatılıyorsa WINS sunucuya kapatıldığını bildirir. Bu mesaj
alındığında ad/IP bilgisi WINS veritabanında aktif değil şeklinde
işaretlenir.

Bütün WINS iletişimi 137 numaralı UDP portu üzerinden yönlendirilmiş


(directed) datagramlar şeklinde gerçekleştirilir.

- 118 -
WINS

WINS’in bir başka yararı da masaüstümüzdeki Ağ Bağlantılarım’da tüm etki


alanı çapında görüntüleme (browsing) olanağı sağlamasıdır. Yani, yalnızca
kendi ağ bölümümüzdeki bilgisayarları değil, aynı etki alanı içinde olup diğer
ağ bölümlerinde yer alan bilgisayarları da Ağ Bağlantılarım’da görebiliriz.

WINS Vekil Ajanı (Proxy Agent)


Eğer ortamda WINS istemci olamayacak bilgisayarlar bulunuyorsa (ki çok
nadir bir durumdur) WINS proxy agent kullanılabilir. Proxy, vekil demektir.
WINS istemci olamayan bir bilgisayar adını kaydettirmek için broadcast
yapıyorsa vekil ajan bu mesajı alır ve WINS sunucuya gönderir. Eğer WINS
sunucuda bu ada rastlanırsa vekil ajan istemciye bir mesaj göndererek bu
adın kullanımda olduğunu bildirir. Ama o ad WINS sunucuda yoksa WINS
veritabanına kaydedilmez.

Eğer WINS istemci olamayan bir bilgisayar bir ad/IP çözümlemesi yapmak
isterse broadcast yaparak sorduğu ad vekil ajan tarafından WINS sunucuya
gönderilir. Eğer WINS sunucuda o ada rastlanırsa ad/IP bilgisi vekil ajana
bildirilir, o da istemciye bu bilgiyi aktarır.

Vekil Ajanı Ne Zaman Kurmak Gerekir?


WINS istemci olamayan bilgisayarların bulunduğu ağ bölümlerinde bir tane
vekil ajan kurmak iyi olur. 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\NetBT\Parameters

kısmında EnableProxy parametresini 1 yapmak gerekir. Bu işlemden sonra o


bilgisayarı yeniden başlatmak gerekir.

WINS istemci olamayacak makinelerin artık bulunmaması ve WINS hizmetinin


de gözden düşmesiyle birlikte WINS vekil ajanı da artık anlamsız oldu.
Çoğunlukla vekil ajan kurmamız gerekmeyecek.

Birden Fazla WINS Sunucu Kullanımı


WINS istemciler WINS sunucuların IP adreslerini bilirler ve onunla doğrudan
(unicast, directed ya da poin-to-point olarak adlandırılan şekilde) ilişkiye
geçerler. Doğrudan ilişkiye geçildiği için de ortamda yönelticilerle birbirine
bağlanmış birden fazla ağ olsa da tek bir WINS sunucu yeterli olacaktır.

- 119 -
TCP/IP

192.168.0.0/24 192.168.1.0/24
B D F H J

R
A C E G I WINS Sunucu
WINS Veritabanı
Bilgisayar IP Adresi

A 192.168.0.4
B 192.168.0.4
C 192.168.0.4
D 192.168.0.4
E 192.168.0.4
F 192.168.1.6
G 192.168.1.6
H 192.168.1.6
1 192.168.1.7
Şekil 7.16: Çok bölümlü bir ağda WINS sunucu kullanımı. J 192.168.1.7

Yukarıdaki şekilde bir yöneltici ile birleştirilen iki ağ bölümü var. Tek bir WINS
sunucu kullanmışız ve tüm makineleri o sunucunun WINS istemcisi olarak
yapılandırmışız. WINS sunucunun veritabanında her iki bölümdeki
bilgisayarlara ilişkin bilgi var.
Bazı nedenlerle yukarıdaki şekilde WINS sunucu içermeyen bölüme de bir
WINS sunucu koyabiliriz. Örneğin, 192.168.0.0/24 ağında çok fazla bilgisayar
bulunursa, bu bilgisayarların sürekli olarak yöneltici üzerinden diğer ağdaki
WINS sunucuya gidip sorgu yapmalarını istemeyiz. Bu tür durumlarda yeni bir
WINS sunucu kurarız, o bölümdeki tüm makineleri o sunucunun istemcisi
yaparız. Böylece makineler kendilerine en yakın WINS sunucuya kayıt
yaptırırlar, kendilerine en yakın WINS sunucudan sorgu yaparlar.
192.168.0.0/24 192.168.1.0/24
B D F H J

R
A C WINS Sunucu E G I WINS Sunucu
WINS Veritabanı WINS Veritabanı
Bilgisayar IP Adresi Bilgisayar IP Adresi

A 192.168.0.45 F 192.168.1.67
B 192.168.0.46 G 192.168.1.68
C 192.168.0.47 H 192.168.1.69
D 192.168.0.48 I 192.168.1.70
E 192.168.0.49 J 192.168.1.71
Şekil 7.18: Birden fazla WINS sunucu kullanımı.

- 120 -
WINS

Yukarıdaki şekilde her ağ bölümünde bir WINS sunucu var. İstemciler kendi ağ
bölümlerindeki WINS sunucuya ulaşıyorlar (kayıt ve sorgulama için).

Yalnız yukarıdaki şeklin çok temel bir sorunu var: Bilgisayarlar WINS
sunucudan yalnızca kendi ağ bölümlerindeki bilgisayarların IP adreslerini
öğrenebilirler. Karşı bölümdeki bilgisayarların IP adreslerini elde edemezler.

Bu sorunu gidermek için WINS sunucuların veritabanlarını karşıdaki WINS


sunucuya çoğaltmalarını (replication) sağlayabiliriz. Çoğaltma işlemi ile
sunucular ilk seferinde bütün veritabanlarını karşı tarafa gönderiler. Sonra da
veritabanlarında değişiklik oldukça yalnızca değişiklikleri karşıya gönderirler.

WINS Sunucular Arasında Çoğaltma


WINS sunucular arasında çoğaltma işlemi WINS konsolundan ayarlanır.
Konsolda WINS sunucunun altındaki Çoğaltma Ortakları kabına sağ tıklayıp
“Yeni Çoğaltma Ortağı” şıkkını seçerek karşıdaki WINS sunucunun adını ya
da IP adresini girmeliyiz.

Örnek olarak ANASUNUCU adındaki WINS sunucuya çoğaltma ortağı olarak


192.168.0.130 şeklinde IP adresine sahip olan LKSUNUCU adındaki bir başka
WINS sunucunun bilgisini girelim.

Şekil 7.19: WINS konsolunda çoğaltma ortağının IP adresinin girilişi.

Şekilde karşıdaki WINS sunucunun adının değil IP adresinin girilmiş olduğuna


dikkat edin. Genelde böyle yapıyoruz. (Çünkü karşıdaki makinenin adını
versek büyük olasılıkla onun IP adresini bulamayacağız.)

Tamam düğmesine basınca LKSUNUCU adı çoğaltma ortakları kabında


görünecektir.

- 121 -
TCP/IP

Şekil 7.20:
WINS
konsolunda
çoğaltma
ortağının
görüntülenişi.

Aynı işlemi karşı taraftaki WINS sunucunun da yapıp ANASUNUCU


makinesini çoğaltma ortağı olarak tanımlaması gerekir.

LKSUNUCU adının yanında Türü sütununda Zorla/İste şeklinde bir ifade var.
Onu biraz ilerde açıklayacağız.

Normalde iki WINS sunucu da birbirlerini çoğaltma ortağı olarak tanımlamışsa


çoğaltmanın hemen gerçekleşmesi gerekir. Konsolda Kaydettirilmiş Etkin
Girdiler kabına baktığımızda her iki sunucudaki kayıtları görebiliriz.

Şekil 7.21: WINS konsolunda her iki WINS sunucunun bilgilerinin görüntülenmesi.

- 122 -
WINS

Bundan sonra belli aralıklarla (varsayılan olarak 30 dakikada bir) WINS


sunucular kendi veritabanlarındaki değişiklikleri ortaklarına çoğaltacaklar.

Şimdi çoğaltma ortaklarının ne gibi parametreleri var, inceleyelim.

WINS konsolunda bir LKSUNUCU’nun üzerine sağ tıklayıp özellikler şıkkını


seçelim ve Gelişmiş sekmesine geçelim.

Şekil 7.22: Bir çoğaltma ortağının parametreleri.

Bu şekilde ilk alan “Çoğaltma ortağı türü”. Burada üç seçenek var: Zorla
(Push), iste (Pull), Zorla/Iste (Push/Pull). Genelde hep Zorla/İste şıkkını
kullanırız, bu sayede her iki sunucu da birbirine çoğaltma yapar. Diğer şıklar
ise tek yönlü çoğaltmalar için geçerlidir. Örneğin, yalnızca bir sunucunun
kendindeki bilgileri diğer WINS sunucuya göndermesini isteyebiliriz (pratikte
böyle bir şey pek istenmez ama). Bu durumda bir WINS sunucu diğerini Zorla
ortağı olarak görür. Diğer sunucu da bu sunucuyu İste ortağı olarak görür.

- 123 -
TCP/IP

Bir WINS sunucu, veritabanında bir değişiklik olduğunda “Değişiklik var, gel al”
bilgisini Zorla ortağına gönderir. Karşıdaki Sunucu da İste ortağından gelen
“Değişiklik var, gel al” bilgisinden sonra gider, değişiklikleri alır.

Başlangıçta her iki sunucu da birbirlerini Zorla/İste ortağı olarak gördükleri için
değişiklik olduğu bilgisini birbirlerine bildirirler ve karşı taraftan gelen bilgiye
göre de değişiklikleri gidip alırlar.

Yalnızca WINS’de değil hemen bütün çoğaltma işlemlerinde aynı mantık


izlenir: Bir taraf “Değişiklik var, gel al” der, diğer taraf da değişikliği gidip alır.
Bu işlemin neden böyle olduğunu sorabilirsiniz. Örneğin, neden kendisinde
değişiklik olan sunucu doğrudan değişikliği göndermiyor da değişiklik olduğu
bilgisini gönderiyor? Bunun nedeni karşı tarafın değişiklikleri almaya o anda
uygun olup olmadığını bilememek. Sunucu karşı tarafa yalnızca “Değişiklik
var, gel al” bilgisini gönderirse değişiklikler karşı taraf uygun olduğunda onun
tarafından alınır.

Çoğaltma türü alanı dışında aşağıdaki parametreler çoğaltmanın nasıl


yapılacağını belirler. Önce “Çoğaltma zorlama” alanına bakalım. Burada
“Çoğaltma öncesi sürüm kimliğindeki değişiklik sayısı” şeklinde bir alan var. Bu
ifade veritabanında kaç değişiklik olduktan sonra karşı tarafa “Değişiklik var,
gel al” mesajının gönderileceğini belirliyor. Varsayılan değer 0, yani, bir
değişiklik bile olsa hemen karşı tarafa bilgi gönderilecek. Eğer buraya 5
değerini girersek veritabanında beş değişiklik olunca karşı tarafa bilgi
gönderilir.

“Çoğaltma isteği” alanında karşı taraftan “Değişiklik var, gel al” bilgisi gelince
ne zaman karşı tarafa gidilip değişiklik bilgilerinin alınacağı belirtiliyor.
Başlama zamanı kısmında saat 0, dakika 0, saniye 0 görünüyor. Bu değerler
değişikliklerin hemen alınacağını belirtiyor. Buraya saat olarak 12’yi girersek
bize “Değişiklik var, gel al” bilgisi gelse bile biz bu değişiklikleri saat 12’de
almaya başlayacağız anlamına gelir. “Çoğaltma aralığı” kısmında 30 dakika
değeri var. Bu değer de değişiklikleri alırken ilk seferde hepsini alamazsak 30
dakika bekleyip sonra kalanını almamızı belirtiyor.

Değişiklikler otomatik olarak çoğaltılır ama elle de yaptırılabilir. Çoğaltmayı elle


yaptırmak için WINS konsolunda çoğaltma ortağının üzerinde “Çoğaltma
Zorlamasını Başlat” ve “Çoğaltma İsteğini Başlat” şıklarını seçebiliriz.

- 124 -
WINS

WINS Veritabanı, Yedekleme, Yedekten Geri


Yükleme
WINS sunucunun dosyaları \Windows\System32\WINS klasöründe bulunur.
Bu klasördeki dosyalar şu şekildedir:

WINS.MDB : WINS veritabanı

WINSTMP.MDB : WINS’in yarattığı geçici bir veritabanı

J50.LOG : Veritabanında yapılan işlemlerin günlük dosyası

J50.CHK : Denetim dosyası

RES1.LOG VE : Bu dosyalar WINS hizmetinin log dosyaları için rezerve


RES2.LOG Edilmiş dosyalardır. Sabit diskte yer kalmazsa bu
günlük dosyalarından yararlanılacaktır.

Bu dosyaların dışında yine geçici olarak yaratılmış birtakım dosyalar da


görebilirsiniz.

DHCP veritabanı otomatik olarak saatte bir kez yedekleniyordu. WINS


veritabanı ise başlangıçta yedeklenmez. WINS veritabanının otomatik olarak
yedeklenebilmesi için bir yedekleme klasörünün belirtilmesi gerekir. Bu klasör
belirtildikten sonra veritabanı 24 saatte bir otomatik olarak yedeklenir.

Yedekleme klasörünü belirtmek için WINS konsolunda WINS sunucunun


üzerine sağ tıklayıp Özellikler şıkkını seçiyoruz.

- 125 -
TCP/IP

Şekil 7.16: WINS sunucunun Özellikler sekmesi.

Özellikler sekmesinde “Varsayılan yedekleme yolu” alanına yedeklemenin


yapılacağı klasörü yazıyoruz. Örnek olarak \Windows\System32\wins\backup
klasörünü verdim. Bu şekilde yapıyı DHCP hizmetinin yapısına da benzetmiş
olduk.

Yine bu sekmede “Sunucunun kapatılması sırasında veritabanını yedekle”


şeklinde bir kutu var. Onu işaretlersek bilgisayar kapatılırken de WINS
veritabanı 24 saatlik aralık beklenmeden yedeklenecektir.

WINS veritabanını otomatik olarak değil elle de herhangi bir zamanda


yedekleyebiliriz. Bunu WINS konsolunda sunucunun üzerindeki (sağ tıklanınca
karşımıza gelen menüden) “Veritabanını Yedekle” şıkkı ile yapabiliriz.

WINS Veritabanının Yedekten Geri Dönüşü


Eğer herhangi bir şekilde WINS veritabanı bozulmuş ise şunları yapabiliriz:

- 126 -
WINS

• WINS sunucu hizmetini durdurup tekrar başlatabiliriz. Yeniden başlama


sırasında veritabanının bozuk olduğu fark edilirse sunucu hizmeti
otomatik olarak yedek dosyayı yükleyecektir.
• WINS sunucu hizmetini durdurup sonra da WINS konsolunda
sunucunun üzerindeki “Veritabanını Eski Durumuna Döndür” şıkkını
tıklayabiliriz. Veritabanı yedekten döndürülecek ve WINS hizmeti tekrar
başlatılacaktır.
• WINS sunucu hizmetini durdurup sonra da yedek dosyasını
\Windows\System32\Wins klasörüne kopyalayabiliriz. Sonra tekrar
WINS sunucu hizmetini başlatırız.

WINS Veritabanının Kompakt Hale Getirilmesi


Windows 2003 sürekli olarak WINS veritabanını kompakt etmeye çalışır
(gereksiz kadlarını silip veritabanını makul büyüklüklerde tutmak ister). Ama
bu işlemi gerek gördüğümüz herhangi bir zamanda (örneğin, WINS
veritabanının bir neden yokken aşırı büyüklüklere ulaştığını gördüğümüzde)
elle de yapabiliriz. Bu işlemi elle yapmak isterseniz:

1. WINS hizmetini durdurun.


2. \Windows\SYSTEM32\WINS klasöründe JETPACK komutunu verin,
Örnek komut:
Jetpack wins.mdb gecici.mdb
3. WINS hizmetini yeniden çalıştırın.

LMHOSTS Dosyası

WINS mekanizması geliştirilmeden önce, bir NetBIOS adını IP adresine


çevirmek için ne kullanılırdı?

Bu soruya verilecek yanıt yayın yapmak (broadcast) olabilir: “Bu ada sahip
bilgisayar bana IP adresini söylesin” şeklinde bir mesaj oluştururuz, bu mesajı
da herkese yollarız, yani, yayın yaparız. Eğer ağımızda böyle bir bilgisayar
varsa bize IP adresini bildirir.

Bir IP adresini yayın yoluyla bulmanın iki temel sakıncası var: Birincisi
yayınladığımız mesaj ağdaki her makineyi gereksiz yere meşgul eder. İkincisi
kendi ağımızda bulunmayan, bir yöneltici (router) ile bağlandığımız başka bir
ağda bulunan bilgisayarın adresini yayın mesajları ile bulamayız. Çünkü yayın
mesajları yönelticiden geçemez.

- 127 -
TCP/IP

Ne Yapmalı?

Bu sorunun en basit çözümü şöyle olabilir: Bilgisayarların NetBIOS adları ile IP


adreslerini içeren bir metin dosyası hazırlarız. Bir bilgisayarın adını biliyor da
IP adresini bilmiyorsak bu dosyaya bakarız, dosyada o bilgisayarın adına
rastlarsak adın 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
bütün işletim sistemlerinde (Windows 95-98-Me, Windows NT, Windows 2000,
Windows XP ve Windows 2003) aynı iş için hala kullanılabilir. Bilgisayarımıza
TCP/IP’yi yüklediğimizde örnek bir dosya, LMHOSTS.SAM adıyla otomatik
olarak oluşturulur ve \Windows\System32XDrivers\Etc klasörüne yerleştirilir.
Eğer LMHOSTS mekanizmasını kullanmak istiyorsak öncelikle bu dosyanın
adını değiştirmeli ve yalnızca LMHOSTS şekline getirmeliyiz.

Şimdi örnek bir LMHOSTS dosyasına bakalım:

# Bu dosyada kurumumuzdaki bilgisayarların adları 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 Anamakine #PRE #DOM:ANKARA
201.189.10.42 Ahmet #PRE

LMHOSTS dosyasında kullanılan bilgisayar adları NetBIOS adlarıdır ve en çok


15 karakter olabilirler.

Yine bu dosyada, bazı kayıtların yanında bulunan #PRE ve #DOM gibi ifadeler
dikkatinizi çekmiştir.

Bu fazladan ifadeler LMHOSTS dosyasındaki kayıtları düzenliyor. Örneğin, bir


bilgisayar adının yanında #DOM ifadesi varsa o bilgisayarın bir etki alanının
denetçisi (domain controller-DC) olduğunu anlıyoruz. DOM’dan sonraki ifade
(örnekte ANKARA) etki alanının NetBIOS adını gösteriyor.

#PRE ifadesi ise bu kaydın bilgisayar açılır açılmaz NetBIOS ad kaşesine


yüklenmesini sağlıyor. Normalde bir bilgisayarın NetBIOS adına karşılık olarak
IP adresi istediğimizde, broadcast, WINS ya da LMHOSTS dosyası
yöntemlerinden birisini kullanarak IP adresini buluruz. Bulduğumuz bilgiyi hem
kullanırız, hem de NetBIOS ad kaşesine atarız. Böylece bir daha o bilgisayara
erişmemiz gerekirse adresini kaşeden alabiliriz. #PRE ifadesi ile işaretlenen

- 128 -
WINS

kayıtlar ise bilgisayar başlarken ya da “nbtstat -R” komutunu verdiğimizde


kaşeye aktarılır; böylece o kayıt (belli bir bilgisayar adı ve onun IP adresi) hep
kaşede bulunduğu için bir daha o ada karşılık IP adresini bulmak istersek çok
hızlı bir şekilde bilgiye ulaşırız.

DOM ve PRE gibi ifadelere takı denir (suffix). 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. Gerekmedikçe LMHOSTS dosyasını da kullanmamalıyız. Ne zaman
kullanmak gerekir diye sorabilirsiniz. Kirli ve hızlı çözümler için LMHOSTS
dosyasını kullanabiliriz. Örneğin, sorun gidermek için gittiğimiz yerde WINS
kurulumuna izin vermezlerse ya da teknik nedenlerle kuramıyorsak LMHOST
dosyasını kullanıp en azından o an için bir çözüm üretebiliriz.

- 129 -
8
DNS

1984 yılında kullanıma geçen DNS, 255 karaktere kadar büyüyebilen host
adlarını IP adreslerine çevirmek için kullanılan bir sistemdir. Host adı, tümüyle
tanımlanmış etki alanı adı (fully qualified domain name) olarak da bilinir ve
hem bilgisayarın adını, hem de bilgisayarın bulunduğu Internet etki alanını
gösterir. Örneğin, anasunucu.anadolu.com adı. Bu adda “anadolu.com” ifadesi
Internet etki alanını, “anasunucu” ifadesi ise bu etki alanındaki tek bir makineyi
belirtir.

Şu anda inanılması güç ama 1984 yılına kadar DNS diye bir şey yoktu. “Peki,
o yıla kadar host adı-IP adresi çözümlemesi nasıl yapılıyordu?” diye sorabilirsi-
niz. Bu iş için HOSTS adında bir metin dosyası (text dosyası) kullanılıyordu.
Internet’teki bilgisayarların adları ve IP adresleri bu dosyaya elle
kaydediliyordu. Internet’teki bilgisayarların her birinde 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 Internet’teki bilgisayarların sayısı arttıkça hem bu dosyanın büyüklüğü


olağanüstü boyutlara ulaşmaya başladı, hem de Internet’teki 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 Internet’te
bir eşinin daha bulunmamasını sağlamak gerekiyordu.

Bu sorunlar yüzünden Internet yetkili organları 1984 yılında DNS’i ürettiler.

- 131 -
TCP/IP

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 etki alanı) Türkiye’den sorumlu bir DNS sunucu
makine tutuyordu. Ya da ABD’deki ticari kuruluşların bilgisayarlarının listesini
(.com domaini) ABD’deki ticari kurumlardan sorumlu DNS sunucu makine
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 ad sunucuları (name server ya da DNS server) ve
çözümleyicilerinden oluşur. Ad sunucuları olarak düzenlenen bilgisayarlar host
adlarına 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 host adına karşılık IP adresini bulmak istediği
zaman ad sunucuya başvurur. Ad sunucu, yani DNS sunucu da eğer kendi
veritabanında öyle bir ad varsa, bu ada karşılık gelen IP adresini istemciye
gönderir.

Bu işlem WINS hizmetindeki işleme benziyor değil mi? Ama arada büyük bir
fark var: WINS veritabanına NetBIOS adları kaydedilirken DNS veritabanına
host adları kaydedilir.

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 Al-
manya’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) etki alanlarına
karşılık gelir. Üst düzey etki alanları aşağıdaki gibidir:

Com : Ticari kuruluşları gösterir.

Edu : Eğitim kurumlarını gösterir.

- 132 -
DNS

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. Bunun ne demek


olduğunu göreceğiz.

Yetki Bölgesi (Zone of Authority)


Yetki bölgesi Zone of Authority DNS sisteminde belli bir adres aralığıdır.
Örneğin, anasunucu.anadolu.com bir host adıdır. Bu addaki etki alanı kısmı,
anadolu.com, bir yetki bölgesini gösterir.

Her yetki bölgesinden sorumlu bir ad sunucusu, yani DNS sunucusu vardır.
DNS sunucu yetkili olduğu bölgedeki bilgisayarların adlarını ve IP adreslerini
içerir. Aynı zamanda bu bölgeye dair sorgulamalara da yanıt verir.

DNS sunucunun yetki bölgesi en az bir tane etki alanı içerir (anadolu.com gibi).
Bu etki alanı bölgenin kök etki alanı olarak adlandırılır. Yetki bölgesinde kök
etki alanının altında bir veya birden fazla alt etki alanı (subdomain) içerilebilir
(örneğin icanadolu.anadolu.com gibi).

Bir DNS sunucu birden fazla bölgeyi yönetebilir. Yani, DNS sunucuda birden
fazla yetki bölgesi bulunabilir.

DNS Hizmetinin Çalışması


DNS hizmeti şöyle çalışır: Bir Windows 2003 makine, DNS sunucu hizmeti
yüklenerek DNS sunucu yapılır. Bu DNS sunucuda bir ya da birden fazla
bölge yaratılır (anadolu.com gibi). Bölgenin altında o bölgedeki bilgisayarlara
ilişkin kayıtlar yaratılır (örneğin, her bölge için bir Web sunucuyu gösteren
www kaydı gibi). Ortamdaki makinelerin tümü (DNS sunucunun kendisi de
dahil olmak üzere) DNS istemci yapılır. DNS istemciler bir bilgisayarın host
adına karşılık IP adresini bulmak istediklerinde DNS sunucuya giderler, yanıtı
oradan alırlar (en azından almaya çalışırlar).

Bu çalışmayı göstermek için aşağıdaki şekle bir bakalım.

- 133 -
TCP/IP

Şekil 8.1: DNS’in çalışması.

Internet hemen her zaman yukarıdaki gibi eğri büğrü bir şekilde gösterilir.
Çünkü belli bir sınırı yoktur.

DNS’deki dağıtık yapıyı yukarıdaki şekilde görebiliyoruz. Internet’te etki


alanları var; microsoft.com, odtu.edu.tr, sabah.com.tr gibi. Her etki alanından
sorumlu bir DNS sunucu var. O etki alanındaki makinelerin bilgisi etki
alanından sorumlu DNS sunucuda tutuluyor. Örneğin, www.microsoft.com
makinesine ilişkin bilgi microsoft.com'un DNS sunucusunda, www.sabah.com.tr
makinesine ilişkin bilgi sabah.com.tr'nin DNS sunucusunda tutuluyor.

Her ülkeden sorumlu bir DNS sunucu da var. Türkiye’den (.tr uzantılı etki
alanlarından) sorumlu DNS sunucu ülkemizde ODTÜ üniversitesinde
bulunuyor. Niye ODTÜ diye sorabilirsiniz. Yanıtı şöyle: Her ülkede o ülkenin
Internet bağlantısını, adlandırma sistemini düzenleyen bir kurum ya da şirket
vardır. Ülkemizde bu kurum ODTÜ. Internet bağlantısı ilk kez ODTÜ’den
yapıldı, sonradan da çeşitli zamanlarda tekrarlanan değerlendirmelerde
(sorumlu kurum belirleme değerlendirmelerinde) ODTÜ hep tek kaldı. İleride
başka bir kurum ya da şirket ODTÜ’nün yerini alabilir.

ODTÜ’nün DNS sunucusunda .tr uzantılı etki alanlarına ilişkin bilgi bulunur. Bu
bilgiler yalnızca “Şu etki alanından sorumlu DNS sunucu şu makinedir”
şeklindedir. Burada etki alanlarındaki bilgisayarlarına ilişkin ayrıntılı bilgi
tutulmaz. Örneğin, sabah.com.tr'deki www makinesine ilişkin bilgi ODTÜ’de
değil, sabah.com.tr'den sorumlu DNS sunucuda tutulur.

- 134 -
DNS

Amerika’daki kök DNS sunucularda ise genel bilgiler tutulur. Örneğin,


Amerika’daki .com, .edu, .mil etki alanlarından sorumlu kök sunucular vardır.
Bu sunucularda örneğin, microsoft.com'dan sorumlu DNS sunucunun bilgisi
bulunur. Ayrıca .tr uzantılı etki alanlarından sorumlu DNS sunucunun
ODTÜ’deki DNS sunucu olduğuna ilişkin bilgi de bu kök sunucularda tutulur.

Şimdi bir örnekle DNS sisteminin çalışmasını açıklayalım.

Microsoft’ta çalışan bir Türk’ün Sabah gazetesinin Web sitesine gitmek


istediğini varsayalım. Bu durumda kullanıcı Internet Explorer gibi bir Web
tarayıcısında www.sabah.com.tr adresini yazacaktır. Kullanıcının
bilgisayarındaki TCP/IP protokolü www.sabah.com.tr adına karşılık gelen IP
adresini bulmak isteyecektir. Bunun için de ağındaki DNS sunucuya
(Microsoft’un DNS sunucusuna) gidecektir. Microsoft’un DNS sunucusunda
Microsoft.com’a ilişkin bilgi bulunur, sabah.com.tr etki alanına ilişkin bilgi
bulunmaz. Bu yüzden Microsoft’taki DNS sunucu kök DNS sunuculara
başvurur (bütün DNS sunucular kök DNS sunucuların adreslerini bilir).
Microsoft’un DNS sunucusu kök sunuculardan .tr’dan sorumlu DNS sunucuyu
öğrenir: ODTÜ’nün DNS sunucusu. Microsoft’un DNS sunucusu bu sefer
ODTÜ’deki DNS sunucuya gider. Ondan sabah.com.tr’den sorumlu DNS
sunucunun adresini öğrenir. Microsoft’un DNS sunucusu son olarak
sabah.com.tr’den sorumlu DNS sunucuya gider ve ondan www.sabab.com.tr
makinesinin IP adresini öğrenir. Aldığı bu bilgiyi hem soruyu soran istemciye
gönderir, hem de kendi önbelleğine (cache) yerleştirir. Microsoft içindeki başka
bir makine belli bir süre içinde aynı bilgiyi sorarsa bu sefer www.sabah.com.tr'ye
ilişkin bilgiyi önbelleğinden döndürür.

Bayağı bir iş, değil mi? Neyse ki bütün bu işler çok kısa bir zaman içinde olup
bitiyor. Çok dert etmenize gerek yok.

DNS Sunucu Hizmetinin Kurulması


DNS sunucu hizmeti, DHCP sunucu ve WINS sunucu hizmetleri gibi, Denetim
Masasındaki Program Ekle veya Kaldır bölümünden yüklenir. Burada
Windows Bileşenlerini Ekle/Kaldır düğmesine basılır, karşımıza çıkan
menüden Ağ Hizmetleri başlığı seçilir ve Ayrıntılar düğmesine basılarak
yükleyebileceğimiz Ağ Hizmetleri görüntülenir. Görüntülenen hizmetlerden
“Etki Alanı Adı Sistemi” öğesinin yanındaki kutu işaretlenir.

- 135 -
TCP/IP

Şekil 8.2: DNS sunucu hizmetinin yüklenişi.

DNS Sunucu Hizmetinin Yönetimi


DNS sunucu hizmetini yönetmek için Yönetimsel Araçlar’dan DNS konsolunu
kullanacağız. Bu konsolu açtığımızda DNS hizmetini yönetebileceğimiz bilgisa-
yarları görürüz. Bu listede başlangıçta yalnızca üzerinde bulunduğumuz
bilgisayarı görürüz ama diğer bilgisayarları buraya ekleyerek (DNS Sunucuya
Bağlan şıkkı ile) onlardaki DNS hizmetini de yönetebiliriz.

Şekil 8.3: DNS konsolunun görünümü.

Bu konsolda, sunucunun altında görülen kapları açıklayalım:

- 136 -
DNS

1. Ön Belleğe Atılan Aramalar: Bu kapta DNS sunucunun başka


yerlerden bulup getirdiği ve istemcilere verdiği bilgiler bulunuyor. Bu
bilgiler kısıtlı bir süre için ön bellekte tutuluyor ve bir makineden sorgu
gelirse öncelikle bu ön belleğe bakılıyor, sorulan bilgi ön bellekte
bulunuyorsa kök sunuculara gitmeden, başka DNS sunuculara
erişmeye çalışmadan soru yanıtlanıyor, böylece sorgulama süreleri
kısalıyor.
2. İleriye Doğru Arama Bölgeleri: Bu ifadenin aslında Düz Sorgulama
Bölgeleri olması gerekiyordu. Burada sabah.com.tr, microsoft.com gibi
bölgeler yaratılıyor ve bu bölgelerin altına da ilgili kayıtlar giriliyor.
Kısaca söylemek gerekirse host adı sorup IP adresi almak için
kullanıyoruz buradaki bilgileri.
3. Geriye Doğru Arama Bölgeleri: Bu ifadenin de aslında Ters
Sorgulama Bölgeleri olması gerekiyordu. Burada 0.168.192.in-
addr.arpa gibi bölgeler yaratılıyor (bu garip adın anlamını ve nasıl
oluşturulduğunu göreceğiz) ve bu bölgelerin de altına ilgili kayıtlar
giriliyor. Bu bölgeler aracılığı ile ters sorgulamalar yapabiliyoruz; yani
IP adresi verip host adı almaya çalışıyoruz. Üstteki işlemin tersi olduğu
için buna ters sorgulama deniyor.
4. Olay Görüntüleyicisi: Burada DNS ile ilgili olayları (bilgi, uyarı ve hata
olayları) görebiliyoruz.

DNS’in yönetiminde ilgili bölgeleri (düz ve ters sorgu bölgeleri) yaratıp bu


bölgelerde ilgili kayıtları oluşturmamız gerekiyor. İşe Düz Sorgulama Bölgeleri
yaratarak başlayalım.

Düz Sorgulama Bölgeleri


DNS konsolunda İleri Doğru Arama Bölgeleri kabına sağ tıklayıp Yeni Bölge
şıkkını seçerek yeni bir bölge yaratımına başlayalım. İlk olarak bir “Hoş
geldiniz” penceresi karşımıza çıkacak. İleri düğmesine tıklayıp geçiyoruz.
Sonraki pencerede yaratacağımız bölgenin türü soruluyor.

- 137 -
TCP/IP

Şekil 8.4: Bölge çeşidinin belirlenmesi.

Gördüğünüz gibi Windows 2003’de DNS’de üç çeşit bölge vardır:

1. Birincil Bölge (Primary Zone): Bilgilerin girilebildiği, değiştirilebildiği


bölgelerdir.
2. İkincil Bölge (Secondary Zone): Yeni bilgi girilemeyen bölgeler. Bu
bölge ile ilgili bilgiler bir başka DNS sunucudan alınır ve belli aralıklarla
tazelenir.
3. Kalıntı Bölge (Stub Zone): Bir çeşit ikincil bölge. Ama İkincil
Bölge’deki gibi bir bölgeye ilişkin tüm bilgileri değil de kilit niteliğindeki
bazı bilgileri alan ve bunları belli aralıklarla tazeleyen bölge.

İşe birincil bölge yaratarak başlayalım. Birincil bölge şıkkı seçili kalsın.

Yine bu ekranda bölge bilgisinin Active Directory (AD) veritabanında saklanıp


saklanmamasına ilişkin bir seçenek var. Bu seçenek yalnızca DC’lerde
işaretlenebilir. Normalde bölge bilgileri sıradan bir metin dosyasında saklanır.
Eğer bu şıkkı seçili bırakırsak bölgenin bilgileri sıradan bir metin dosyasında
değil AD veritabanında saklanır. Bunun yararlarını ileride ele alacağız. İleri
düğmesine tıklayıp devam ediyoruz.

- 138 -
DNS

Sonraki pencerede AD veritabanında saklanacak bölge bilgilerinin hangi


DC’lere çoğaltılacağı (replication) belirtiliyor.

Şekil 8.5: Bölge bilgilerinin çoğaltılma seçenekleri.

Buradaki seçenekleri daha sonra ele alacağız. İleri düğmesine basıp devam
ediyoruz.

Sonraki pencerede bölgenin adını giriyoruz ve İleri düğmesine basıyoruz.

- 139 -
TCP/IP

Şekil 8.6: Bölge adının girilmesi.

Sonraki pencerede dinamik güncelleştirmeye ilişkin seçenekler var. Bu


seçenekleri de sonra açıklayacağız. İleri düğmesine basıp geçiyoruz.

- 140 -
DNS

Şekil 8.7: Dinamik güncelleme seçenekleri.

“Son” düğmesine bastığımızda yeni bölgemiz “İleri Doğru Arama Bölgeleri”


kabının altında görünecektir. Bölgemizin altında otomatik olarak bazı kayıtların
oluşturulmuş olduğunu fark edeceksiniz. Üzerinde bulunduğumuz makine bir
DC ve yarattığımız bölge de Windows 2003 etki alanına karşılık geldiği için bu
kayıtlar oluştu.

- 141 -
TCP/IP

Şekil 8.8: Oluşturulan yeni bölge ve otomatik oluşturulan kayıtlar.

Şimdi de aynı aşamaları geçip tuzmetal.com.tr adında bir bölge yaratıp onda
ne gibi kayıtların oluştuğunu görelim.

Şekil 8.9: Bir Windows 2003 etki alanına karşılık gelmeyen bir bölge.

Yukarıdaki şekil bir önceki şekle göre çok sade. Çünkü bu bölge bir Windows
2003 etki alanına karşılık gelmiyor. Bölgenin altında yalnızca iki adet kayıt var.

Düz Sorgulama Bölgeleri


İki adet bölge yarattığımıza göre şimdi bu bölgelerdeki bilgisayarların bilgisini
girmeye başlayalım.

DNS’de bir bölgenin altına girebileceğimiz kayıtlar çeşit çeşittir. Bu çeşitleri


şöyle açıklayalım:

- 142 -
DNS

1. Bilgisayar (host-A) kaydı: Bölgedeki bir bilgisayarın adını ve IP


adresini gösteren en basit kayıt çeşidi.
2. Kısa ad (Alias-CNAME) kaydı: Bir bilgisayar adını başka bir bilgisayar
adına eşlemek için kullanılır. Biraz karışık gelebilir ama açıklayacağız.
3. Posta Sunucusu (Mail Exchanger-MX): Bir bölgeden sorumlu e-
posta sunucusunu gösteren kayıt.
4. Ad Sunucusu (Name Server-NS): Bir bölgeden sorumlu DNS
sunucusunu gösterir.
5. Yetki Başlangıcı (Start of Authority-SOA): Bir bölgeye ilişkin bilgiler
verir.

Parantez içindeki ifadeler (A, CNAME, MX, NS, SOA) kayıt türlerinin kısa
yazılışıdır.

Bilgisayar (Host) Kaydı


İşe bilgisayar kayıtları yaratarak başlayalım. Bunun için tuzmetal.com.tr
bölgesine sağ tıklayıp “Yeni Ana Makine” şıkkını seçiyoruz ve karşımıza çıkan
“Yeni Ana Bilgisayar” penceresinde ilgili alanları dolduruyoruz.

Şekil 8.10: Yeni bilgisayar kaydının eklenişi.

- 143 -
TCP/IP

“Adı” alanına bilgisayarın adını yazıyoruz. Buraya yalnızca adını yazdığımıza


dikkat edin. Bu kaydı belirli bir bölge altında yarattığımız için etki alanı (bölge)
adını yazmaya gerek yok. Zaten biz bilgisayarın adını yazınca bu adın FQDN
(Fully Qualified Domain Name) sürümü “Tam etki alanı adı” kısmında otomatik
olarak oluşturuluyor. IP adresi alanına bilgisayarın adresini yazıyoruz.
Aşağıdaki iki kutu var, şimdilik onları olduğu gibi bırakıp “Ana Bilgisayar Ekle”
düğmesine basıp geçiyoruz. Bir kayıt girdiğimizde tekrar bilgisayar kaydı girme
penceresinde kalıyoruz, “Bitti” düğmesine basana kadar birbiri ardına yeni
kayıt ekleyebiliyoruz.

Benzer şekilde birkaç kayıt daha yaratıyoruz. Kayıtlar şu şekilde görünüyor.

Şekil 8.11: Yaratılan bilgisayar kayıtlarının toplu görünüşü.

Şu ana kadar yalnızca bilgisayar kayıtları (A) yarattık. Daha sonra da diğer
kayıtları yaratacağız.

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çıklaya-
lım.

Bildiğimiz gibi kullanmakta olduğumuz IP adresleri 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.

Internet’teki adres yetersizliği sorununu çözmek iç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.

- 144 -
DNS

IPv6’da dört oktet yerine 16 oktet kullanılıyor, dolayısıyla 2128 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österilir.

Şimdi yarattığımız kayıtların sorgulanmasını görelim. Sorgulamayı (DNS


sunucudan bilgi almayı) iki şekilde yapabiliriz: Dolaylı ya da doğrudan.

Herhangi bir uygulamada bir bilgisayarın host adını verip o bilgisayara


ulaşmak istediğimizde ada karşılık gelen IP adresini bulmak için DNS
sunucuya soru sorulur ve yanıt alınır. Burada amaç yalnızca IP adresini almak
değil, IP adresini alıp o bilgisayara ulaşmaktır. Örneğin, “PING
www.tuzmetal.com.tr” komutunu verdiğimizde asıl amacımız
www.tuzmetal.com.tr adındaki makine ile aramızda sağlıklı bir iletişim olup
olmadığını görmektir. Ama bu arada DNS sunucuya gidilip
www.tuzmetal.com.tr adındaki bilgisayarın IP adresi öğrenilir. Biz de bu
kısımla ilgileniyoruz.

DNS sunucular NSLOOKUP.EXE programı ile de doğrudan sorgulanabilir. Bu


programı sonra göreceğiz.

Şimdi PING komutunu kullanarak bazı dolaylı sorgulamalar yapalım.

Şekil 8.12: DNS sunucunun PING komutu ile dolaylı olarak sorgulanması.

Yukarıdaki şekilde mail.tuzmetal.com.tr www.tuzmetal.com.tr adındaki


makineleri PING’lemeye çalışıyoruz. DNS sunucudan IP adresi geliyor
(sırasıyla 172.16.0.95 ve 172.16.0.89 adresleri). Bu adresler şu anda

- 145 -
TCP/IP

PING’lenemiyor çünkü ağımızda böyle bir IP adresi yok. Önemli olan da DNS
sunucudan IP adresi dönüp dönmediğiydi.

Kısa Ad (CNAME) Kaydı


Yukarıdaki bölümde en basit kayıt türü olan bilgisayar (A) kaydını gördük. Bu
türden birkaç kayıt yarattık. Bu kayıtlardan ikisi, www ve ftp, sırasıyla Web
sunucuya ve ftp sunucuya karşılık geliyor. Genelde bu iki sunucu hizmeti tek
bir makinede bulunur. Zaten bizim örneğimizde de her iki bilgisayar kaydı da
aynı IP adresine karşılık geliyor; 172.16.0.89. Buraya kadar normal. Peki, Web
sunucu ve ftp sunucu hizmeti veren makinenin IP adresi değişirse ne olacak?
Kolay, www ve ftp kayıtlarına gidip IP adreslerini değiştiririz, olur biter. Ama
bunun gibi, aynı IP adresine karşılık gelen yüzlerce kayıt varsa ne olacak? İşte
CNAME kaydı bu tür durumlar için kullanılabilir. CNAME kaydı ile bir bilgisayar
adını başka bir bilgisayar adına eşliyoruz (onun kısa adını ya da diğer adını
tanımlamış oluyoruz).

CNAME kaydına örnek olarak ftp.tuzmetal.com.tr adını www.tuzmetal.com.tr


adına eşleyeceğiz.

Önce tuzmetal.com.tr bölgesinden ftp adındaki bilgisayarın kaydını siliyoruz.


Sonra tuzmetal.com.tr bölgesine sağ tıklayıp “Yeni Kısa Ad” şıkkını seçiyoruz.
Karşımıza çıkan alanları aşağıdaki şekilde olduğu gibi dolduruyoruz.

- 146 -
DNS

Şekil 8.13: Kısa Ad kaydının yaratılması.

Yukarıdaki şekilde Diğer Ad alanına yalnızca ftp ifadesini giriyoruz. Bu kaydın


tam etki alanı adı (FQDN) aşağıda ftp.tuzmetal.com.tr olarak görünüyor.
“Hedef ana bilgisayarı için tam etki alanı adı” kısmınaysa www.tuzmetal.com.tr
bilgisini yazıyoruz ya da “Göz at” düğmesi ile getiriyoruz. Sonra da Tamam
düğmesine basıyoruz. Bu kayıt tam tamına şu anlama geliyor:
ftp.tuzmetal.com.tr adına karşılık gelen IP adresi sorulursa
www.tuzmetal.com.tr bilgisayarının IP adresini döndür.

- 147 -
TCP/IP

Şekil 8.14: Kısa Ad kaydının DNS konsolunda görünüşü.

Eklediğimiz kayıt DNS konsolunda şöyle görünüyor:

Yukarıdaki pencerede ftp.tuzmetal.com.tr=www.tuzmetal.com.tr şeklinde


görünüyor. Yani, bundan sonra DNS sunucuya ftp.tuzmetal.com.tr'nin IP
adresi sorulursa ona www.tuzmetal.com.tr’nin IP adresi döndürülecek.

Şimdi bu kısa ad kaydını test etmek için “PING ftp.tuzmetal.com.tr” komutunu


verelim. Bakalım karşımıza ne çıkacak.

Şekil 8.15: Kısa ad kaydının test edilmesi.

Yukarıdaki şekilde komuttan hemen sonra gelen ikinci satıra dikkat edin.
Burada IP adresi döndürülen makine olarak www.tuzmetal.com.tr ifadesi var.
Biz sorarken ftp.tuzmetal.com.tr’nin IP adresini sorduk, DNS sunucu bize
www.tuzmetal.com.tr’nin IP adresini verdi. Amacımıza ulaştık. Eğer bir gün
www ve ftp hizmetlerini veren makinenin IP adresi değişirse yalnızca www
kaydında IP adresini değiştireceğiz ve ftp ya da buna benzer kısa ad
kayıtlarının IP adresi de değişmiş olacak.

- 148 -
DNS

Posta Sunucusu (Mail Exchanger-MX) Kaydı


Posta sunucusu kaydı bir DNS etki alanından sorumlu e-posta sunucusunu
gösterir. Böyle bir kayda gerek var.

Örneğin, tuzmetal.com.tr etki alanımızda bir posta sunucusu (mail server) var
diyelim. Bu sunucunun ilk görevi kurum içindeki elektronik posta
haberleşmesini sağlamak. İkinci görevi ise 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 Internet’in herhangi bir yerinden 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 kemaly@tuzmetal.com.tr adresine bir mesaj gönderdiğinde bu
mesaj tuzmetal.com.tr etki alanında 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.

Bilgisayar (A) kayıtları yaratırken mail adında bir kayıt yaratmıştık. O kayıt tek
başına yeterli değil. O kayıt yalnızca “mail” adında bir bilgisayarın olduğunu
gösterir ama o bilgisayarın e-posta sunucu olduğunu göstermez.
mail.tuzmetal.com.tr adındaki bilgisayarın e-posta sunucusu olduğunu
göstermek üzere bir MX kaydı da olmalı.

Posta sunucusu kaydı yaratmak için tuzmetal.com.tr bölgesine sağ tıklıyoruz


ve “Yeni Mail Exchanger” şıkkını seçiyoruz ve ilgili alanları dolduruyoruz.

- 149 -
TCP/IP

Şekil 8.16: Posta sunucusu kaydının girilmesi.

Yukarıdaki şekilde “Ana bilgisayar veya bağımlı etki alanı” kısmını boş bırakı-
yoruz ve “Posta sunucunun tam etki alanı adı” alanına posta sunucusunun
adını giriyoruz ya da “Göz at” düğmesine basarak bu adı bulup getiriyoruz.

“Ana bilgisayar veya bağımlı etki alanı adı” kısmını niye boş bıraktığımızı so-
rabilirsiniz. Buraya icanadolu benzeri bir ifade girdiğimizi varsayalım. O zaman
aşağıda adını yazdığımız posta sunucu tuzmetal.com.tr etki alanının değil ica-
nadolu.tuzmetal.com.tr etki alanının posta sunucusu anlamına gelir. Bu da en
azından şu anda bizim istediğimiz bir şey değil. İleride tuzmetal.com.tr n'm ica-
nadoulu.tuzmetal.com.tr adında bir yavrusu olursa ve o etki alanının posta su-
nucusunu belirtmemiz gerekirse o zaman böyle bir işlemi düşünebiliriz.

- 150 -
DNS

Yine yukarıda “Posta sunucusu önceliği” başlıklı bir alan var ve orada 10
değerini görüyoruz. Eğer bu etki alanı için birden fazla posta sunucusu
tanımlayacaksak (çok büyük iş yerlerinde birden fazla posta sunucusu
kullanılır) o zaman bu alan bir önem taşıyor. Bir etki alanından sorumlu birden
fazla posta sunucu olduğunda diğer posta sunucular bu etki alanına mesaj
gönderecekken DNS sunucudan ilgili posta sunucularının bilgisini alıyorlar
(MX kayıtları) ve öncelik rakamı düşük olan posta sunucusuna mesajlarını
iletmeye çalışıyorlar. Eğer bu posta sunucusu ulaşılmaz durumda ise o zaman
öncelik rakamı daha yüksek olan diğer posta sunuculara erişmeye çalışıyorlar.
Eğer birden fazla posta sunucu kaydı varsa ve bunların öncelik değerleri aynı
ise o zaman rastgele bir şekilde bir sunucuya erişmeye çalışacaklar.

Bu MX kaydı hangi DNS sunucuda tanımlı olacak? Biz kendi kurum iç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
kaydı bir yerde daha tanımlı olacak. Orası da bizim Internet hizmeti aldığımız
firmanın (ISP’nin) DNS sunucusu.

Ad Sunucu (Name Server-NS) Kaydı


Ad sunucu kayıtları bir bölgeden sorumlu DNS sunucu ya da sunucuları
gösterir. Ad sunucularını eklemek için Yeni ad sunucu gibi bir şıkkımız yok.
Var olan ad sunucularını görmek ve ekleyip-çıkarmak için ya bölgenin üzerine
sağ tıklayıp Özellikler’i seçeceğiz ve oradan Ad Sunucuları sekmesine
geçeceğiz ya da bölgenin altında gördüğümüz NS kaydına çift tıklayacağız.
Her iki durumda da aşağıdaki gibi bir görüntü ile karşılaşacağız.

- 151 -
TCP/IP

Şekil 8.17: Ad sunucu kayıtlarının.

Bu pencerede var olan DNS sunucu (etki alanından sorumlu DNS sunucu)
görünüyor. “Ekle” düğmesine basarak yeni DNS sunucular tanımlayabiliriz.

DNS Sunucunun Doğrudan Sorgulanması


Şu ana kadar DNS sunucuyu PING komutu ile dolaylı olarak sorguladık. Şimdi
de NSLOOKUP komutu ile bir DNS sunucuyu doğrudan sorgulamayı görelim.
Bu işi komut satırından yapacağız.

NSLOOKUP komutunun iki türlü kullanımı var: 1) NSLOOKUP’ı doğrudan bir


soru ile sorup yanıtını almak 2) Etkileşimli NSLOOKUP ortamına geçip orada
NSLOOKUP’a özgü komutları vererek bilgi almak.

- 152 -
DNS

Birinci kullanıma bir örnek verelim.

Şekil 8.18: NSLOOKUP komutunun kullanımına bir örnek.

Yukarıdaki şekilde NSLOOKUP ile mail.tuzmetal.com.tr adındaki makinenin IP


adresini soruyoruz. Bu komuta karşılık karışık bir yanıt geliyor. Bu yanıtın son
iki satırında sorduğumuz bilgisayar adını (mail.tuzmetal.com.tr) ve o makinenin
IP adresini (172.16.0.95) görüyoruz. Yani, sorumuza bir yanıt almışız.

Yanıtın başındaki “DNS request timed out” ve “Sunucu:unknown” şeklindeki


mesajlar bağlandığımız (ve soru sorduğumuz) DNS sunucunun ters sorgulama
/reverse lookup) kaydının bulunmamasından kaynaklanıyor. Aşağıda
anlatacağımız şekilde ters sorgulama bölgeleri oluşturursak ve DNS
sunucunun ters sorgulama kaydını yaratırsak bu hata mesajları da ortadan
kaybolacak. Daha temiz bir yanıt mesajı alacağız.

Şimdi de NSLOOKUP komutunun etkileşimli kullanımını görelim. Bunun için


komut satırından yalnızca NSLOOKUP komutunu veriyoruz. Yine bir dizi hata ve
uyarı mesajı alacağız (DNS sunucunun ters sorgulama kaydının bulunmaması
nedeniyle) ve NSLOOKUP’a özel komutları verebileceğimiz bir ortamla
karşılaşacağız.

- 153 -
TCP/IP

Şekil 8.19: Etkileşimli NSLOOKUP ortamı.

Bu etkileşimli ortamda “help” ya da “?” komutlarını vererek kullanabileceğimiz


komutları listeletebiliriz.

En basit işlem olarak, bir bilgisayar adı yazıp ENTER tuşuna basabiliriz. Bu
durumda DNS sunucu sorduğumuz bilgisayarın IP adresini görüntüleyecektir.

Şekil 8.20: NSLOOKUP'ta IP adreslerinin elde edilmesi.

Yukarıdaki şekilde iki bilgisayarın adını verip IP adreslerini vermişiz. Bu


bilgisayarlardan ilkine (mail.tuz.metal.com.tr) ilişkin kayıt DNS sunucuda var,
yanıt ondaki bilgilere bakılarak verilmiş. İkinci bilgisayara (www.sabab.com.tr)

- 154 -
DNS

ilişkin bilgi ise bağlandığımız DNS sunucuda yok. Onun bilgisi DNS’e girişte
anlattığımız mekanizma ile elde edilip bize veriliyor (ve DNS sunucu ön
belleğine yerleştiriliyor).

Şimdi de “Is—d tuzmetal.com.tr” komutunu verelim. Bu komut, adı belirtilen


etki alanına ilişkin tüm kayıtları göster demektir. Yani, adı verilen bölgeye
(zone) ilişkin tüm kayıtları görmek, aktarmak (zone transfer) istiyoruz. Yalnız
bu komutu verdiğimizde “Query refused” (sorgulamaya izin verilmedi” şeklinde
bir mesaj alacağız. Bu mesaj Windows 2003’deki DNS’in varsayılan
ayarlarından kaynaklanıyor. 2003’de, başlangıçta bir DNS bölgesinin bilgilerini
aktarmaya izin yoktur. Bunu çözmek için (normalde çözmeye gerek de yoktur,
böyle kalabilir) DNS konsolunda ilgili bölgenin üzerine sağ tıklayıp, Özellikler’i
seçip “Bölge Aktarmaları” sekmesine gidiyoruz. Bu sekmede bölge bilgilerinin
hangi makinelere aktarılacağına ilişkin ayarlar var. Bu sekmede varsayılan
olarak “Bölge aktarmasına izin ver” kutusu seçili değildir. Bu da hiçbir
makineye bölge bilgilerinin aktarılmasına izin verilmeyeceği anlamına gelir. Bu
kutuyu işaretleyip aşağıda da hangi makinelere aktarıma yapılabileceğini
belirleyebiliriz.

Şekil 8.21:
Bölge bilgilerinin
aktarılmasına
(zone transfer)
ilişkin ayarlar.

- 155 -
TCP/IP

Yukarıdaki şekilde herhangi bir sunucuya bölge bilgilerinin aktarılmasına izin


verdiğimiz anlaşılıyor. Normalde yaptığımız bir şey değil bu. Öte yandan
yaptığımız şeyin bir güvenlik açığına yol açması da mümkün değil. Sonuçta
zaten tek tek sorulursa verilecek olan bilgilerin topluca da verilebilmesine
olanak tanıyoruz.

Bunu yaptıktan sonra tekrar “Is-d tuzmetal.com.tr” komutunu verirsek


tuzmetal.com.tr etki alanına ilişkin tüm bilgileri görebileceğiz.

Şekil 8.22: NSLOOKUP'ta bir etki alanına ilişkin tüm kayıtların bilgisinin görüntülenmesi.

Aynı komutu sabah.com.tr etki alanı için verirsek olumsuz yanıt alacağız.
Çünkü sabah.com.tr etki alanına ilişkin bilgiler bağlandığımız DNS sunucuda
bulunmuyor.

NSLOOKUP’da çok kullandığımız bir başka komut settype komutudur. Bu


komut belirli bir türdeki kayıtların görüntülenmesini belirtir ve tek başına bir
anlamı yoktur. Bu komuttan hemen sonra bir etki alanı adı yazarsak ilgili etki
alanında, set type ile türü belirtilen kayıtlar listelenir. Şimdi önce “set
type=MX”, sonra da “tuzmetal.com.tr” komutlarını vereceğiz. Bu iki komutun
sonucu olarak karşımıza tuzmetal.com.tr’nin MX kayıtları çıkacak.

- 156 -
DNS

Şekil 8.23: MX kayıtlarının görüntülenmesi.

Yukarıdaki şekilde tuzmetal.com.tr'nin posta sunucusunun


mail.tuzmetal.com.tr adındaki makine olduğu, bu makinenin öncelik değerinin
10 olduğu, IP adresinin de 172.16.0.95 olduğu görülüyor.

Benzer şekilde “set type=NS” ve “sabah.com.tr” komutlarını art arda vererek


sabah.com.tr etki alanından sorumlu DNS sunucuları öğrenebiliriz. Bu komutu
verdiğimizde yanıtta “Güvenilir olmayan yanıt” şeklinde yanlış çeviri kurbanı bir
mesaj alacaksınız. Aslında “başka bir DNS sunucudan alınan yanıt” ya da
“yetkili olmayan yanıt” denmesi daha doğru olurdu. Kastedilen şey bu bilginin
bağlandığımız DNS sunucudaki bilgilerden yararlanılarak getirilmediği, başka
bir DNS sunucudan getirildiği.

Şimdi sabah.com.tr’nin DNS sunucusunu öğrendiğimize göre NSLOOKUP


içinden o sunucuya bağlanıp onu sorgulayabiliriz. DNS sunucu değiştirme
komutu “server”. “server 195.33.203.5” komutunu vererek sabah.com.tr’nin
DNS sunucusuna bağlanabiliriz. Sonra bu DNS sunucuyu sorgulayabiliriz.

Şekil 8.24: Bir başka DNS sunucuya bağlanılıp yanıtların o sunucudan alınması.

- 157 -
TCP/IP

Exit komutunu vererek NSLOOKUP ortamından çıkabiliriz.

Ters DNS Sorgulaması


DNS sunucu hep ad/IP çözümlemesini yapmaz. Eğer uygun bir şekilde
yapılandırılmışsa IP/ad çözümlemesini de yapabilir. Yani, DNS sunucuya IP
adresi verip, karşılığında ad da alabiliriz. Buna ters sorgulama (inverse query
ya da reverse query) denilir.

Ters sorgulamayı yapabilmek için DNS’de in-addr.arpa uzantısıyla biten özel


etki alanları (ters sorgulama bölgeleri) yaratılır. Bu etki alanının adı da ters bir
şey olacaktır. Örneğin, 168.0.0.192.in-addr.arpa gibi. Bu adda, bir ağı belirten
üç oktetin tersten yazıldığına dikkat edin.

Ters sorgulama bölgesi yaratıldıktan sonra bu bölgenin altında işaretçi


kayıtları (pointer records-PTR) denilen kayıtlar oluşturulur. Bunlar hemen düz
sorgulama bölgelerindeki basit bilgisayar (host-A) kayıtlarına karşılık gelir. Bir
farkla: Düz sorgulama bölgelerindeki bilgisayar kayıtları bir bilgisayar adını bir
IP adresine eşlerken, ters sorgulama bölgelerindeki işaretçi kayıtları bir IP
adresini bir bilgisayar adına eşler.

İstemciler örneğin, 195.142.78.98 adresine karşılık gelen bilgisayar adını


bulmak için DNS sunucuya 98.78.142.195.in-addr.arpa bilgisini gönderirler, bu
soruya karşılık bir bilgisayar adının döndürülmesini beklerler.

Ters sorgulama yapacaksak bu aşamada ters sorgulama bölgesini (reverse


lookup zone) yaratmalıyız. DNS konsolunda “Geriye Doğru Arama Bölgeleri”
kabına sağ tıklayıp “Yeni Bölge” şıkkını seçiyoruz. Hoş geldiniz penceresini
geçtikten sonra yine bölgemizin birincil mi, ikincil mi yoksa kalıntı mı olacağı
sorulacak. Birincil’i seçip geçiyoruz, ikincil kısımda çoğaltma ile ilgili bir
pencere çıkarsa onu da İleri düğmesine basıp geçiyoruz. Sonraki pencerede
ters sorgulama bölgesinin adını gireceğiz.

- 158 -
DNS

Şekil 8.25: Ters sorgulama bölgesinin adının girilmesi.

Yukarıdaki şekilde bölge adının belirlenebileceği iki kısım var. “Geriye doğru
arama bölgesi” alanında ters sorgulama bölgesinin adını doğrudan yazabiliriz;
168.0.192.in-addr.arpa şeklinde. Ama bunu yazmak, yazım kuralını akılda
tutmak zor olabilir. Bu yüzden yukarıdaki “Ağ Kimliği” alanına ağ adresimizin
ilk üç oktetini yazıyoruz. Aşağıdaki alan otomatik olarak ve doğru şekilde
dolduruluyor.

Sonraki sayfada “Dinamik Güncelleştirme” şıkları var. Bu şıkları da olduğu gibi


bırakıp ilerliyoruz ve ters sorgulama bölgesi yaratma işlemini bitiriyoruz.

Ters sorgulama bölgelerini yarattıktan sonra bu bölgelerdeki işaretçi kayıtlarını


yaratalım. İlk olarak da 192.168.0.1 adresine ve ANASUNUCU adına sahip
DNS sunucumuz için işaretçi kaydımızı yaratalım. Bunu yapmak için “Geriye
Doğru Arama Bölgeleri” kabının altındaki “192.168.0.x subnet” adındaki
bölgeye sağ tıklayıp “Yeni İşaretçi (PTR)” şıkkını seçiyoruz. Karşımıza çıkan
pencerede makinenin IP adresinin son oktetini “1” şeklinde yazıyoruz
(192.168.0 şeklindeki ilk üç oktet zaten bölgenin adında içeriliyor). Makinenin
adını da “Ana bilgisayar adı” kısmına yazıyoruz (ya da Gözat şıkkı ile
getiriyoruz).

- 159 -
TCP/IP

Şekil 8.26: Bir işaretçi kaydının girilişi.

Her işaretçi kaydını bu şekilde girmek zorunda değiliz. Bir düz sorgulama
bölgesine bir kayıt girerken o kayıtla ilgili işaretçi kaydının yaratılmasını
belirten kutuyu işaretleyerek ilgili işaretçi kaydının otomatik olarak
yaratılmasını sağlayabiliriz. Şimdi bunu yapalım.

“İleri Doğru Arama Bölgeleri” kabının altında tuzmetal.com.tr etki alanına sağ
tıklayıp “Yeni Ana Makine (A)” şıkkını seçiyoruz ve bir bilgisayar kaydı
oluşturuyoruz.

- 160 -
DNS

Şekil 8.27: Bir bilgisayar kaydı oluştururken ilişkilendirilmiş işaretçi kaydının da oluşturulması.

Yukarıdaki şekilde “İlişkilendirilmiş işaretçi (PTR) kaydı oluştur” kutusunun


seçili olduğuna dikkat edin. Bu kutu sayesinde ters sorgulama alanında bu
bilgisayarın işaretçi kaydı oluşturulacak.

Şimdi elle yarattığımız ve otomatik olarak yaratılan işaretçi kayıtlarını görelim.

Şekil 8.28: işaretçi kayıtlarının DNS konsolunda görüntülenmesi.

- 161 -
TCP/IP

Yaratılan kayıtların bölgede görüntülenmesi zaman aldığı için DNS


konsolunda görüntüyü tazelemek (Refresh) gerekli olabilir.

Şimdi yine düz sorgulama bölgesinde bir kayıt yaratalım ama kaydın IP adresi
kısmında 172.16.0.198 olsun. Kaydı yaratırken “İlişkilendirilmiş işaretçi (PTR)
kaydı oluştur” kutusunu işaretlersek sonuçta bir hata mesajıyla karşılaşacağız.

Şekil 8.29: İşaretçi kaydının yaratılamadığını belirten hata mesajı.

Bu hatayı aldık çünkü bu makinenin IP adresinin kaydedileceği bir ters


sorgulama bölgesi (0.16.172.in-addr.arpa adında bir bölge) yok. Olmadığı için
de kayıt yaratılamıyor. Böyle bir IP adresine işaretçi kaydının yaratılabilmesi
için önce 0.16.172.in-addr.arpa bölgesinin yaratılması gerekir.

Şimdi, DNS sunucumuzun (anasunucu.anadolu.com) ters sorgulama kaydı


yaratıldığı için NSLOOKUP komutunu verdiğimizde bir hata mesajı almayacağız
ve bir bilgisayarın IP adresini verip bilgisayar adını öğrenebileceğiz.

Şekil 8.30: NSLOOKUP ile yapılan ters sorgulamalar.

Her makinenin ters sorgulama kaydının yapılmasına gerek yoktur. Ama posta
sunucu görevi gören makinenin ters sorgulama kaydının bulunmasına dikkat
edin. Birçok posta sunucu, eğer sizin etki alanınızdan sorumlu DNS

- 162 -
DNS

sunucusunda, posta sunucunuzun ters sorgulama kaydı yoksa, sizin posta


sunucunuzdan mesajları kabul etmemektedir.

İkincil Bölge (Secondary Zone)


Şu ana kadar DNS’de hep birincil bölgelerle çalıştık. Bazen ikincil bölge de
yaratmamız gerekebilir. Ne zaman ikincil bölge yaratmamız gerekir?

Örnek olarak büyük bir şirket düşünelim. Şirketin İstanbul’da merkezi,


Ankara’da büyük bir şubesi bulunsun. Şirketin DNS sunucusu İstanbul’da
bulunsun ve bu DNS sunucuda ilgili bölgeler yaratılmış, altlarına da ilgili
kayıtlar eklenmiş olsun. İstanbul’daki istemciler için şu anda bir sorunumuz
yok: Onlar yerel alan ağı üzerinden hızlı bir şekilde kendilerinin yakınındaki
DNS sunucuya ulaşıp gerekli sorgulamaları yapabilirler. Ama Ankara ile
İstanbul arasında yavaş bir bağlantı olduğu için (en azından yerel alan
ağındaki minimum 100 Mbps’lik hızlara göre yavaş) Ankara’daki istemcilerin
büyük bir rahatlıkla İstanbul’daki DNS sunucudan hizmet almaları mümkün
olmayacak. Böyle bir durumda, Ankara’da da bir DNS sunucu oluştururuz. Bu
DNS sunucu üzerinde ilgili bölgeleri ikincil bölge olarak yaratırız.

İkincil bölgeyi barındıran DNS sunucu, o bölgeye ilişkin bilgileri bir başka DNS
sunucudan alır. Örneğimizde Ankara’daki DNS sunucu, bölge bilgilerini
İstanbul’daki DNS sunucudan alacaktır.

İkincil bölge bilgileri bir başka DNS sunucudan geldiği için ikincil bölgeler
üzerinde bir değişiklik yapılamaz (yeni kayıt eklenemez, var olan kayıtlar
değiştirilemez, silinemez vb.). İlk tanımlanış sırasında bölgeye ilişkin bilgilerin
tümü bir başka DNS sunucudan gelir, sonra da belli aralıklarla (varsayılan
olarak 15 dakikada bir) bölge bilgileri yine aynı DNS sunucudan güncellenir.

Bir örnekle yapılacak işlemleri gösterelim. Örneğimizde LKSUNUCU adındaki,


192.168.0.130 adresindeki bir DNS sunucuda tuzotel.com.tr adında bir birincil
bölge var. ANASUNUCU adındaki DNS sunucumuzda tuzotel.com.tr adında
bir ikincil bölge yaratacağız. Bu bölgenin bilgilerinin 192.168.0.130 adresindeki
DNS sunucudan geleceğini belirteceğiz.

ANASUNUCU’da DNS konsolunda “İleriye Doğru Arama Bölgeleri" kabına sağ


tıklayıp “Yeni Bölge” şıkkını seçiyoruz. Bölge türünün seçildiği pencerede
ikincil bölge şıkkını seçiyoruz. Sonraki pencerede bölgenin adını yazıyoruz:
tuzotel.com.tr. Bir sonraki pencerede ise bu bölgeye ilişkin bilgileri almada
yararlanacağımız DNS sunucusunu (ya da sunucuları) giriyoruz.

- 163 -
TCP/IP

Şekil 8.31: Bölge bilgilerinin alınacağı DNS sunucusunun belirlenmesi.

İkincil bölgenin bilgileri belirttiğimiz DNS sunucudan gelecektir.

Şekil 8.32: İkincil bölge bilgilerinin görüntülenmesi.

ANASUNUCU makinesindeki tuzotel.com.tr bölgesinde hiçbir bilgi değişikliği


yapamayacağız. Bu bölgeye ilişkin bilgiler belli aralıklarla LKSUNUCU
makinesinden güncellenecektir.

- 164 -
DNS

ANASUNUCU makinesi ikincil bölge bilgilerini bir başka DNS sunucudan alır
demiştik. Bu sunucu birincil bölgeyi barındıran bir DNS sunucu olabileceği gibi
bir başka, ikincil bölge barındıran bir DNS sunucu da olabilir. Örneğin, daha
önce C2 adındaki makinede tuzotel.com.tr adında ikincil bölge yaratmışsak,
ANASUNUCU’nun tuzotel.com.tr bilgilerinin C2’den almasını da sağlayabiliriz.
Tek fark C2’den alınacak bilgilerin LKSUNUCU’dan alınacak bilgilere göre
biraz daha bayat olmasıdır (çünkü C2 de bölge bilgilerini LKSUNUCU’dan
alıyor).

Bu örnekte LKSUNUCU da bir Windows 2003 makineydi ve bu makinedeki


tuzotel.com.tr bölgesi üzerinde Bölge Aktarmaları sekmesinde bölge
bilgilerinin aktarılabilmesine izin verdim. Yoksa ANASUNUCU makinesi o
bölge bilgilerini kendisine aktaramazdı.

Yetki Başlangıcı (SOA) Kaydı


DNS’de yaratabileceğimiz bazı kayıtları gördük (A, CNAME, MX, NS kayıtları).
Yetki başlangıcı (Start of Authority-SOA) kaydını ise şimdi göreceğiz.

SOA kaydı bir bölgeye ilişkin parametreleri içerir.

ANASUNUCU makinesinde tuzmetal.com.tr bölgesindeki Yetki Başlangıcı kay-


dına çift tıklayarak bu kaydı incelemeye başlayalım.

- 165 -
TCP/IP

Şekil 8.33: SOA Kaydı.

Bu pencerede gördüğümüz alanları açıklayalım.

Seri no: Bu parametre sürekli artan bir sayıdır. Bölgede herhangi bir değişiklik
olduğunda (yeni kayıt eklendiğinde, bir kayıt değiştirildiğinde, bir kayıt
silindiğinde vb) bu sayı bir artar. Ayrıca elle de arttırılabilir (yandaki Artış
düğmesine basarak). Bu bölgeyi ikincil bölge olarak tanımlamış bir DNS
sunucu, 15 dakikada bir birincil bölgeyi barındıran DNS sunucuya gelecek.
Birincil bölgenin seri numarası artmışsa o zaman bölge bilgilerinin değiştiğini
anlayıp bölge bilgilerini kendisine aktaracak.

Birincil sunucu: Birincil bölgeyi barındıran DNS sunucusunun adı.

Sorumlu kişi: Bu DNS bölgesinden sorumlu kişinin e-posta adresi. Buradaki


adreste kullanıcı adından sonra “@” işaretinin değil de noktanın kullanıldığına
dikkat edin. DNS protokolünde “@” işareti başka bir işleve sahip olduğu için

- 166 -
DNS

burada “@” işaretini kullanamıyoruz. (DNS’de @ işareti bölge adına karşılık


geliyor. TCP/IP’nin tutarlı bir bütün oluşturmadığının kanıtı bu durum.)

Yenileme aralığı: Bu bölgeyi kendisine ikincil bölge olarak aktaran DNS


sunucunun kaç dakikada bir tazeleme yapması gerektiğini belirten alan.
Varsayılan değeri 15 dakika.

Yeniden deneme aralığı: Bu bölgeyi kendisine ikincil bölge olarak aktaran


DNS sunucunun bu DNS sunucuya ulaşamaması durumunda kaç dakikada bir
deneme yapılacağını belirten parametre. Varsayılan değeri 10 dakika.

Kullanım süresi sonu: Bu bölgeyi kendisine ikincil bölge olarak aktaran DNS
sunucunun, kendisindeki bilgileri tazeleyememesi durumunda, elindeki (bayat)
bilgileri istemcilerine sunmaya devam etme süresi. Varsayılan değer 1 gün.
Burayı biraz açıklayalım: İkincil bölgeyi barındıran DNS sunucu, istemcilerinin
sorgularına karşılık olarak bu bölgeye ilişkin bilgileri sunuyor, belli aralıklarla
da elindeki bilgiyi güncellemek istiyor. Eğer güncelleme amacıyla ilgili DNS
sunucuya ulaşamazsa 10 dakikada bir tekrar ulaşmaya çalışıyor. Bu arada da
elindeki bilgiyi istemcilere vermeye devam ediyor. Ama elindeki bilgiler güncel
olmadığı için (Bu bilgiler değişmiş olabilir. Değişmişse istemcilere geçersiz
bilgi verme durumu var.) bu bilgileri burada belirtilen süre dolduktan sonra
istemcilere vermeyi durduruyor.

En az (varsayılan) TTL: Bu bölgedeki kayıtlar için ayrıca bir TTL (yaşam


süresi-önbellekte tutulma süresi) belirtilmemişse buradaki değer kullanılarak
ön bellekleme yapılacak. Burayı biraz açıklayalım: DNS sunucular kendilerinde
bulunmayan bilgileri diğer DNS sunuculardan bulup getirirler (bunun nasıl
yapıldığını DNS konusunun başında açıklamıştık). Bu bilgiyi hem soran
istemciye verirler, hem de başka bir istemci daha sorabilir diye kendi
önbelleklerine (DNS sunucu önbelleği) alırlar. Önbellekte bilgi belli bir
süreliğine durur. Bu sürenin ne olacağını her kayıt üzerinde tek tek
belirleyebiliriz. Bu değerin tek tek belirtilmesi yerine SOA kaydında bu alanda
bir değer belirleyebiliriz. Üzerinde bulunduğumuz DNS sunucu, kendisinden bir
bilgi sorulduğunda bu değere bakarak, verdiği bilginin karşı tarafta ne kadar
süreyle ön bellekte tutulması gerektiğini söyleyebilir.

Bu kayıt için TTL: Bu kaydın (SOA) önbellekte durma süresi.

DNS'de Döndürerek Yanıtlama Mekanizması


DNS’de bir bölgenin altında, adı ve IP adresi aynı olan iki kayıt bulunamaz.

- 167 -
TCP/IP

Ama aynı adla, farklı IP adresleri ile girilmiş farklı kayıtlar olabilir. Aşağıdaki
örneğe bakalım:

Bölge: tuzmetal.com.tr

Kayıtlar:

www (A) 172.16.0.89

www (A) 192.168.0.98

www (A) 192.168.0.99

DNS istemciler www.tuzmetal.com.tr adına karşılık IP adresi sorduklarında


onlara hangi IP adresi verilir? İlk IP adresi mi, yoksa rast gele bir IP adresi mi?

Eğer DNS sunucu üzerinde döndürerek yanıtlamayı Round-Robin


işaretlemişsek (varsayılan olarak işaretlidir), DNS sunucu kendisinden
www.tuzmetal.com.tr makinesinin IP adresi istendiğinde ilk soran istemciye
birinci adresi, ikinci soran istemciye ikinci IP adresini, üçüncü soran istemciye
üçüncü adresi, dördüncü sorana birinci adresi vb. şeklinde yanıtlar döndürür.
Bunu da iş başında görelim:

Şekil 8.34: Döndürerek yanıtlamanın sınanması.

Yukarıdaki şekilde www.tuzmetal.com.tr adresine iki kez PING çekiliyor. İki


PING arasında bir kez “IPCONFIG/FLUSHDNS” komutu ile DNS istemci
önbelleği (bu önbellek DNS sunucu önbelleğinden farklıdır) temizleniyor.

- 168 -
DNS

Peki, döndürerek yanıtlama pratikte ne işe yarar?

Eğer bu Web sunucusu çok ziyaret edilen bir sunucuysa yükünü paylaştırmak
için başka bir Web sunucu daha kullanılabilir. Yahoo.com, google.com,
Microsoft. com gibi sitelerin birden fazla (bazen yüzlerce) Web sunucusu
bulunabilir.

Bir siteye yönelik isteği birden fazla Web sunucusuna dağıtmak için DNS’deki
Round-Robin mekanizmasını kullanabiliriz.

Döndürerek yanıtlama DNS sunucu üzerindeki Gelişmiş sekmesinden


ayarlanır.

Şekil 8.35: DNS sunucu üzerindeki Gelişmiş sekmesi.

Yukarıdaki şekildeki “Hepsini birer kez denemeyi etkinleştir” şıkkı döndürerek


yanıtlama şıkkıdır ve görüldüğü gibi varsayılan olarak işaretlidir.

- 169 -
TCP/IP

DNS ve WINS Hizmetlerinin Birleştirilmesi


Şimdi biraz anımsayalım: WINS mekanizması NetBIOS adlarını IP adresine
çevirmek için kullanılır. DNS mekanizması host adlarını (fully qualified domain
name) IP adresine çevirmek için kullanılır. Peki, bu iki mekanizmayı bir arada
kullanabilir miyiz? Örneğin, bir istemci DNS sunucuya bir soru sorduğunda,
DNS sunucuda sorulan makineye ilişkin bilgi yoksa, DNS sunucunun bilgiyi bir
WINS sunucudan almasını sağlayabilir miyiz? Bu sorunun yanıtı “evet”. DNS
sunucudaki bir bölge üzerinde verdiğimiz bir ayarla bunu sağlayabiliriz.
Aşağıdaki şekle bakalım.

Şekil 8.36: DNS ve WINS'in birlikte çalışması.

Yukarıdaki şekilde LKSUNUCU adındaki makine bir DNS sunucu,


ANASUNUCU adındaki makine ise WINS sunucu. A makinesinin
LKSUNUCU’ya soru sorduğunu ve f.tuzotel.com.tr adına karşılık gelen IP
adresini istediğini düşünelim. LKSUNUCU’da tuzoetl.com.tr’nin altında F
makinesine ilişkin bir kayıt yok. Dolayısıyla, ek bir şey yapmadığımızda DNS
sunucudan olumlu bir yanıt alamayacak. Ama eğer tuzotel.com.tr bölgesi
üzerinde WINS ayarı yaparsak (WINS sunucunun IP adresini girersek) o
zaman LKSUNUCU bu tür bir soruyla karşılaştığında, kendisinde bilgi yoksa,
IP adresi belirtilen WINS sunucuya gidecek ve ondan aldığı bilgiyi istemcisine
sunacaktır.

Bu ilişkiyi sağlamak için LKSUNUCU’da tuzotel.com.tr bölgesine sağ tıklayıp


özellikler şıkkını seçeceğiz ve oradan da WINS sekmesine geçeceğiz.

- 170 -
DNS

Şekil 8.37: DNS-WINS ilişkisinin sağlanması.

Yukarıdaki pencerede WINS sekmesinde “WINS ileriye doğru aramayı kullan”


kutusunu işaretliyoruz ve aşağıdaki kutuya WINS sunucunun IP adresini yazıp
Ekle düğmesine basarak o adresi kutuya aktarıyoruz (örnekte 192.168.0.1).

Şimdi bir makine LKSUNUCU’ya f.tuzotel.com.tr adına karşılık IP adresi


sorarsa LKSUNUCU bu bilgiyi kendisindeki tuzotel.com.tr bölgesinde
araştıracak, bulamayınca F adındaki bilgisayarı WINS sunucuya soracak,
ondan yanıt alırsa bu yanıtı istemcisine bildirecek.

Burada şu akla gelebilir: DNS sunucuya sorulan ad bir host adı, örneğin,
f.tuzotel.com.tr. WINS sunucuda ise F şeklinde bir NetBIOS adı var. 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 adı NetBIOS adı formatına çeviriyor; yani, bu
ad içinden etki alanına karşılık gelen kısmı (örnekte, tuzotel.com.tr) çıkarıyor.

- 171 -
TCP/IP

İletici (Forwarder)
Bir DNS sunucu, kendisinde olmayan bir bilgi istendiğinde kök DNS sunucuları
ve ilgili diğer sunucuları kullanarak yanıtı elde eder ve istemcisine verir. Bir
DNS sunucunun yanıtlayamadığı soruları başka bir DNS sunucuya
göndermesi sağlanabilir. Diğer DNS sunucu soruyu alır, yanıtı verebiliyorsa
verir, veremiyorsa o DNS sunucu kök sunucular ve ilgili diğer DNS sunucuları
kullanarak yanıtı bulup soran DNS sunucuya döndürebilir.

İletici tanımı sunucu üzerinde yapılır. DNS konsolunda sunucuya sağ tıklayıp
Özellikler şıkkını seçip İleticiler sekmesine geçeriz ve İletici tanımını o
sekmede yaparız.

Şekil 8.38: İletici tanımının yapılması.

Yukarıdaki şekilde iki kutu var: DNS etki alanı kutusu ve Seçili etki alanı (için)
iletici IP adresi kutusu. DNS etki alanı kutusunda şu anda “Tüm diğer DNS etki

- 172 -
DNS

alanları” ifadesi var. Aşağıdaki kutuya 192.168.0.130 adresi girilmiş. Bu iki


değer şu anlama geliyor: Bu DNS sunucuda olmayan tüm bilgiler için
192.168.0.130 adresindeki DNS sunucuya git.

DNS etki alanı kutusuna bir etki alanı yazıp (örneğin, tuzturizm.com.tr) aşağıya
da bu etki alanına ilişkin sorgular için İletici olarak kullanılacak DNS sunu-
cunun IP adresi girilebilir. Bu durumda DNS sunucuya tuzturizm.com.tr etki
alanındaki bir makinenin IP adresi sorulduğunda ilgili DNS sunucuya gidilir.
Buna koşullu ileticilik (conditional forwarding) denir. Ayrıca belirtilmeyen böl-
gelere ilişkin tüm sorgular içinse 192.168.0.130 IP adresindeki DNS sunucu
kullanılır.

Genel olarak İletici tanımı yapmak gerekli değildir. DNS sunucu zaten
kendisinde olmayan bilgileri kök sunucular ve diğer sunucuları kullanarak elde
edebilmektedir. Koç Holding ya da Sabancı Holding gibi büyük (ve trafiği
önemli ölçüde kendi içinde kalan) yapılar dışında İletici tanımı kullanmak
gerekmez.

Alt Etki Alanları (Subdomain)


Gerçek hayatta kurumların hiyerarşik bir yapısı bulunmaktadır. Örneğin, büyük
bir şirketin çeşitli ülkelerde ofisleri bulunur. Bu ofislerin büyük olasılıkla kendi
bilgisayar ağları, kendi Web siteleri, kendi e-posta sunucuları vb. bulunur.

DNS de gerçek hayattaki bu hiyerarşik yapıyı modelleyebilir. (WINS’de böyle


bir yapı yoktur. WINS’de düz bir veritabanı yapısı vardır, bütün kayıtlar aynı
düzeyde yer alır.) Ana şirket için DNS’de bir bölge yaratılır. Bu bölgenin
altında ana şirketin sunucuları tanımlanır. Şirketin kendi başına bir miktar
bağımsızlığı bulunan birimleri DNS’de alt etki alanı (subdomain) olarak
tanımlanır. Alt etki alanlarının altında da o birimlerdeki bilgisayarların bilgisi
bulunur.

Şimdi örnek olarak DNS’de tuzmetal.com.tr etki alanının altında Almanya


adında bir alt etki alanı yaratalım ve bu alt etki alanının altında birkaç kayıt
oluşturalım.

DNS konsolunda “İleriye Doğru Aramalar” kabında tuzmetal.com.tr etki alanına


sağ tıklıyoruz ve “Yeni Etki Alanı” şıkkını seçelim ve karşımıza gelen pen-
cerede “Almanya” ifadesini girerek bir alt etki alanı yaratalım.

- 173 -
TCP/IP

Şekil 8.39: Alt etki alanının yaratılması.

Yaratılan alt etki alanı DNS konsolunda bir alt klasörmüş gibi görünür.

Şekil 8.40: Alt etki alanının görünüşü.

Bu alt etki alanının üzerine gelip yeni bilgisayar kaydı, yeni kısa ad kaydı vb.
yaratabiliriz. Bu alt etki alanında yaratılan kayıtların tam etki alanı adları
(FQDN) de uygun bir şekilde oluşturulur.

Tuzmetal.com.tr (Bölge adı ya da etki alanı ad)

www (host kaydı) → FQDN=www.tuzmetal.com.tr

ftp (host kaydı) → FQDN=ftp.tuzmetal.com.tr

Almanya (alt etki alanı adı)

www (host kaydı) → FQDN=www.almanya.tuzmetal.com.tr

- 174 -
DNS

Şu anda DNS sunucu hem tuzmetal.com.tr, hem de Almanya.tuzmetal.com.tr


etki alanları için bilgi içeriyor ve her iki etki alanına yönelik sorulara yanıt
veriyor.

Bir Alt Etki Alanı İçin Başka Bir DNS Sunucunun Yetkilendirilmesi
(Subdomain Delegation)

Yukarıdaki örnekte tuzmetal.com.tr ve Almanya.tuzmetal.com.tr şeklinde iki


etki alanı var. Almanya.tuzmetal.com.tr etkialanı, tuzmetal.com.tr etki alanının
altında yer alıyor (alt etki alanı). Her iki etki alanı için de şu anda tek bir DNS
sunucu hizmet veriyor. Almanya ofisi çok büyürse ve DNS’de olması gereken
yığınla kayıt söz konusu olursa bu durum yönetim açısından sorun yaratabilir.
Örneğin, DNS’e Almanya’daki yeni bir sunucunun bilgisi eklenecek diyelim. Bu
durumda Almanya’daki bilişimden sorumlu kişi Türkiye’deki yöneticiyi
arayacak, ondan Almanya alt etki alanına yeni bir kayıt eklemesini isteyecek.
Aynı şey, bir kayıt değiştirilirken ya da silinirken de yapılacak. Büyük olasılıkla
iletişimde çok sayıda sorun çıkacak (teknik ya da kişisel). Böyle durumlarda alt
etki alanındaki kayıtlar için bir başka DNS sunucuyu görevlendirebiliriz.
Aşağıdaki şekle bakalım.

tuzmetal.com.tr
www ftp
almanya (burası
için
ilk sunucu
görevlendirilmiştir)

Şekil 8.41: Alt etki alanı için bir başka DNS sunucunun yetkilendirildiği durum.

Yukarıdaki şekilde anasunucu adındaki DNS sunucuda tuzmetal.com.tr etki


alanına ilişkin bilgi var. www.tuzmetal.com.tr ve ftp.tuzmetal.com.tr gibi
bilgisayarların kayıtları bu DNS sunucuda duruyor. Yine bu sunucuda
almanya.tuzmetal.com.tr etki alanına ilişkin bilginin lksunucu adındaki DNS

- 175 -
TCP/IP

sunucuda bulunduğu belirtilmiş. Lksunucu adındaki DNS sunucudaysa


Almanya.tuzmetal.com.tr adında bir bölge yaratılmış ve altına ilgili kayıtlar
yerleştirilmiş. Şimdi bir istemci anasunucu’ya www.tuzmetal.com.tr adına
karşılık IP adresi sorarsa yanıtı hemen ondan alabilecek. Ama bir istemci
www.almanya.tuzmetal.com.tr adına karşılık IP adresi sorarsa yanıtı yine
anasunucu’dan alacak ama anasunucu bu yanıtı bir başka sunucudan,
lksunucu adındaki DNS sunucudan getirmiş olacak.

Yalnız, anasunucu üzerinde bir almanya alt etki alanı için bir yetkilendirme
yapmadan önce eğer varsa (ki yukarıdaki örneğimizde vardı) alt eki alanını
siliyoruz. Yetkilendirme ana etki alanında üzerinden belirtiliyor ve ilgili alt etki
alanının yaratılmamış olması gerekiyor.

Yetkilendirmeyi yapmak için bölge üzerinde (tuzmetal.com.tr) sağ tıklayıp


“Yeni Yetki Verme” şıkkını seçiyoruz. Karşımıza her zamanki gibi bir sihirbaz
ekranı çıkıyor. Hoş geldiniz ekranını geçtiğimizde hangi alt etki alanını
yetkilendireceğimiz sorulacak.

Şekil 8.42: Alt etki alanının adı belirtiliyor.

- 176 -
DNS

Bir sonraki ekranda hangi Ad Sunucuya (DNS sunucu) yetki vereceğimiz


belirtilecek. Burada Ekle düğmesine basacağız ve karşımıza çıkan pencerede
diğer DNS sunucunun adını ve IP adresini belirteceğiz.

Şekil 8.43: Alt etki alanı için yetkilendirdiğimiz DNS sunucunun belirtilmesi.

Sonra da Tamam, İleri ve Son düğmelerine basarak yetkilendirme işlemlerini


tamamlayacağız.

BIND Uyumluluğu ve
Windows 2000-2003'deki Yenilikler
DNS spesifikasyonları Berkeley Üniversitesinde hazırlanır ve bu
spesifikasyonlar BIND spesifikasyonları olarak adlandırılır.

Windows 2000 ve Windows 2003’deki DNS, BIND 8.2.1 spesifikasyonu ile


uyumludur. Bu sürüm ile DNS’e çok güzel özellikler gelmiştir. Bu özellikleri
şöyle sıralayabiliriz:

- 177 -
TCP/IP

1. Hizmet Konumu (Service Location-SRV) kaydı: Bu kayıt yeni bir


kayıt türüdür ve bir bilgisayarın üzerindeki hizmetleri göstermeye yarar
(aynen NetBIOS adlarındaki 16. karakter gibi). Örneğin, etki alanı
denetçilerinin (DC’ler) üzerlerindeki LDAP, Kerberos, Global Catalog
hizmetleri gibi hizmetler DNS’deki SRV kayıtları ile gösterilir. Windows
2000, XP ve 2003 işletim sistemlerine sahip makineler DNS’deki bu
kayıtları sorgulayarak DC’leri bulurlar.
2. Dinamik Güncelleştirme (Dynamic Update): Bu özellik sayesinde
bilgisayarlar kendi host (A) kayıtlarını ve üzerlerinde hizmet konumu
(SRV) kayıtlarım DNS sunucuda kendi Windows 2000-2003 etki
alanlarına karşılık gelen bölgenin altına kaydettirirler (aynen WINS’de
bilgisayarların kendi NetBIOS adlarını WINS sunucuya kaydettirmeleri
gibi). Böylece kayıtları daha önceden olduğu gibi elle girmek zorunda
kalmayız.
3. Artımlı Bölge Aktarımı (Incremental Zone Transfer): Bu özellik
sayesinde birincil bölge bilgilerinin ikincil bölgeye aktarılması sırasında
yalnızca değişiklikler aktarılır (aynen WINS sunucular arasındaki
çoğaltmada olduğu gibi).

Dinamik güncelleştirme sayesinde bilgisayarlar açıldıklarında kendi adlarını ve


IP adreslerini (yani host-A kayıtlarını) ve üzerlerindeki hizmetleri (yani hizmet
konumu-SRV kayıtlarını) DNS sunucuda kendi etki alanlarına karşılık gelen
bölgeye kaydettirirler.

Bir bilgisayarın kapanıp açılmasını beklemeden, “IPCONFIG/REGISTERDNS”


komutu ile o bilgisayarın adını ve IP adresini DNS sunucuya kaydettirebiliriz.

DC’lerde de, kapanıp açılmalarını beklemeden, her istediğimizde, Netlogon


hizmetlerini yeniden başlatarak onların hizmetlerini gösteren SRV kayıtlarının
DNS sunucuya kaydedilmesini sağlayabiliriz.

Hizmet Konumu Kayıtlarının Düzenlenmesi


Şu anda üzerinde bulunduğumuz ANASUNUCU adındaki makine hem bir etki
alanının (anadolu.com adındaki etki alanı) DC’si, hem de DNS sunucusu. DNS
konsolunda Anadolu.com bölgesinin altında altı adet alt etki alanı görünüyor.
Bunlar şu şekilde:

1. _msdcs
2. _sites
3. _tcp

- 178 -
DNS

4. _udp
5. DomainDNSZones
6. ForestDNSZones

Bu alt etki alanlarının altında başka alt etki alanları, hizmet konumu kayıtları ve
birkaç tane de bilgisayar (host) ve kısa ad (CNAME) kaydı var. Bu alt etki
alanları ve içindekiler DC’lerde Netlogon hizmetinin başlatılmasıyla oluşur.

_msdcs klasöründe Microsoft etki alanı denetçilerine özgü kayıtlar bulunur.

_sites klasöründe Active Directory sitelerindeki DC’leri gösteren SRV kayıtları


bulunur. İstemciler kendi sitelerindeki DC’leri bu kayıtlara bakarak bulurlar.

_tcp klasöründe, aktarım katmanında TCP protokolünü kullanan hizmetlere


ilişkin kayıtlar bulunur.

_udp klasöründe, aktarım katmanında UDP protokolünü kullanan hizmetlere


ilişkin kayıtlar bulunur.

DomainDNSZones klasöründe, Anadolu.com etki alanı içinde DC’ler arasında


çoğaltılan DNS bölgelerine ilişkin kayıtlar bulunur.

ForestDNSZones klasöründe, Anadolu.com’un da içinde bulunduğu orman


(forest) çapında çoğaltılan DNS bölgelerine ilişkin kayıtlar bulunur.

_tcp alt etki alanına gidersek burada hizmet konumu (SRV) kayıtlarını
göreceğiz.

Şekil 8.44: _tcp alt etki alanındaki hizmet konumu kayıtları.

Bu kayıtlar anasunucu adındaki makinede Glocal Catalog (gc), Kerberos


(kerberos), Kerberos parola değiştirme ve ldap hizmetlerinin bulunduğunu
gösteriyor.

- 179 -
TCP/IP

Bir Hizmet Konumu Kaydının Anatomisi


_tcp klasöründeki Kerberos SRV kaydına çift tıklayarak bu kaydı açıyoruz ve
bir SRV kaydını inceliyoruz.

Şekil 8.45: Bir SRV kaydının öğeleri.

Bu pencerede gördüğümüz alanları açıklayalım:

Etki Alanı: Bu hizmetin verilmekte olduğu etki alanı:

Hizmet: Hizmetin adı:

Protokol: Hizmetin aktarım katmanında kullandığı protokol (TCP ya da UDP).

Öncclik (priority): Öncelik değeri. Bu hizmeti veren başka makineler varsa


istemciler öncelik değeri rakamsal olarak düşük makineden yararlanırlar.
Öncelik değeri düşük olan makine kullanılabilir durumda değilse o zaman
öncelik değeri yüksek olan makineden yararlanılır.

- 180 -
DNS

Ağırlık (weight): Bu hizmeti veren birden fazla makine varsa, bu makinelerin


öncelik değeri aynıysa yük dağıtımı için ağırlık değerleri kullanılır. Burada
istemcilerden gelen istekler (yük) makinelerin ağırlıkları oranında dağıtılır. Bu
alana 0 ile 65535 arasında bir değer girilebilir.

Bağlantı Noktası (port) no: Hizmetin kullandığı port numarası.

Öncelik ve ağırlık değerleri sırasıyla 0 ve 100 değerlerine sahiptir. Bir DC’nin


verdiği hizmet için bu değerlerin değişik olmasını istiyorsak o makinenin Kayıt
Defterinde (Registry) bazı değerleri değiştirmeliyiz.

Örneğin, bir DC’nin LDAP hizmeti için öncelik değerini değiştirmek istiyorsak
Kayıt Defterinde

HKLM\System\CurrentControlSet\Services\Netlogon\Parameters

anahtarının altına LDAPSRVPRIORITY adında, DWORD türünde bir değişken


(value) eklemeli ve değerini istediğimiz bir rakam yapmalıyız.

DNS Dosyaları
DNS ile ilgili dosyalar normalde \Windows\System32\DNS klasöründe durur.
Bu klasörde normal bölgeler için bölgeadı.dns şeklinde dosyalar bulunur.
Örneğin, tuzotel.com.tr etki alanının kayıtlarını tutan dosyansın adı
tuzotel.com.tr.dns şeklindedir. Bu dosya bildiğimiz sıradan bir metin dosyasıdır
ve Not Defteri (notepad) programı ile açılıp düzenlenebilir.

Bölge dosyaları dışında bu klasörde birkaç dosya ve alt klasör daha bulunur.

Cache.dns adındaki dosyada kök DNS sunucuların adları ve adresleri içerilir.


Bu bilgiyi DNS konsolunda, sunucunun üzerindeki “Root Hints” sekmesinde de
görebiliriz.

Dns.log dosyası günlük dosyasıdır. Bazı işlemlerin kaydı bu dosyada tutulur.

Backup klasöründe, yaratılan bölgelerin bir yedeği tutulur.

Samples klasöründe örnek bazı dosyalar bulunur. Bu dosyalardan Boot


dosyası DNS sunucunun başlatılması, yapılandırması için kullanılabilir.
Windows 2003’ün güzel bir DNS yönetici programı olduğu için biz bütün
yapılandırmayı bu program ile yaparız; boot dosyasına işimiz düşmez.

- 181 -
TCP/IP

Windows 2000-2003'e Özel Bir Yenilik:


Active Directory ile Tümleşik Bölgeler
Microsoft, BIND spesifikasyonundan bağımsız olarak Windows 2000 ile birlikte
Active Directory (AD) ile tümleşik bölge kavramını getirdi. Bu özellik
sayesinde, eğer DNS sunucumuz aynı zamanda DC ise bölge bilgilerini AD
veritabanında tutabiliyoruz. Bunun çeşitli yararları var: Bölge bilgileri, AD
çoğaltımı ile ilgili DC’lere taşınıyor. Ayrıca AD veritabanı bütün DC’lerde
yazılabilir (writable) durumda olduğu için istemciler kendi host (A) ve hizmet
konumu (SRV) kayıtlarını herhangi bir DC’ye (DNS sunucu olan DC’ye)
kaydettirebiliyorlar. Herhangi bir DC’ye kaydettirilen bu kayıtlar, DC’ler
arasındaki çoğaltma ile diğer DC’lere de ulaştırılıyor, böylece her DC’de etki
alanındaki makinelerin tümünün bilgisi bulunuyor.

DC olan DNS sunucuda, DNS konsolunu kullanarak bir bölgeyi yaratırken,


bölge bilgilerini AD veritabanında tutmayla ilgili bir kutu karşımıza çıkar (Şekil
8.4). Bu kutuyu işaretlediğimizde bölge bilgileri artık \windows\system32\dns
klasöründe bir dosya içinde değil, AD veritabanında tutulur.

Windows 2000’de AD ile tümleşik bölgeler, aynı etki alanı içindeki tüm DC’lere
(DNS sunucu olsun-olmasın) çoğaltılırdı. Bunun sakıncası bölge bilgilerinin
DNS sunucu olmayan DC’lere de gereksiz yere gönderilmesiydi. (Şu anda
Türkiye’de bile yüzlerce DC’si olan büyük ağlar bulunuyor. Bu DC’lerin hepsi
de DNS sunucu değil. DNS sunucu olmayan DC’lere bu bilgilerin gönderilmesi
ise gereksiz.)

Windows 2003’de bu sorun çözüldü. AD ile tümleşik bölge bilgilerini çoğaltmak


için Windows 2003’de üç seçeneğimiz var:

1. Bölge bilgileri aynı etki alanı içindeki bütün DC’lere (DNS sunucu
olsunlar olmasınlar) çoğaltılabilir. Bu seçenek Windows 2000’deki
durumumuzun aynısı.
2. Bölge bilgileri aynı etki alanı içindeki, DNS sunucu olan DC’lere
çoğaltılabilir. Bu iyi bir seçenek; DNS sunucu olmayan DC’lere bölge
bilgileri gönderilmeyecek.
3. Bölge bilgileri orman içindeki tüm DNS sunucu olan DC’lere
çoğaltılabilir. Bu en güzel seçenek. Orman içindeki etki alanlarında
bulunan bilgisayarların birbirlerini kolayca bulabilmesi için böyle bir
seçenek gerekiyordu. Windows 2000’de böyle bir seçenek olmadığı
için büyük zorluk çekiyorduk; bölge bilgilerini ikincil bölge olarak diğer
DNS sunuculara aktarma ya da DNS sunucuların birbirlerini İletici
(Forwarder) olarak tanımlaması gibi işler yapıyorduk. 2003’de bu

- 182 -
DNS

seçenek ile AD veritabanında tuttuğumuz bölge bilgileri orman içindeki


tüm DNS sunucu olan DC’lere çoğaltılıyor.

Tek bir etki alanından oluşan yapılar için ikinci ya da üçüncü seçenekler aynı
anlama geliyor. Üçüncü seçenek Koç Holding gibi Sabancı Holding gibi büyük
organizasyonlarda anlamı olan bir seçenek (bu tür büyük yapılarda yüzlerce
etki alanı, binlerce DC bulunabiliyor).

Çoğaltma ile ilgili seçenekleri Şekil 8.5’de görebilirsiniz.

Dinamik Güncelleme ve
AD ile Tümleşik Bölgeler
Dinamik güncelleme sayesinde bilgisayarlar bilgisayar (A) ve hizmet konumu
(SRV) kayıtlarını DNS sunucuya kaydettiriyorlar. Bunu sağlayabilmek için
bölge üzerinde dinamik güncellemeye izin vermek gerekiyor. Bu izne ilişkin
seçenekleri Şekil 8.7’de görebilirsiniz.

Eğer bölge bilgileri AD veritabanında tutuluyorsa dinamik güncelleme için üç


seçenekle karşılaşıyoruz:

1. Dinamik güncellemeye izin verme: Bu seçenek bölge üzerinde


dinamik güncelleme yapılmayacağı anlamına gelir. Her bölge üzerinde
dinamik güncelleme yapmaya gerek yoktur. Yalnızca AD etki alanlarına
karşılık gelen bölgeler üzerinde dinamik güncellemeye izin veriyoruz,
diğer bölgeler üzerinde izin vermiyoruz; o bölgelerde bilgileri elle
giriyoruz.
2. Yalnızca güvenli dinamik güncellemeye izin ver: Bu seçenek,
yalnızca AD veritabanında bilgisi bulunan makinelerin bölge üzerinde
dinamik güncelleme yapabilmesi anlamına gelir. Etki alanına üye olan
NT tabanlı işletim sistemlerinin (NT, 2000, XP ve 2003) bilgileri AD’de
Computers, Domain Controllers kaplarında ya da sonradan yaratılan
yapısal birimlerde (organizational unit) tutulur. Eğer dinamik
güncelleme için bu şıkkı seçersek yalnızca AD’de bilgisi bulunan
makinelerin dinamik güncelleme yapmasına izin verilir. Böylece kötü
niyetli kişilerin kendi makinelerini DNS’de etki alanına karşılık gelen
bölgeye kaydettirmesi engellenmiş olur.
3. Hem güvenli olan, hem güvenli olmayan dinamik
güncelleştirmelere izin ver: Bu seçenek seçilirse, her makine,
gerçekten etki alanında olsun ya da olmasın, kendisini kaydettirebilir.

- 183 -
TCP/IP

AD etki alanları için ikinci şıkkın seçimi önerilir. Ama bu şıkkın yalnızca DC
olan DNS sunucularda çıktığını unutmayın. Eğer DNS sunucunuz DC değilse
(ki olmak zorunda değil) o zaman dinamik güncelleme için üçüncü şıkkı (Hem
güvenli olan, hem güvenli olmayan dinamik güncelleştirmelere izin ver)
seçmeliyiz.

Eski İşletim Sistemleri ve Dinamik Güncelleme


Yalnızca Windows 2000 ve yukarısı işletim sistemlerine sahip makineler DNS
sunucuda dinamik güncelleştirme yapabilirler. Windows 95-98-Me ve Windows
NT işletim sistemlerine sahip (eski-legacy işletim sistemleri) makineler dinamik
güncelleştirme yapamazlar.

Eski işletim sistemlerine sahip makinelerin bilgisinin DNS’e dinamik bir şekilde
kaydettirilmesi için DHCP sunucuları kullanabiliriz.

DHCP sunucu, eski-yeni işletim sistemlerine sahip istemcilerin bilgisayar (A)


ve işaretçi (pointer-PTR) kayıtlarını DNS sunucuya kaydettirebilir. Bu işlevi
DHCP konsolunda DHCP sunucunun üzerinde, DNS sekmesinde
düzenliyoruz.

Şekil 8.46: DHCP ile DNS ilişkisi.

- 184 -
DNS

Yukarıdaki alanları açıklayalım.

• Aşağıdaki ayarlara göre DNS dinamik güncelleştirmelerini etkinleştir:


Bu şık işaretlendiğinde, DHCP sunucu Windows 2000 ve sonrası için
dinamik güncelleştirme yapacak.

1. DNS A ve PTR kayıtlarını sadece DHCP istemcisi tarafından istenirse


dinamik olarak güncelleştir.
2. Her zaman DNS A ve PTR kayıtlarını dinamik güncelleştir.

• Kira silindiğinde A ve PTR kayıtlarını at: Anımsarsanız DHCP’den


alınan IP adreslerinin belli bir süresi (kira süresi) vardı. Bu şık seçilirse
istemcinin kira süresi bittiğinde (istemci kirasını tazelememişse) DHCP
sunucu DNS sunucuya gidip ilgili ad-IP kaydını silecek.
• DNS A ve PTR kayıtlarım güncelleme istemeyen DHCP istemcileri
için güncelle: Eski işletim sistemlerine yönelik olarak bu şıkkın seçilmesi
gerekir.

Dinamik Olarak Kaydedilen ve


Güncelliğini Kaybeden Kayıtların Silinmesi
Dinamik güncelleme iyidir de eğer bu bilgiler güncelliğini kaybetmişse DNS
sorgularının yanıtlanmasının gecikmesi gibi sorunlar yaratır. Binlerce
bilgisayarın bulunduğu, bazı bilgisayarların sökülüp atıldığı ortamlarda o
bilgisayarlara ilişkin A ve SRV kayıtlarının DNS sunucuda bulunması hem
DNS sunucunun performansını düşürecek (çok sayıda kayıt arasından ilgili
kaydı bulup getirmesi zaman alacak), hem de eski kayıtlar istemcilere yanlış
bilgi döndürülmesine neden olabilecektir. Bu yüzden dinamik olarak
güncellenmesi gereken kayıtların belli bir süre güncellenmemesi durumunda
silinmesini sağlayabiliriz.

DNS konsolunda DNS sunucunun üzerindeki “Eski kaynak kayıtlarını kaldır”


şıkkı bu türden eski kayıtları kaldırmaya yarar. Ama eski kayıt demekle ne
demek istiyoruz? Kaç gündür güncellenmeyen kayıtlar eskidir?

Kayıtların eskiliğiyle ilgili ayarları iki yerden yapabiliriz:

1. Herhangi bir bölge üzerinden, o bölgeye özgü olacak şekilde.


2. DNS sunucudaki tüm bölgeler için topluca.

Herhangi bir bölgenin üzerinde, Genel sekmesinde, o bölgedeki kayıtların


eskilik süresini belirleyebileceğimiz bir kısım var.

- 185 -
TCP/IP

Şekil 8.47: Bölgenin üzerinde Genel sekmesi.

Yukarıdaki şekilde “Eskime” düğmesine basarak bölgeye özgü eskilik


ayarlarına girebiliriz. Bu ayarlar kısmında “Eskiyen kaynak kayıtlarını at”
şeklinde bir kutu var ve varsayılan olarak işaretli değil. Yani, kayıtlar
güncellenmese bile kalmaya devam ediyor. Varsayılan ayar bu şekilde. O
kutuyu işaretlersek aşağıdaki süreler anlam kazanacak.

Aşağıdaki sürelerin açıklaması olağanüstü kötü. Kabaca söylemek gerekirse


otomatik olarak kaydettirilen bir kayıt (A ya da SRV kaydı) buradaki iki alanda
belirtilen sürelerin toplamı kadar bir süre içinde (varsayılan olarak 14 gün)
tazelenmezse siliniyor. Bu işlem otomatik olarak yapılıyor.

Tek tek bölgeler üzerinde değer vermek yerine sunucu üzerinde topluca (tüm
bölgeleri etkileyecek şekilde) bir ayar da yapabiliriz. Bunu sunucu üzerinde
“Tüm bölgeler için Eskitme/Kaldırma ayarları” şıkkı ile yapabiliriz. Buraya

- 186 -
DNS

girdiğimizde Şekil 8.47’deki görüntüyle karşılaşacağız. Tek fark buradan


yaptığımız ayarların tüm bölgeler için geçerli olmasıdır.

Windows 2000, XP ve 2003'de DNS ile


İlgili Olarak Yapılması Gerekenler
Windows 2000 ve yukarısında DNS büyük önem taşıyor. Windows 2000, XP
ve 2003 makineler kendi bilgisayar (A) ve hizmet konumu (SRV) kayıtlarını
DNS sunucuya kaydettiriyorlar. Etki alanındaki sıradan (DC olmayan)
makineler DC’leri DNS sunucudaki SRV kayıtları aracılığı ile buluyorlar. Yine
DC’ler de birbirlerini DNS aracılığıyla buluyorlar ve iletişime geçiyorlar. Bu
yüzden bu işletim sistemlerinin kullanıldığı ortamlarda sağlıklı bir DNS
sistemine gereksinimimiz var. Windows 2000 ve yukarısında çıkan hataların
yaklaşık yarısının DNS ile ilgili olduğunu söyleyebilirim. Yani, sağlıklı bir DNS
sistemi sorunlarınızı yarı yarıya azaltacaktır.

Sağlıklı bir DNS sistemi için şunlara dikkat etmeliyiz:

1. Her Active Directory etki alanından sorumlu bir DNS sunucu bulunmalı.
2. Bu DNS sunucuda etki alanına karşılık gelen bir bölge (zone)
bulunmalı.
3. Bölge üzerinde dinamik güncellemeye izin verilmiş olmalı.
4. Etki alanı içindeki tüm makineler (DC’ler dahil olmak üzere) DNS
sunucu olarak 1 numarada belirtilen DNS sunucuyu (etki alanından
sorumlu DNS sunucuyu) görmeli.
5. DNS sunucuda etki alanına karşılık gelen bölgede gerekli bilgisayar (A)
ve hizmet konumu (SRV) kayıtları bulunmalı. Özellikle SRV kayıtlarının
bulunmadığına dikkat edin. Bu kayıtlar yoksa DC’deki (ya da
DC’lerdeki) Netlogon hizmetini yeniden başlatarak bu kayıtların
oluşmasını sağlayabiliriz.

HOSTS Dosyası
Internet’in ve TCP/IP’nin başından beri bilgisayar adları ile IP adreslerinin
hesabının bir şekilde tutulması zorunlu oldu.

1984’de çıkan DNS’den önce bu iş için HOSTS isminde bir metin dosyası
kullanıldı. Bilgisayarların adları (host adları; tam etki alanı adları) ve IP
adresleri bu metin dosyasına kaydedildi.

- 187 -
TCP/IP

Bir bilgisayarın host adı bilinip de IP adresi bilinmiyorsa bu dosyaya bakarak


IP adresi bulunabiliyordu.

DNS ile birlikte HOSTS dosyasının önemi azaldı ama yok olmadı. Halen
HOSTS dosyasından herhangi bir anda yararlanabiliriz. Hatta diğer bölümde
göreceğimiz gibi, bir bilgisayar ad-IP adresi çözümlemesi yaparken ilk önce
HOSTS dosyasına bakar, eğer orada bir bilgi yoksa DNS sunucuya gider.

Hem ad-IP çözümleme mekanizması, hem de kullanılan dosyanın adı tanıdık


geldi, değil mi? Bu çözüm NetBIOS adlarını çö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ış.

Internet ortamında HOSTS dosyasının önemi azaldı dedik. Üstelik anlamı olsa
bile Internet’te şu anda milyonlarca bilgisayar olduğu için bu bilgisayarların ad-
IP bilgilerini tek tek elle bu dosyaya kaydetmenin 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ı


\windows\system32\drivers\etc klasörü altında bulunur.

Aşağıda örnek bir HOSTS dosyası görüyorsunuz:

# Bu dosya kurumumuzdaki bilgisayarların


# adlarını ve IP adreslerini içerir.
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.

- 188 -
DNS

• HOSTS dosyası NetBIOS adlarını çözümlemek için de kullanılabilir.


Tabii, bunun için bilgisayar adlarının NetBIOS formatında yazılmış
olması gerekir (yani, adda etki alanı kısmı bulunmayacak, en fazla 15
karakter büyüklüğünde olacak şeklinde).
• Her kayıt en çok 255 karakter olabilir.
• HOSTS dosyasındaki adlar küçük-büyük harf duyarlı değildir.

Bazı virüsler ya da solucanlar, antivirüs programlarının kendilerini bulmalarını


engellemek için HOSTS dosyasına müdahale edip antivirüs üreticilerinin Web
sitelerine erişimini engelleyecek değişiklikler yapıyorlar. Örneğin, HOSTS
dosyasına www.symantec.com host adına karşılık 127.0.0.1 adresini giriyorlar.
Bunun sonucunda bilgisayarda yüklü antivirüs programı symantec’in sitesine
gidip dosyalarını güncelleştirmek istediği zaman bunu başaramıyor; çünkü
symantec’in sitesine gidemiyor. Bu türlü durumları denetleyip gerekirse
HOSTS dosyasını silmeniz gerekir. (HOSTS dosyası otomatik olarak gelir ama
çoğunlukla gerekli değildir.)

Ad Çözümleme Mekanizmaları Özeti


NetBIOS ve host adlarını IP adreslerine çevirme konusunda kullanabilecek
beş mekanizma var. Bunlar: Broadcast, WINS, LMHOSTS dosyası, HOSTS
dosyası ve DNS.

Peki, “ping murat4” komutunu verdiğimizde ya da “net view \\murat4”


komutunu verdiğimizde bilgisayar adları hangi yöntemlerle ve hangi sırayla IP
adresine çevriliyor?

Kullanılacak olan yöntemi uygulamanın cinsi belirliyor. TCP/IP’nin yapısını


anlatırken uygulama katmanında kullanılabilecek iki spesifikasyondan söz
etmiştik: Winsock ve NetBIOS.

Eğer bir uygulama Winsock spesifikasyonuna uygun yazılmışsa ad-IP


çözümlemesi şu sırayla gerçekleşir:

1. HOSTS Dosyası
2. DNS
3. WINS
4. Broadcast
5. LMHOSTS

- 189 -
TCP/IP

Yani, bir isme karşılık gelen IP’yi bulmak için ilk ö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 ad-IP çözümlemesi şu sırayla gerçekleşir:

1. WINS
2. HOSTS
3. DNS
4. Broadcast '
5. LMHOSTS

Şimdi yukarıda ö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 ad-IP çözümleme yöntemlerini kullanırlar.

- 190 -
9
Bilgisayar Tarama Hizmeti

Ağ çapında paylaşıma sunulan kaynaklardan verimli bir şekilde


yararlanabilmek için ortamda hangi bilgisayarların bulunduğunu, bu
bilgisayarlarda hangi kaynakların paylaşıma açık olduğunu görebilmek gerekir.
Bu işi de Browser (Tarama) hizmeti yapar.

Ağ Bağlantılarım (My Network Places) simgesine tıkladığımızda karşımıza NT-


2000-2003 etki alanlarının, çalışma gruplarının (workgroup) ve tek tek
bilgisayarların çıkmasını sağlayan işte bu bilgisayar tarama hizmetidir.

Bilgisayar tarama hizmeti bazı bilgisayarları tarayıcı (browser) olarak atar.


Tarayıcı 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 Ana Tarayıcı (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:

1. Windows 2003
2. Windows XP
3. Windows 2000
4. Windows NT 4.0
5. Windows ME
6. Windows 98
7. Windows 95

Gördüğünüz gibi burada baş seçim ölçütü işletim sisteminin sürümü. Bu


yüzden Windows XP işletim sistemine sahip bir makine, Windows 2000 Server
işletim sistemine sahip bir makineden daha avantajlı.

- 191 -
TCP/IP

Tarayıcı seçimi, ortamda bulunan her ağ protokolü için ayrı ayrı yapılır. Yani,
ortamda TCP/IP, NetBEUI, IPX/SPX gibi üç protokol varsa tarayıcı seçimi bu
üç protokolün her birinde yapılır. Tek başına bu bile bir ağda birden fazla
protokol kullanmamak için iyi bir neden, değil mi?

Ana tarayıcı seçimi yalnızca bilgisayarlar ilk açıldıklarında yapılmaz. Şu


durumlarda da seçime gidilir:

• Ana tarayıcı yasal yollardan kapatılırsa (kapat-shutdown şıkkı ile)


• Bir bilgisayar açıldığında ortamdaki ana tarayıcının kendisinden daha
aşağı özelliklere sahip olduğunu görürse
• Registry’deki MaintainServerList parametresi “yes” yapılmış bir
bilgisayar açılırsa (DC’lerde bu parametre hep “yes” şeklindedir.

Seçim sonucunda seçilen ana tarayıcı seçime katılan diğer bilgisayarlara


bakar ve her 15 bilgisayar için bir yedek tarayıcı (backup browser) atar. Yedek
tarayıcılar 15 dakikada bir ellerindeki listeyi ana tarayıcıdan güncellerler (Bu
15 sayısının bir kerameti mi var acaba?)

Peki, ana tarayıcı elindeki listeyi nasıl oluşturur?

Ortamdaki bilgisayarlar periyodik olarak kendilerini anons ederler: “Adım


MUHASEBE, ben bir NT server’ım”, “adım SATIS ben bir workstation’im” gibi.

Anons aralığı 12 dakikadır. Bu anonslar bilgisayarların kullandığı her bir ağ


protokolü için ayrı ayrı tekrarlanır. (Aynen hava alanlarında Türkçe, İngilizce,
Almanca, Fransızca tekrarlanan anonslar gibi. Bu da tek protokol kullanmak
için başka bir neden.)

Eğer etki alanımız yönelticiler ile ayrılmış birden fazla bölüm kapsıyorsa her
bölümde bir adet ana tarayıcı seçilir. Etki alanı çapında tarama listelerini
birleştirmek için de bir etki alanı ana tarayıcısı seçilir. Etki alanı ana tarayıcısı
her zaman o etki alanındaki DC’lerden birisidir.

Ana tarayıcı hem kendi etki alanındaki bilgisayarların listesini, hem de diğer
etki alanlarının ya da çalışma gruplarının (workgroup) listesini tutar, istemciler
bu sayede ana tarayıcıdan hem kendi etki alanlarına ilişkin bilgileri, hem de
ortamdaki diğer etki alanları ya da çalışma gruplarına ilişkin bilgi alabilirler.

Ana tarayıcı belli aralıklarla bir mesaj yayınlar ve bu mesajda ana tarayıcı
olarak ayakta bulunduğunu bildirir. Eğer bu mesaj yayınlanmazsa ana
tarayıcının ayakta olmadığına karar verilir ve yeni ana tarayıcıyı seçmek üzere
seçim yapılır.

- 192 -
Bilgisayar Tarama Hizmeti

Yedek tarayıcılar belli aralıklarla ana tarayıcıya başvurup elindeki listeyi


kendilerine aktarırlar.

Bilgisayar tarama listesi hazırlandıktan ve yedek tarayıcılara da aktarıldıktan


sonra istemcilere tarama hizmeti verilmeye başlanabilir. Bu da şu şekilde olur:

1. Bir kullanıcı Ağ Bağlantılarım’a, bilgisayar ana tarayıcıya başvurur.


2. Ana tarayıcı isteği bir yedek tarayıcıya yönlendirir.
3. İstemci bilgisayar, yedek tarayıcıya başvurur.
4. Yedek tarayıcı, tıklanan etki alanındaki ya da çalışma grubundaki
bilgisayarların listesini verir.
5. İstemci bu listeden bir bilgisayara tıklarsa o bilgisayara ulaşıp
paylaşımdaki kaynaklarını gösteren listeyi alabilir.

Tarama hizmeti trafiği yayınlara (broadcast) dayandığı için yönelticilerden


geçemez.

Yönelticiler ile ayrılan ağ bölümlerinden (segment) oluşan bir ağda tüm


bilgisayarları görmek için WINS mekanizmasını kullanmak gerekir. Ana
tarayıcılar listelerini hazırlarken WINS’e başvurup ondaki bilgilerden
yararlanırlar.

Bir bilgisayarın ana tarayıcı olması aslında o bilgisayara ek bir yük getirecektir
(çok fazla olmayan bir yük). Eğer performans yönünden ek yük getirmek
istemediğimiz bilgisayarlar varsa bu bilgisayarların tarayıcı seçimlerine
girmelerini engelleyebiliriz (tarama yükü fazla olmadığı için çoğunlukla
gerekmez). Bu bilgisayarlar seçime girmeyecekleri için seçilme şansları da
kaybolur.

Bir bilgisayarın ana tarayıcı seçimlerine katılmasını engellemek için:

Windows 95-98-Me’de Control Panel/Networks/File and Printer


Sharing for Microsoft Networks seçilecek. Özelliklerine geçilecek.
Browse Master parametresi Disabled yapılacak.

Windows NT-2000-XP-2003’de aşağıdaki Kayıt Defteri (Registry) adresine


gidilecek.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Browser
\Parameters

Bu adresteki MaintainServerList parametresi “no” yapılacak.

- 193 -
10
SNMP:
Basit Bir Ağ Yönetim Protokolü

SNMP (Simple Network Management Protocol), 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önelticiler (router)


ve köprüler (bridge), daha yeni zamanlarda da anahtarlar (switch) önem
kazanmaya başlamıştır. Bununla birlikte yönelticinin ya da anahtarın sağlıklı
çalışıp çalışmadığını izlemek, bu işi de özellikle uzaktan yapmak zorunlu
duruma gelince SNMP yaratılmıştır.

SNMP ile örnek olarak bir yönelticinin sabit diskinin dolup dolmadığını, bir
portu, üzerindeki trafik miktarını vb. izleyebiliriz.

SNMP, bu başlangıç amaçlarının yanı sıra şu anda, ağdaki hemen her şeyi,
yazılım unsurları da dâhil olmak üzere, izleyebilmektedir. Örneğin, DHCP
sunucunun kaç bilgisayara IP adresi dağıttığını ya da WINS sunucuya kaç
bilgisayarın ad/IP 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.
Örnek olarak HP firmasının OpenView yazılımını, IBM firmasının Tivoli
yazılımını verebiliriz. Bu yazılımlar çok pahalıdır (on binlerce dolar değerinde).

SNMP ajanları ise kendilerine sorulduğu zaman ya da önceden belirlenmiş


olaylar gerçekleştiğinde SNMP parametrelerini yönetici sistemlere bildirirler.

Windows 2003 yüklü bir makine SNMP ajanı olarak çalışabilir. Microsoft’un bir
SNMP yönetim sistemi yoktur. Microsoft dışındaki firmalardan SNMP yönetim
sistemi satın alabilirsiniz.

- 195 -
TCP/IP

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 bildirir. Örneğin, yöneltici
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.

Yukarıda 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 içinde toplarlar.
Firmalar dışında Internet organları da standart ürünler için YBT’ler oluşturur.
SNMP yönetim sistemleri bu YBT’leri toplarlar, böylece ilgili aygıtları ya da
yazılımları SNMP ile yönetebilir olurlar. Bir SNMP yönetim sistemi ne kadar
fazla YBT tanırsa o kadar iyi olur.

Windows 2003’de şu YBT’ler bulunmaktadır:

• Admission Control Service (QOS ACS) MIB


• RADIUS-ACC-Server-MIB
• RADIUS-AUTH-Server-MIB.
• Microsoft Dynamic Host Configuration Protocol (DHCP) Server
MIB

- 196 -
SNMP: Basit Bir Ağ Yönetim Protokolü

• Microsoft File Transfer Protocol (FTP) MIB


• HOST MIB
• Microsoft Hypertext Transfer Protocol (http) MIB
• IGMPv2 MIB
• Internet Protocol (IP) Forwarding Table MIB
• Local area network (LAN) Manager MIB-II
• IP Multicast Routing MIB
• Internet MIB II
• Microsoft Internetwork Package Exchange (IPX) MIB
• Microsoft IPX Routing Information Protocol (RIP) and Service
Advertising Protocol (SAP) MIB
• Novell IPX MIB
• Microsoft BOOTP for Internet Protocol MIB
• Microsoft IP RIPv2 MIB
• Nortel Networks Open Shortest Path First (OSPF) MIB
• Microsoft Windows Internet Name Service (WINS) MIB
• Simple Management Information MIB

Şimdi kısaca bu YBT’lerin bazılarında 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 kayıt edilen


NetBIOS ismi/IP eşleme sayısı, başarılı bir şekilde yanıtlanan ad/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ı

- 197 -
TCP/IP

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.

Internet MIB Il’nin nesne adı ve numarası ise

Iso.org.dod.internet.management,mibii 1.3.6.1.2.1 şeklindedir.

Hem LAN Manager MIB II’de, hem de Internet MIB Il’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) 1

Organization (org) 3

Department of Defense (ABD Savunma Bakanlığı, dod) 6

Internet 1

Directory Management Experimental Private

1 2 3 4

MIB II Enterprise

1 1

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, bin bir çeşit niyetle 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 topluluk (community) mantığıdır.

- 198 -
SNMP: Basit Bir Ağ Yönetim Protokolü

SNMP yönetim sistemi ile ajanlar bir topluluk oluştururlar. Ajanlar yalnızca
kendi topluluklarından gelen sorgulama isteklerine karşılık verirler.

SNMP toplulukları topluluk adları ile belirlenirler.

Bir SNMP ajanı birden fazla SNMP topluluğunun üyesi olabilir. SNMP ajanı
programının özelliğine göre ajan, hangi topluluktan gelirse gelsin bütün SNMP
komutlarına uyacak şekilde de düzenlenebilir.

Aşağıdaki şekilde bilgisayarlar iki ayrı topluluk olarak düzenlenmiş durumda:

Topluluk adı Anadolu olan bilgisayarların trap sorumlusu YON1 bilgisayarı.


Topluluk adı Rumeli olan bilgisayarların trap sorumlusu ise YON2 bilgisayarı.
Bu durumda BİL1 ve BİL4 adındaki bilgisayarlardaki SNMP ajan hizmeti
YON1’den gelen sorgulamalara yanıt verir ve trap durumlarını ona bildirir.
BİL2 ve BİL3 bilgisayarlarındaki SNMP ajan hizmeti ise YON2’den gelen
sorgulamalara yanıt verir ve trap durumlarını ona bildirir.

SNMP hizmetinde bilgiler UDP paketleri şeklinde taşınır.

Bilgiler UDP gibi güvensiz bir protokol ile taşındığı ve topluluk adı ç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 ve Yönetimi


SNMP hizmeti Denetim Masasındaki Program Ekle-Kaldır, Windows
Bileşenlerini Ekle/Kaldır, Yönetim ve İzleme Araçları kısmında kurulur. Bu
başlık altından “Basit Ağ Yönetimi İletişim Kuralları” öğesi seçilir. Bu öğe
kurulduğunda bilgisayarda “SNMP Hizmeti” adında bir hizmet oluşturulur.
SNMP hizmetinin yapılandırılması bu hizmetin üzerindeki “Aracı” ve
“Tuzaklar” sekmelerinden yapılır.

SNMP hizmetinin özelliklerine ulaşmak için Yönetimsel Araçlar’ın altındaki


Hizmetler konsolunu açıyoruz. Konsoldan “SNMP Hizmeti”ne çift tıklıyoruz ve
önce Tuzaklar sekmesine geçiyoruz.

- 199 -
TCP/IP

Şekil 10.2:
SNMP
Hizmeti'nin
üzerinde
Tuzaklar
sekmesi.

Yukarıdaki şekilde topluluk adı ya da adlarının belirtilebileceği bir alan var.


Buraya sistemimizde kullanılan topluluk adlarını yazacağız. SNMP
hizmetinden yararlanmıyorsak herhangi bir topluluk adı yazmıyoruz (hatta öyle
bir durumda SNMP hizmetini hiç kurmamak daha iyi olur).

Tuzak hedefleri alanına SNMP yönetim sistemi programının yüklü olduğu


bilgisayar ya da bilgisayarları yazıyoruz (adlarını ya da IP adreslerini).

Aracı sekmesinde SNMP hizmetinin verilmesini düzenleyen ayarlar var.

- 200 -
SNMP: Basit Bir Ağ Yönetim Protokolü

Şekil 10.3:
SNMP
Hizmeti'nin
Aracı sekmesi.

Yukarıdaki şekilde Yetkili Kişi alanına SNMP’den sorumlu kişinin bilgisini (ad-
soyad) yazıyoruz. Konumu alanına ilgili kişinin adres bilgisini yazıyoruz. SNMP
yönetim sistemleri bu parametreleri de sorgulayabiliyorlar.

Aşağıda ise bu bilgisayarın sağladığı hizmetlerle ilgili denetim kutuları var.

Fiziksel: Bu kutunun seçili olması bu bilgisayarın bir ya da birkaç donanımsal


öğeye sahip olduğunu belirtir (sabit disk, ağ kartı gibi).

Uygulamalar: Bu kutunun seçili olması bu bilgisayarda TCP/lP’yi kullanarak


veri alışverişi yapan uygulamalar bulunduğunu gösterir.

Veri bağlantısı ve alt ağ: Bu bilgisayarda bir köprü (bridge) aygıtının


bulunduğunu gösterir.

Internet: Bu bilgisayarın bir yöneltici olarak çalıştığını gösterir.

Sıra ile: Bu yanlış çeviri kurbanı parametre (doğrusu “uçtan uca” olmalıydı) bu
bilgisayarda bir IP adresinin bulunduğunu gösterir.

- 201 -
11
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 makine gerekir. FTP sunucuda bir FTP
sitesi oluşturulur. FTP istemciler bu siteye ulaşıp dosya çekebilirler ya da
dosya yükleyebilirler.

Windows 2003’de Internet Information Services içinde FTP sunucu öğesi


bulunur. Bu öğeyi yüklediğimizde bir FTP sitesi de yaratılır.

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 tarayıcı program (browser) da kullanılabilir.

Örneğin, kurum içi ağımızda LKSUNUCU adında bir bilgisayarda FTP sunucu
öğesi yüklü, bir FTP sitesi var diyelim. Bu siteye ulaşmak için tarayıcı
programda adres kutusuna ftp://LKSUNUCU yazmamız yeterli olacaktır (ya da
bilgisayarın host adını ya da IP adresini de yazabiliriz). 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.

- 203 -
TCP/IP

Şekil 11.1: FTP sitesine bir tarayıcı ile erişim.

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: FTP sitesine komut satırından FTP.EXE programı ile erişim.

Burada “open 192.168.0.130” komutu ile 192.168.0.130 adresindeki ftp


sitesine ulaşabiliriz. Siteyle bağlantı kurulduğunda bizden kullanıcı adı ve
parolası soruluyor. Kullanıcı adı olarak “anonymous" ya da “ftp” ifadesini
giriyoruz. Her iki ifade de bizim kimliği belirsiz (anonymous) olarak giriş
yapmamızı sağlıyor. Parola ise girmiyoruz.

Dünyadaki FTP sitelerinin hemen hepsine anonymous kullanıcı adı ile


ulaşılabilir. Çünkü FTP güvensiz bir protokoldür: Girilen ad ve parolalar
şifrelenmeden (kriptolanmadan), ASCII veri olarak taşınır. Bu yüzden FTP
sitelerine girilirken çoğunlukla gerçek ad ve parolalar kullanılmaz.

Bu ortamda open komutunun yanı sıra verebileceğimiz diğer komutlar şu


şekilde sıralanıyor:

- 204 -
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 (tabii yazma iznimiz varsa).

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’de dir komutu.

Gördüğünüz gibi bir ftp sitesine ulaşıp dosya çekmenin en iyi yolu komut
satırını değil tarayıcı programları kullanmaktır.

TELNET
Telnet ile bir bilgisayar sistemine uzaktan bağlanıp o sistemin bir terminaliymiş
gibi çalışabilirsiniz. Hepimizin çok sık kullandığı Uzak Masaüstü bağlantısının
komut satırından yapılanı diye düşünebilirsiniz.

Telnet sistemi sunucu ve istemci öğelerden oluşur. Telnet istemci ile telnet
sunuculara bağlanıp sanki o makinelerin başındaymış gibi çalışabilirsiniz.
Telnet istemci programı Microsoft’un bütün işletim sistemlerinde bulunur ama
telnet sunucu programı yalnızca Windows 2000 ve 2003 sunucu sürümlerinde
bulunmaktadır.

- 205 -
TCP/IP

Microsoft Win2K öncesi sistemlerinde bir telnet sunucu programını varsayılan


olarak sağlamıyor. Kuramsal olarak TCP/IP yüklü her makine bir telnet sunucu
olabilir. Internet’ten yapacağınız bir araştırmayla Windows 95 de dâhil olmak
üzere çeşitli işletim sistemlerine yüklenebilecek çeşitli telnet sunucu
programlarını da bulabilirsiniz.

Windows 2000 öncesi sistemlerde bulunan telnet istemci yazılımı grafik


kullanıcı arayüzüne sahipti. Çalışılması zevkli bir şeydi. Windows 2000
sonrasındaysa, nedendir bilinmez, telnet istemcisi komut satırından çalışır
oldu. Microsoft’un çalışma ortamının hep kolay ve görsel olmasına alışan
bizler için hiç de hoş bir şey değil bu...

Neyse, konumuza dönelim. Şimdi iki örnekle telnet’in çalışmasını göreceğiz.


Birinci örnekte, telnet sunucu hizmeti çalışır durumda olan bir Windows 2003
sunucuya bağlanacağız ve bazı yönetimsel işlemleri gerçekleştireceğiz. İkinci
örnekte ise telnet ile bir e-posta sunucusuna bağlanacağız ve postalarımızı
göreceğiz. Bu iki örnekte de Windows 2003 işletim sistemine sahip makineleri
kullanıyoruz ama diğer sistemlerden de benzer şekillerde bağlanabiliriz.

Öncelikle bir Windows 2003 sunucuda telnet sunucu hizmetini başlatalım.


Yönetimsel Araçlar’daki Hizmetler konsolundan Telnet hizmetine bakarsak
bu hizmetin başlangıçta Devre Dışı olduğunu görürüz. Yani, bu hizmet
Windows 2003 açılırken başlamaz. Hizmetin üzerinde Başlangıç türü
alanından “Otomatik” şıkkını seçiyoruz ve o pencerede Uygula düğmesine
basıyoruz. Sonra da Başlat düğmesine basarak hizmeti başlatıyoruz.

Dikkat! Bu hizmeti yalnızca nasıl bir şey olduğunu görmek için başlatıyoruz.
Normalde kullanmayacaksak başlatmasak (Devre Dışı kalsa) daha iyi olur.
Yalnızca uzaktan bağlanmanız gerektiğinde hizmeti elle başlatın, işiniz bitince
de hizmeti durdurun. Böylesi daha güvenli olur.

Hizmeti kullanıma açtığımıza göre şimdi örneklerimizi yapabiliriz.

Örnek 1:
Telnet ile Bir E-posta Sunucusuna Bağlanma
Windows 2003 işletim sistemine sahip bir makinede komut satırından “Telnet
anamakine.anadolu.com 110” komutunu girelim ve bu adreste yer alan bir
Exchange Server'a erişelim.

Bu komutu girdiğinizde Şekil 11.4’deki gibi bir ortamla karşılaşacaksınız:

- 206 -
FTP ve Telnet

Şekil 11.4: Bir e-posta sunucusuna telnet ile bağlandığımızda aldığımız mesaj.

Yukarıdaki mesaj POP3 sunucuya başarılı bir şekilde bağlandığınızı gösterir.


Bu mesaj POP3 sunucunuzun çalıştığının da bir göstergesidir.

POP3 sunucusuna bağlandıktan sonra yapılması gereken şey sunucuya


oturum açmaktır. Bunun için user ve pass komutlarını kullanıyoruz. Önce
“user murat” komutunu verelim ve Enter tuşuna basalım. Aşağıdaki şekil ile
karşılaşırız.

Şekil 11.5: POP3 sunucuya kullanıcı adının belirtilmesi.

User komutundan sonra pass komutunu vererek oturumumuzu açalım


(pass’den sonra bir boşluk bırakıp parolayı giriyoruz, Enter'a basıyoruz). Eğer
doğru bilgileri girmişsek “User successfully logged on” şeklinde bir mesaj
alacağız.

Şimdi posta kutumuzdaki mesajların listesini görmek için list komutunu


verelim. Bu durumda mesajlar birden başlayarak numaralandırılmış bir şekilde
listelenecektir.

- 207 -
TCP/IP

Şekil 11.6: POP3 sunucudaki mesajlarımızın listelenmesi.

Her bir mesajın yanında mesajın büyüklüğünü de görebiliriz. Örneğin üçüncü


mesaj 1595 Bayt büyüklüğünde.

Listelenen mesajlardan birisini okumak istiyorsak retr komutunu veriyoruz.


Retr komutunun yanına okumak istediğimiz mesajın numarasını veriyoruz.

Şekil 11.7: Telnet içinden bir mesajın görüntülenmesi.

- 208 -
FTP ve Telnet

Bu komuta karşılık aldığımız yanıtın anlaşılırlığının düşük olduğuna dikkat


ediniz. Dikkat edilecek bir başka şey de mesajın HTML belgesi olarak
saklanmasıdır. Modern e-posta yazılımları mesajların içeriğini artık HTML
formatında tutmaktadırlar. Bu ekranda Türkçe karakterlerin görüntülenmesinde
sorun olduğuna da dikkat ediniz. Yine de Subject kısmına baktığımızda
mesajın konusu anlaşılabiliyor.

Dele komutunu kullanarak da istediğimiz bir mesajı silebiliriz. Örneğin “dele 3”


komutu 3 nolu mesajı silecektir.

İşimiz bittiğinde “exit” komutuyla telnet oturumunu kapatıp bağlantımızı


kesebiliriz.

Telnet kullanımı mantıksız gelebilir. Ama ben bazı durumlarda telnetten çok
yararlanıyorum. Örneğin, bazen birisi büyük bir mesaj yollamış olabiliyor ve
ISP’den bu mesaj bir türlü indirilemiyor. Bu mesaj alınamayınca ondan sonra
gelen ve büyük olasılıkla küçük, sorunsuz olan mesajlar da alınamıyor. Bu
türlü durumlarda telnet ile posta sunucuma bağlanıyorum, mesajların listesini
alıyorum, mesaj alımını tıkayan mesajı saptıyorum, retr komutunu vererek
bu mesajın kimden geldiğini ve konusunun ne olduğunu anlamaya
çalışıyorum. Eğer mesaj önemsizse (genelde öyle oluyor) dele komutuyla
mesajı siliyorum. Sonra da Outlook ya da Outlook Express ile mesajlarımı
tekrar almaya başlıyorum.

Örnek 2:
Telnet ile Windows 2003 Sunucuya Bağlanma
Bir Windows 2003 işletim sistemine sahip makinede komut satırına inelim ve
şu komutu verelim:

telnet 192.168.0.130 23

Yukarıdaki komutta 192.168.0.130 ifadesi bağlanmak istediğimiz sunucunun


IP adresi. Bu ifadenin yerine bilgisayarın adını da (lksunucu.anadolu.com gibi)
yazabilirsiniz.

Yine yukarıdaki komutta 23 ifadesi de karşı sunucunun 23 nolu portuna


bağlanmak istediğimizi gösteriyor. Bu port yönetim portudur. Bu porttan
bilgisayarlara, yönelticilere vb. aygıtlara bağlanıp yönetim işleri yapılır. Bu
komutu verecek kişinin karşı makine üzerine yönetim yetkilerine sahip birisi
olması da gerekir... (En azından o makinedeki Telnetclients grubuna üye
olması gerekir.)

- 209 -
TCP/IP

Her şey yolundaysa karşı bilgisayarın komut satırı ortamına geçiyoruz. Komut
satırı penceresinin başlığı karşı bilgisayara bağlandığımızı bildirecek şekilde
değişiyor. Bu ortamdan, sanki o makinenin başındaymış gibi işlem yapabiliriz.
Örneğin, o bilgisayarda bulunan ve mesaj alımını sağlayan Messenger
hizmetini durduralım. Vereceğimiz komut şu şekilde olacaktır:

Net stop Messenger

Sonra da aşağıdaki komutu vererek Messenger hizmetini başlatalım:

Net start Messenger

Şimdi karşı bilgisayarın ağında bulunan bir makineyi PING’leyelim:

Ping 192.168.0.1

Yukarıda verdiğimiz komutları ve çıktılarını aşağıdaki şekilde görebilirsiniz.

Şekil 11.8: Telnet ortamında verdiğimiz ve karşı bilgisayarda çalışan komutlar.

İşimiz bittiğinde “exit” komutuyla telnet oturumunu kapatıp bağlantımızı


kesebiliriz.

Bu komutlar çok sıradan komutlar gibi düşünülebilir. Ama burada önemli olan
bu komutların fiilen karşı bilgisayar üzerinde işletiliyor olmasıdır. Biz telnet
yardımı ile sanki o bilgisayarın başındaymış gibi işlem yapıyoruz; karşı
bilgisayarın hizmetlerini açıp kapatıyoruz, o bilgisayardan başka bilgisayarlara
PING atıyoruz. Üstelik bu komutları son derece düşük bant genişliğine sahip
bağlantılarda bile kullanabiliriz. Telnet ortamı karakter temelli bir ortam olduğu
için yüksek bir bant genişliği gerektirmiyor. Benzer işlemleri Windows 2003
Terminal Services ya da Norton’un PCAnywhere programıyla, grafik

- 210 -
FTP ve Telnet

ortamlardan gerçekleştirebilirsiniz ama bu programlar hızlı bir bağlantı


gerektirirler.

Telnet ile bağlandığınızda yalnızca komut satırından çalışan programları


çalıştırmalısınız. Grafik arayüzlü programları çalıştırmak istediğinizde hata
mesajı almazsınız ama programı göremezsiniz. Peki, bu tür programlar ne
olur? Karşı bilgisayarda arka planda çalışmaya devam ederler. O makinedeki
Task Manager programıyla bu programların çalıştığını görebiliriz, onları
kapatabiliriz. Ama kapatmazsak programlar boşu boşuna arka planda
çalışmaya devam ederler.

- 211 -
12
RFC Listesi

RFC 768: User Datagram Protocol


RFC 791: Internet Protocol
RFC 792: Internet Control Message Protocol
RFC 793: Transmission Control Protocol
RFC 821: Simple Mail Transfer Protocol
RFC 822: Standard for the format of ARPA Internet text messages
RFC 826: An Ethernet Address Resolution Protocol
RFC 850: Standard for interchange of USENET messages
RFC 854: Telnet Protocol Specification
RFC 855: Telnet Option Specifications
RFC 856: Telnet Binary Transmission
RFC 857: Telnet Echo Option
RFC 858: Telnet Suppress Go Ahead Option
RFC 859: Telnet Status Option
RFC 860: Telnet Timing Mark Option
RFC 861: Telnet Extended Options: List Option
RFC 894: Standard for the transmission of IP datagrams over Ethernet net
works
RFC 896: Congestion control in IP/TCP internetworks
RFC 903: Reverse Address Resolution Protocol
RFC 919: Broadcasting Internet Datagrams
RFC 922: Broadcasting Internet datagrams in the presence of subnets
RFC 950: Internet Standard Subnetting Procedure
RFC 951: Bootstrap Protocol
RFC 959: File Transfer Protocol

- 213 -
TCP/IP

RFC 974: Mail routing and the domain system


RFC 977: Network News Transfer Protocol
RFC 1034: Domain names - concepts and facilities
RFC 1035: Domain names - implementation and specification
RFC 1042: Standard for the transmission of IP datagrams over IEEE 802 net
works
RFC 1058: Routing Information Protocol
RFC 1072: TCP extensions for long-delay paths
RFC 1112: Host extensions for IP multicasting
RFC 1122: Requirements for Internet Hosts - Communication Layers
RFC 1123: Requirements for Internet Hosts - Application and Support
RFC 1144: Compressing TCP/IP headers for low-speed serial links
RFC 1155: Structure and identification of management information for TCP/IP-
based internets
RFC 1157: Simple Network Management Protocol (SNMP)
RFC 1212: Concise MIB definitions
RFC 1213: Management Information Base for Network Management of
TCP/IP-based internets:MIB-II
RFC 1321: The MD5 Message-Digest Algorithm
RFC 1323: TCP Extensions for High Performance
RFC 1332: The PPP Internet Protocol Control Protocol (IPCP)
RFC 1334: PPP Authentication Protocols
RFC 1350: The TFTP Protocol (Revision 2)
RFC 1421: Privacy Enhancement for Internet Electronic Mail: Part I: Message
Encryption and Authentication Procedures
RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II:
Certificate-Based Key Management
RFC 1423: Privacy Enhancement for Internet Electronic Mail: Part III:
Algorithms, Modes, and Identifiers
RFC 1424: Privacy Enhancement for Internet Electronic Mail: Part IV: Key
Certification and Related Services
RFC 1441: Introduction to version 2 of the Internet-standard Network
Management Framework

- 214 -
RFC Listesi

RFC 1445: Administrative Model for version 2 of the Simple Network


Management Protocol (SNMPv2)
RFC 1446: Security Protocols for version 2 of the Simple Network
Management Protocol (SNMPv2)
RFC 1447: Party MIB for version 2 of the Simple Network Management
Protocol (SNMPv2)
RFC 1451: Manager-to-Manager Management Information Base
RFC 1452: Coexistence between version 1 and version 2 of the Internet-
standard Network Management Framework
RFC 1510: The Kerberos Network Authentication Service (V5)
RFC 1519: Classless Inter-Domain Routing (CIDR): an Address Assignment
and Aggregation Strategy
RFC 1521: MIME (Multipurpose Internet Mail Extensions) Part One:
Mechanisms for Specifying and Describing the Format of Internet
Message Bodies
RFC 1522: MIME (Multipurpose Internet Mail Extensions) Part Two: Message
Header Extensions for Non-ASCII Text
RFC 1583: OSPF Version 2
RFC 1630: Universal Resource Identifiers in WWW: A Unifying Syntax for the
Expression of Names and Addresses of Objects on the Network as
used in the World-Wide Web
RFC 1657: Definitions of Managed Objects for the Fourth Version of the
Border Gateway Protocol (BGP-4) using SMIv2
RFC 1661: The Point-to-Point Protocol (PPP)
RFC 1700: Assigned Numbers
RFC 1725: Post Office Protocol - Version 3
RFC 1737: Functional Requirements for Uniform Resource Names
RFC 1738: Uniform Resource Locators (URL)
RFC 1771: A Border Gateway Protocol 4 (BGP-4)
RFC 1772: Application of the Border Gateway Protocol in the Internet
RFC 1773: Experience with the BGP-4 protocol
RFC 1774: BGP-4 Protocol Analysis
RFC 1808: Relative Uniform Resource Locators
RFC 1812: Requirements for IP Version 4 Routers

- 215 -
TCP/IP

RFC 1813: NFS Version 3 Protocol Specification


RFC 1831: RPC: Remote Procedure Call Protocol Specification Version 2
RFC 1832: XDR: External Data Representation Standard
RFC 1833: Binding Protocols for ONC RPC Version 2
RFC 1850: OSPF Version 2 Management Information Base
RFC 1866: Hypertext Markup Language - 2.0
RFC 1877: PPP Internet Protocol Control Protocol Extensions for Name
Server Addresses
RFC 1889: RTP: A Transport Protocol for Real-Time Applications
RFC 1890:RTP Profile for Audio and Video Conferences with Minimal Control
RFC 1902: Structure of Management Information for Version 2 of the Simple
Network Management Protocol (SNMPv2)
RFC 1903: Textual Conventions for Version 2 of the Simple Network
Management Protocol (SNMPv2)
RFC 1904: Conformance Statements for Version 2 of the Simple Network
Management Protocol (SNMPv2)
RFC 1905: Protocol Operations for Version 2 of the Simple Network
Management Protocol (SNMPv2)
RFC 1906: Transport Mappings for Version 2 of the Simple Network
Management Protocol (SNMPv2)
RFC 1907: Management Information Base for Version 2 of the Simple
Network Management Protocol (SNMPv2)
RFC 1942: HTML Tables
RFC 1945: Hypertext Transfer Protocol -- HTTP/1.0
RFC 2065: Domain Name System Security Extensions
RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1
RFC 2131: Dynamic Host Configuration Protocol
RFC 2136: Dynamic Updates in the Domain Name System (DNS UPDATE)
RFC 2137: Secure Domain Name System Dynamic Update
RFC 2205: Resource ReSerVation Protocol (RSVP) -- Version 1 Functional
Specification
RFC 2400: Internet Official Protocol Standards

- 216 -
13
Kendimizi Sınayalım

1. Size verilen ağ adresi 165.247.200.0/24. Bu ağı parçalayıp 16 yeni


ağ yaratmak istiyoruz. Yeni ağlarda kullanacağımız yeni subnet
maskemiz ne olmalıdır?

2. Donanım adresini bulmak için hangi protokolü kullanırız?


a- Arp
b- Wins
c- Dhcp
d- Dns
3. 123 sayısının ikilik düzendeki karşılığı nedir?

4. Bir makinanın IP yapılandırmasını görmek için hangi komutu


kullanırsınız?
a- Ping
b- İpconfig
c- Finger
d- Tracert
5. WINS ne yapar?
a- Host adını IP adresine çevirir,
b- IP adresini MAC adresine çevirir,
c- NetBIOS adını IP adresine çevirir,
d- NetBIOS adını adresini çevirir.
6. DNS ne yapar?
a- NetBIOS adını IP adresine çevirir,
b- Host adını IP adresine çevirir,
c- IP adresini MAC adresine çevirir,
d- NetBIOS adını MAC adresine çevirir.

- 217 -
TCP/IP

7. DHCP ne yapar?
a- NetBIOS adını IP adresine çevirir,
b- Host adını IP adresine çevirir,
c- IP adresini MAC adresine çevirir,
d- NetBIOS adını MAC adresine çevirir.
8. Hangisi güvenli iletim sağlar?
a- arp
b- udp
c- icpm
d- tcp
9. 01110001 . 01111001 . 01010111 . 10101100 sayısını onluk düzene
çeviriniz?
10. DHCP istemci ne zaman adresini yenilemek için başvuru yapar?
a- Kira süresinin bitiminde
b- Kira süresinin bitiminden iki gün sonra
c- Kira süresinin yarısı bittiğinde
d- IP adresi kiralanmaz, satın alınır. Dolayısıyla yenilemeye gerek
yoktur.
11. Bir DHCP istemci IP adresi isteğinde bulunuyor ama DHCP
serverda IP adresi kalmamış. Ne olur?
a- İstemci özel bir ağ adresinden rastgele bir IP adresi alır ve ağa
girer,
b- İstemci diğer DHCP sunucuları öğrenmek için WINS sunucuya
başvurur.
c- İstemci bir IP adresine sahip değildir. TCP/IP iletişimi sağlayamaz,
d- DNS sunucu bu istemciye bir IP adresi verir.
12. Ağım yönelticiler ile birbirinden ayrılmış 3 segmentten oluşuyor.
Bir segmentte DHCP sunucu kurulu. Bu sunucunun diğer
segmentlere de IP adresi dağıtımını nasıl sağlarım?
a- Diğer segmentlere WINS proxy agent kurmalı,
b- Diğer segmentlere de DHCP server kurmalı,
c- Diğer segmentlere DHCP relay agent kurmalı.
d- Diğer segmentlere hizmet veremeyiz. O segmentlerdeki
bilgisayarların IP adresleri statik verilmeli.

- 218 -
Kendimizi Sınayalım

13. DHCP server’dan alınan IP adresini serbest bırakmak için hangi


komut verilir?

14. Aşağıdaki çizime bakınız. 172.16.0.2 ve 172.16.0.3 IP adresine


sahip makineler 192.168.0.3 ve 192.168.0.4 IP adresine sahip
makineleri PING’leyebiliyorlar ama 192.168.0.1 IP adresini
PING’leyemiyorlar, dolayısıyla da Internet’e çıkamıyorlar. Sorun
nerede olabilir, ne yapmak gerekir?

- 219 -

You might also like