
Kısa yoldan hacker olmaya
çalışmak lamer'lık kavramını doğurur. Onun için teknik bilgileri bilmeniz
gerekiyor. İşte bunlardan birincisi. Bu yazıyı mutlaka okuyun ve anlayın. Eğer
birinci bölümü okumadıysanız geri dönüp birinci bölümü okumanız gerekiyor..
Şekil 1' de iki ayrı
ağ, yönlendirici yardımıyla birbirlerine bağlanmış. SATIS bilgisayarı
MEHMET bilgisayarına bilgi
göndermek isterse, daha önce anlatılan işlemleri yaparak MEHMET
bilgisayarının kendi ağında
olmadığını anlar. ileteceği bilgiyi G bilgisayarına gönderir.
G bilgisayarında iki adet ağ
kartı (Ethernet) bulunmaktadır. Kartların birisi 220.107.2.0 ağına,
diğeri 131.107.2.0 ağına
bağlıdır. G'de çalışmakta olan işletim sistemi (Windows NT ya da
Novell Netware gibi) bu iki
kart arasındaki bağlantıyı sağlar.
G bilgisayarında
bulunan ağ kartlarının her birinin ayrı bir IP adresi vardır. Şekil 1 'de
bu adresler 220.107.2.150 ve
131.107.2.30 şeklindedir. Bilgisayarlar karşıdaki ağda bulunan bir
bilgisayara bilgi
gönderecekleri zaman bilgiyi, G'nin kendi taraflarında bulunan IP adreslerine
gönderirler. G bilgisayarı
bu adrese gelen bilgiyi alır ve 131.107.2.0 ağına geçirir.
Peki, 220.107.2.0
ağındaki bilgisayarlar kendi ağlarında bulunmayan bir bilgisayara bilgi
gönderecekleri zaman
yönlendiricinin adresini nereden buluyorlar ? Eğer bilgisayarınızda
bulunan TCP/IP
konfigürasyon bilgilerine bakarsanız, orada "Default Gateway" şeklinde bir
adres alanı görürsünüz.
Default Gateway varsayılan geçit demektir ve yönlendiricinin adresini
gösterir. 220.107.2.0
adresi ile tanımlanan ağdaki bilgisayarlar Default Gateway olarak
yönlendiricinin kendi
taraflarındaki adresini, yani, 131.107.2.30 adresini verirler.
Yukarıda her şey IP
adresleri ile oluyor bitiyor gibi görünüyor. Gerçekte ise iletişimden
hemen önce, IP adreslerinin
MAC adreslerine çevrilmesi gerekir. 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,
Novell'in kullandığı IPX/SPX protokolünde IP adresi diye bir şey yoktur.
Her protokol. kendine göre
bir adresleme şeması kullanır ama, bu şemalarda yer alan adreslerin
dönüp dolaşıp MAC
adreslerine çevrilmesi gerekir ki, bilgisayarlar birbirleriyle iletişime
geçe bilsinler.
Bir bilgisayar bir
başka bilgisayarın IP adresine sahip 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. İşte
ARP bu kümenin ü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 mesajları
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. İlk bilgisayar artık diğer
bilgisayarın MAC adresini
bildiği için asıl mesajını doğrudan (broadcast yapmadan) gönderebilir.
IP adresini bildiğimiz
bilgisayarın MAC adresini öğrendik, ona bilgi gönderdik. Peki,
o bilgisayara tekrar bilgi
göndermek istesek ne olacak? Tekrar bir ARP broadcast mesajı mı
yayınlanacak? Bu sorunun
yanıtı hayır, çünkü ARP ile elde edilen bilgiler bir kaşe bellekte
(ARP kaşe belleği) saklanır
ve bir MAC adresi gerekli olduğu zaman, ilk önce bu tampon belleğe
bakılır. Eğer IP adresine
karşılık gelen MAC adresi bulunuyorsa, broadcast yapmadan bu adres
kullanılarak iletişime
geçilebilir. Ama TCP/IP'nin her bölümünde göreceğiniz gibi, bu ARP
kaşesinde tutulan
bilgilerin bir ömrü vardır. ARP kaşesine eklenen kayıtların ömrü en çok
10 dakikadır. Kaşeye kayıt
eklenirken ekleme zamanı da belirtilir. ve eğer eklenen adres
bilgisi 2 dakika içinde
yeniden kullanılmazsa otomatik olarak silinir. Adres yeniden
kullanılırsa yine silinir
ama 10 dakika sonra. Ayrıca ARP kaşesine ayrılan yer kısıtlı
olduğu için bu süreler
dolmadan eski kayıtlar silinebilir.
IP adresi bilinen bir
bilgisayarın MAC adresini bulmak için broadcast mesajı oluşturulur
demiştik. Yani mesaj, ağ
üzerindeki bütün bilgisayarlara gönderiliyor, yayın yapılıyor. Eğer
Şekil 2'deki gibi birden
fazla ağ söz konusu ise, yerel ağlarda kalması gereken broadcast
mesajları ağdaki trafiği
etkiler, ağ performansını düşürür. Çünkü yalnızca ağın bir bölümünde
anlamlı olan bir mesaj tüm
ağa yayılarak bütün bilgisayarları meşgul eder. Bu durumu engellemek
için yönlendiriciler,
broadcast mesajlarını bir koldan bir kola aktarmazlar. Mantıklı, değil
mi?
Broadcast mesajları
gibi, herhangi bir şekilde yerine ulaşmayan ama serseri mayın gibi
oradan oraya gidip gelen bir
mesajı engelleme işini, yine yönlendiriciler yapar. Bir TCP/IP
veri paketi
oluşturulduğunda, pakete ilk değeri 128 olan bir yaşam süresi (ya da oyunlarda
olduğu gibi "can".
İngilizce'si Time-To-Live, TTL) verilir. Mesaj paketi herhangi bir
yönlendiriciden geçerken
"can" ı bir eksilir. Aynen oyunlarda olduğu gibi de, can değeri
0 olduğunda oyun sona erer;
paket iletilemez, çöpe atılır.
Peki, bir bilgisayar IP
adresini nasıl alır? Bunun iki yolu var: Ya siz bu adresi ele
girersiniz ya da bir
bilgisayar, belli bir adres havuzundan aldığı diğer bilgisayarlara
dağıtır. Adresleri elle
girmenin en büyük sakıncası adreslerin, Subnet Mask değerinin
Default Gateway gibi diğer
bazı bilgilerin yanlış girilmesidir. Eğer ağınızdaki bilgisayar
sayısı onu aşıyorsa,
adresleri elle girmek pek akıllıca değildir. Bu adresleri otomatik olarak
dağıtmanın bir yolu vardır
ve bu yolun adı Dinamik Bilgisayar Kontrolü (Dynamic Host
Configuration Protocol,
DHCP)'dür. Bu protokol ile bilgisayar DHCP sunucu (server) olarak
tanımlanır ve IP adres
dağıtımı bu sunucu üzerinden yapılır. 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 tanımlı
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 akan bilgisayarda artık
diğer bilgisayarlar iletişim
kurarken bu adresi kullanır.
DHCP sunucu ile IP
adresi alan istemci bilgisayar arasındaki ilişki, bir satın alma
işleminden kiralama
işlemidir. İstemci bilgisayar, bir IP adresini DHCP sunucudan belli bir
suretliğine "kiralar". Kira
süresinin varsayılan süresi 72 saattir. Nasıl bir ev kiraladığınızda
kira süresinin bitiminden
önce kontrat tazeliyorsak, DHCP sunucudan alınan adresin de, bu süre
bitmeden tazelenmesi
gerekir.
Bütün DHCP istemcileri,
kıta sürelerinin %50'sine ulaştığında adreslerini tazelemek
zorundadırlar. Kirasını
tazelemek isteyen istemci, istediğini DHCP sunucusuna gönderir.
Eğer DHCP sunucu ayakta ise
kirayı tazeler ve bu durumu bir onay mesajı ile istemciye
bildirir. İstemci onayı
aldığında konfigürasyonunu günceller. Eğer istemci kirasını tazelemek
istiyor da DHCP sunucusuna
ulaşamıyorsa kiranın tazelenmediğine ilişkin bir mesaj alır ama,
adresini kullanmaya da
devam eder. Çünkü daha kira süresinin ancak yarısı geçmiştir. İstemci
kira tazeleme isteğini kira
süresinin yüzde %87.5'u tamamlandığında tekrarlar. Eğer bu kez
de yanıt alamaz ve süresi
biterse istemci, IP adresini kullanmaya son verir ve yeni bir IP
adres edinme sürecini
başlatır.
Bir IP adresinin nasıl
aldığını gördük, IP adresinin MAC adresine nasıl çevrildiğine de
gördük. Şimdi "İyi ama, biz
Windows 95'te ya da Windows NT'de Ağ komşuları (Network Neigborhood) 'na
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ı 3 şey belirler:
Bilgisayarın adı, IP
adresi, MAC adresi.
Bir bilgisayarın MAC
adresini ya da IP adresini değil de adını kullanmak daha kolay değil
mi? Aksi takdirde,
bilgisayarların IP adreslerini, daha da kötüsü MAC adreslerini ezberlemek
zorunda kalabilirdik.
Bilgisayar adını
kullanmak kolayımıza geliyor ama, ağ üzerinde iletişim gerçekte MAC
adresleri üzerinden
gerçekleştiriliyor. O zaman bilgisayar adını önce IP adresine çeviren
sonra da MAC adresine
çeviren mekanizmalar, protokoller olmalı değil mi? IP adresini MAC
adresine çeviren protokolü
görmüştük (belleği zayıf olanlara anımsatalım; bu protokolün adı
ARP idi). Peki, bilgisayar
adları IP adreslerine nasıl çevriliyor? Burada çeşitli seçenekler
var. Microsoft'un önerdiği
şey WINS (Windows Internet Adlandırma Servisi, Windows Internet
Naming Service). Bu servis
ile bir makineyi WINS sunucusu olarak tanımlıyoruz, bütün
bilgisayarlar girip
adlarını ve IP adreslerini bu sunucuya bildiriyorlar. (aynen yeni
eve taşındığımızda hane
halkının mahallenin muhtarına kaydolması gibi). Bir bilgisayar,
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).
İyi güzel de,
bilgisayarlar ortamda bir WINS sunucunun var olup olmadığını ve varsa adresini
nereden bilebiliyorlar?
Yukarıda DHCP'yi
anlatırken, DHCP sunucunun IP adreslerinin yanı sıra başka bilgileri
gönderebileceğini
söylemiştik. İşte bu bilgilerden birisi de WINS sunucunun adresi. Eğer biz
tanımlarsak, 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 da bir nedeni var: WINS, Microsoft tarafından
bulunan ve kullanılan bir
yöntem. Internet'te ad IP eşleştirmeleri başka bir yöntem
kullanılıyor: DNS (Domain
Name System). Bu sistemde bilgisayar adları ve IP adresleri DNS
sunucu olarak
konumlandırılan bilgisayarlara "elle" kaydediliyor. Bir bilgisayar, adını
bildiği bir bilgisayarın IP
adresini öğrenmek isterse DNS sunucuya gidiyor ve adresi soruyor.
DNS sisteminin
kötülüğü, bilgilerin elle girilmesinde ve statik olmasında. Bilgisayar
adlarının ve IP adreslerinin
elle girilmesi ve değiştirilmesi gerekiyor.
Windows NT 4.0
versiyonuna kadar bir DNS sunucu fonksiyonu bulunmuyordu. 4.0 ile birlikte
DNS sunucu fonksiyonu da
eklendi. Üstelik Microsoft DNS'i WINS'e bağlamayı başardı. 4.0'da
DNS sunucu bir kaydı kendi
veritabanında bulamazsa ortamdaki bir WINS sunucuya sorabilir ve
ondan aldığı yanıtı
iletebilir. Güzel bir olanak; hem Microsoft'un çözümünü görüyor hem
de DNS sunucu isteklerini
karşılıyor.
Evet birazcık karmaşa
gibi görünse de aslında kolay bir mantığı olan yerel ağların ve
internetin çalışma prensibi
de böyle..
Ana Sayfaya ön