Professional Documents
Culture Documents
Murat Yldrmolu Her Ynyle Nternetin Altyaps TCP Ip
Murat Yldrmolu Her Ynyle Nternetin Altyaps TCP Ip
İnternetin Altyapısı
TCP/IP
MURAT YILDIRIMOĞLU
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
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.
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.
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
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.
-1-
TCP/IP
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 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:
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 Research Task Force (Internet Araştırma Görev Gücü): TCP/IP ile
ilgili araştırma projelerinden sorumludur.
-3-
TCP/IP
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.
• NetBEUI
• IPX/SPX
• TCP/IP
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.
-4-
TCP/IP’ye Giriş
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:
Ş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.
-5-
TCP/IP
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.
-6-
TCP/IP’ye Giriş
Yukarıdaki açıklama MAC adresi ile bilgisayar adı parametrelerine niye gerek
duyulduğunu ortaya koyuyor. Peki, aradaki IP adresini niçin kullanıyoruz?
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.
-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.
-8-
TCP/IP’ye Giriş
-9-
TCP/IP
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?
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.
- 10 -
TCP/IP’ye Giriş
- 11 -
3
TCP/IP'nin Yapısı
İletim
TCP UDP (Transport)
ARP
- 13 -
TCP/IP
- 14 -
TCP/IP’nin Yapısı
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.
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.
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
- 16 -
TCP/IP’nin Yapısı
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.
- 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?
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ı
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.
İ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.
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:
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ı
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.
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.
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.
HKEY_LOCAL_MACHİNE\SYSTEM \CurrentControlSet\Services\Tcpip\Parameters
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,
Bir adresi ARP kaşesine elle giriyorsak MAC adresinin her bir baytı tire ’-‘ ile
NOT
ayrılmalıdır.
- 22 -
TCP/IP’nin Yapısı
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:
- 23 -
TCP/IP
- 24 -
TCP/IP’nin Yapısı
Örnek:
Kaşedeki statik ya da dinamik bir kayıtı silmek için arp -d komutu verilir.
Komutun yazımı şöyledir:
Arp -d IP adresi
Arp -d 192.168.0.5
- 25 -
4
IP Adresleme
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
- 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.
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.
- 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.
İ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.
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).
Ş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ş.
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.
- 31 -
TCP/IP
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:
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:
- 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.
195.134.67.200 195.134.67.56
Subnet Maskesi: 255.255.255.0 Subnet Maskesi: 255.255.255.0
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
- 33 -
TCP/IP
195.134.67.56
VE 255.255.255.0
Sonuç: 195.134.67.0
Ş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
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.
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.
Sonuç: 195.134.0.0
- 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.
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.
- 36 -
IP Adresleme
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).
- 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.
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?
- 38 -
IP Adresleme
Ö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.
- 39 -
TCP/IP
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.
- 40 -
IP Adresleme
195.156.89.34
VE 255.255.255.224
195.156.89.32
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.
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.
- 41 -
TCP/IP
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
• 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.
- 43 -
5
IP Yönlendirme (Routing)
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.
- 45 -
TCP/IP
195.194.34.1 200.123.89.1
İ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.
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.
Bu durumda ne oluyor?
- 46 -
IP Yönlendirme (Routing)
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.
- 47 -
TCP/IP
- 48 -
IP Yönlendirme (Routing)
Soruyu Evet ile yanıtlayıp bitiriyoruz. Artık makinemiz bir yöneltici olmuştur.
- 49 -
TCP/IP
Ş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.
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
Ö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.
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.
- 51 -
TCP/IP
- 52 -
IP Yönlendirme (Routing)
203.56.78.1
Ş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.
- 53 -
TCP/IP
Yönelticilere daha genel yol bilgileri de girebiliriz. Örneğin, R1’e şöyle bir yol
bilgisi girilebilir:
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.
- 54 -
IP Yönlendirme (Routing)
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:
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:
Şekilde gördüğünüz gibi TTL değeri 128 olarak kalmış; çünkü bir yöneltici
geçmedik.
- 55 -
TCP/IP
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.
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)
- 57 -
TCP/IP
TRACERT komutu bir IP adrese ulaşırken kullandığımız yolu gösterir; yolu izler.
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.
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.
- 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.
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.
- 61 -
TCP/IP
- 62 -
DHCP
- 63 -
TCP/IP
Şekil 6.4:
DHCP sunucu
bir başka DHCP
sunucuyu saptıyor
ve duruyor.
- 64 -
DHCP
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.
- 65 -
TCP/IP
- 66 -
DHCP
- 67 -
TCP/IP
- 68 -
DHCP
- 69 -
TCP/IP
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.
Şekil 6.12:
WINS
sunucu ile
ilgili kısım.
- 70 -
DHCP
- 71 -
TCP/IP
- 72 -
DHCP
- 73 -
TCP/IP
- 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).
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.
- 75 -
TCP/IP
İ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.
Aşağıdaki şekilde ilk çerçevenin içeriğini daha ayrıntılı bir şekilde görüyoruz:
- 76 -
DHCP
- 77 -
TCP/IP
- 78 -
DHCP
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
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Para
meters\Interfaces\ağ kartını tanımlayan ifade
- 80 -
DHCP
Ç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):
- 81 -
TCP/IP
Ş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ışı.
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:
- 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.
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.
- 84 -
DHCP
- 85 -
TCP/IP
Ş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.
- 86 -
DHCP
- 87 -
TCP/IP
140 aralığında yer alıyor. 192.168.0.130 adresi halen bir makine tarafından
kullanılıyor.
- 88 -
DHCP
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.
- 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
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
Şekil 7.32:
Yönlendirme
protokollerinin listesi.
- 91 -
TCP/IP
- 92 -
DHCP
Ö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
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.
- 95 -
TCP/IP
kurtarmaya çalışır.
DHCP veritabanı her altmış dakikada bir otomatik olarak yedeklenir. Yedek
dosyaları \systemroot\SYSTEM32\DHCP\BACKUP\NEW klasöründe saklanır.
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.
- 96 -
DHCP
- 97 -
7
WINS
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.
- 99 -
TCP/IP
- 100 -
WINS
00h: İş İstasyonu
03h: Messenger
1Fh: NetsDDE
- 101 -
TCP/IP
- 102 -
WINS
Nbtstat -a diğermakineninadı
Ya da
Nbtstat -A diğermakineninIPAdresi
- 103 -
TCP/IP
- 104 -
WINS
- 105 -
TCP/IP
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
- 107 -
TCP/IP
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.
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.
- 108 -
WINS
Şekil 7.7: DHCP'de bir kapsam seçeneği olarak WINS sunucunun adresinin girilişi.
- 109 -
TCP/IP
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.
- 111 -
TCP/IP
- 112 -
WINS
Ş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.
- 113 -
TCP/IP
Başta çok bir şey belirtmiyoruz ve “Şimdi Bul” düğmesine basıyoruz. WINS
veritabanındaki kayıtlar karşımıza geliyor.
- 114 -
WINS
- 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.
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:
- 116 -
WINS
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.
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
- 118 -
WINS
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.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
- 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.
- 121 -
TCP/IP
Şekil 7.20:
WINS
konsolunda
çoğaltma
ortağının
görüntülenişi.
LKSUNUCU adının yanında Türü sütununda Zorla/İste şeklinde bir ifade var.
Onu biraz ilerde açıklayacağız.
Şekil 7.21: WINS konsolunda her iki WINS sunucunun bilgilerinin görüntülenmesi.
- 122 -
WINS
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.
“Ç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.
- 124 -
WINS
- 125 -
TCP/IP
- 126 -
WINS
LMHOSTS Dosyası
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ı?
195.194.78.56 Satis
202.23.78.67 Muhasebe
195.194.78.89 Anamakine #PRE #DOM:ANKARA
201.189.10.42 Ahmet #PRE
Yine bu dosyada, bazı kayıtların yanında bulunan #PRE ve #DOM gibi ifadeler
dikkatinizi çekmiştir.
- 128 -
WINS
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.
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.
- 131 -
TCP/IP
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:
- 132 -
DNS
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.
- 133 -
TCP/IP
Internet hemen her zaman yukarıdaki gibi eğri büğrü bir şekilde gösterilir.
Çünkü belli bir sınırı yoktur.
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
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.
- 135 -
TCP/IP
- 136 -
DNS
- 137 -
TCP/IP
İşe birincil bölge yaratarak başlayalım. Birincil bölge şıkkı seçili kalsın.
- 138 -
DNS
Buradaki seçenekleri daha sonra ele alacağız. İleri düğmesine basıp devam
ediyoruz.
- 139 -
TCP/IP
- 140 -
DNS
- 141 -
TCP/IP
Ş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.
- 142 -
DNS
Parantez içindeki ifadeler (A, CNAME, MX, NS, SOA) kayıt türlerinin kısa
yazılışıdır.
- 143 -
TCP/IP
Ş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.
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.
Şekil 8.12: DNS sunucunun PING komutu ile dolaylı olarak sorgulanması.
- 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.
- 146 -
DNS
- 147 -
TCP/IP
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
Ö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ı.
- 149 -
TCP/IP
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.
- 151 -
TCP/IP
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.
- 152 -
DNS
- 153 -
TCP/IP
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.
- 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).
Şekil 8.21:
Bölge bilgilerinin
aktarılmasına
(zone transfer)
ilişkin ayarlar.
- 155 -
TCP/IP
Ş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.
- 156 -
DNS
Şekil 8.24: Bir başka DNS sunucuya bağlanılıp yanıtların o sunucudan alınması.
- 157 -
TCP/IP
- 158 -
DNS
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.
- 159 -
TCP/IP
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ı.
- 161 -
TCP/IP
Ş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.
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
İ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.
- 163 -
TCP/IP
- 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).
- 165 -
TCP/IP
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.
- 166 -
DNS
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.
- 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:
- 168 -
DNS
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.
- 169 -
TCP/IP
- 170 -
DNS
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?
- 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.
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
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.
- 173 -
TCP/IP
Yaratılan alt etki alanı DNS konsolunda bir alt klasörmüş gibi görünür.
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.
- 174 -
DNS
Bir Alt Etki Alanı İçin Başka Bir DNS Sunucunun Yetkilendirilmesi
(Subdomain Delegation)
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.
- 175 -
TCP/IP
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.
- 176 -
DNS
Şekil 8.43: Alt etki alanı için yetkilendirdiğimiz DNS sunucunun belirtilmesi.
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.
- 177 -
TCP/IP
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.
_tcp alt etki alanına gidersek burada hizmet konumu (SRV) kayıtlarını
göreceğiz.
- 179 -
TCP/IP
- 180 -
DNS
Ö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
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.
- 181 -
TCP/IP
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.)
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
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).
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.
- 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 işletim sistemlerine sahip makinelerin bilgisinin DNS’e dinamik bir şekilde
kaydettirilmesi için DHCP sunucuları kullanabiliriz.
- 184 -
DNS
- 185 -
TCP/IP
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
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
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.
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.
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.
- 188 -
DNS
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
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
1. Windows 2003
2. Windows XP
3. Windows 2000
4. Windows NT 4.0
5. Windows ME
6. Windows 98
7. Windows 95
- 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?
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
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.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Browser
\Parameters
- 193 -
10
SNMP:
Basit Bir Ağ Yönetim Protokolü
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).
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
- 196 -
SNMP: Basit Bir Ağ Yönetim Protokolü
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.
- 197 -
TCP/IP
Iso.org.dod.internet.private.enterprise.lanmanager
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.
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:
Organization (org) 3
Internet 1
1 2 3 4
MIB II Enterprise
1 1
77
- 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.
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.
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.
- 199 -
TCP/IP
Şekil 10.2:
SNMP
Hizmeti'nin
üzerinde
Tuzaklar
sekmesi.
- 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.
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 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.
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
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.
- 204 -
FTP ve Telnet
Put: ftp sitesine bir dosya kopyalar (tabii yazma iznimiz varsa).
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
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.
Ö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.
- 206 -
FTP ve Telnet
Şekil 11.4: Bir e-posta sunucusuna telnet ile bağlandığımızda aldığımız mesaj.
- 207 -
TCP/IP
- 208 -
FTP ve Telnet
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
- 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:
Ping 192.168.0.1
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
- 211 -
12
RFC Listesi
- 213 -
TCP/IP
- 214 -
RFC Listesi
- 215 -
TCP/IP
- 216 -
13
Kendimizi Sınayalım
- 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
- 219 -