TCP/IP’ye Genel Bir Bakış


Internet üzerinde bilgisayarlar nasıl adreslenirler ve paketler yollarını nasıl bulurlar. Bu soru bilgisayar ağları ile uğraşan herkesin bir süre kafasını kurcalamış bir sorudur. Bu soruya yanıt bulabilmek için internet’in temel protokolü olan TCP/IP’nin yapısını bir miktar bilmek gerekmektedir.

TCP/IP protokolünde tüm bilgisayarlar 32 bitlik “özgün” bir IP numarasına sahip olacak şekide adreslenirler (buradan çıkarılabilecek teorik bir sonuç ise internete aynı anda bağlı olabilecek bilgisayar sayısının en fazla 232 =  4,294,967,296 olabileceğidir) Bunu bir örnekle ele alırsak, internet üzerinde   3,559,735,316 sayısı ile adreslenmiş bir bilgisayar düşünelim. Bu sayının heksadesimal karşılığının D42D4014 olduğunu kolaylıkla hesaplayabiliriz. Bu şekilde bir gösterimin hemen hiç kimseye birşey ifade etmeyeceği sanırım oldukça açık bir şekilde görülmektedir. Bu yüzden şu şekilde bir yol izlenir, bu 32 bitlik adres 8 bitlik adresler halinde 4’e ayrılıp (D4 2D 40 14 şeklinde), daha alışıldık bir sayı sistemiyle çalışabilmek için desimale çevrilirler (0xD4 = 212, 0x2D = 45, 0x40 = 64 ve 0x14=20). Bu gösterim son olarak aralara konan bir nokta ile birleştirilir ve sonuç olarak IP numarası olarak tanımlanan notasyona ulaşılır, yani internet üzerinde 3,559,735,316  sayısı ile adreslenmiş bilgisayar 212.45.64.20 IP nolu bilgisayardır. Benzer bir yaklaşımı tersten izleyecek olursak A.B.C.D IP nosuna sahip olduğu bilinen bir bigisayarın gerçek adresi, A * 224 + B * 216 + C * 28 + D şekline hesaplanır.

Örneğimizden yola çıkarsak 212.45.64.20 için gerçek adres 212 * 224 + 45 * 216 + 64 * 28 + 20 =   3,559,735,316 ‘dır.

 IP numarasının bu şekildeki gösterilimi aslında internet trafiğinin yönünün nasıl bulunduğu konusunda hiçbirşey ifade etmez elbette, bir yığın halinde bulunan 4 milyarın üzerindeki adresin bir kısım gruplara ayrılması zorunludur. Trafiğin yönünün belirlenmesi ancak paketlerin belli IP gruplarından gelmesi ve belli gruplara yönelmesi ile mümkün olabilecektir. Bu durumda her IP paketi, kendi numarasının bağlı olduğu gruplar için tanımlanmış kurallara göre hareket eder. Yapılan gruplama işlemine ise subnetting adı verilir. Bu işlem sırasında IP adresi ait olduğu grubu ve bu grubun üyeleri arasında kaçıncı sırada olduğunu belirtmek üzere iki kısma ayrılır. İlk kısma network numarası, ikinci kısma ise uç adresi adı verilir ve işlem şu şekilde gerçekleşir.

 Tüm internet IP bloğunu 255 kısma ayırmayı istediğimizi düşünelim,  bu gruplama sonucunda ortaya çıkacak IP numaralarının 1.x.y.z, 2.x.y.z, ……,255.x.y.z şeklinde olacağı kolay bir akıl yürütme ile görülebilmektedir. Bu tanımlamada elde edilen IP numaralarının oluşturduğu blokların her birine subnet veya network adı verilmektedir ve 1.0.0.0 networkü, 2.0.0.0 networkü vs şeklinde telaffuz edilmektedir. Bu durumda örneğin 2 ile başlayan bütün IP numaralarının (2.x.y.z) 2.0.0.0 networkünün parçası olduğu kolayca anlaşılabilir. Dikkati çekmesi gereken bir nokta elde edilen blokların hala devasa boyularda olduklarıdır (224 = 16,777,216) ve bu bloklar kendi içlerinde daha fazla bölünmeye tabi tutulabilirler, örneğin 1.0.0.0 networkünü 1.0.0.0, 1.1.0.0, ….. 1.254.0.0, 1.255.0.0 şeklinde 255 ayrı networke ayırmak da mümkündür, aynı şekilde 1.1.0.0 networkünü de 1.1.1.0, 1.1.2.0,…..1.1.255.0 vs şeklinde daha da küçültmek mümkündür, bu işleme her blokta 2 hatta 1 IP kalıncaya kadar devam edilebilir. Burada önemli nokta bu blok büyüklerinin ihtiyaca göre belirlenmesi gereği  ve her bloğun bir üst bloğun alt kümesi olmasıdır. Daha detaylı açıklarsak, 1.0.0.0 networkünden bahsediyor iseniz otomatik olarak 1.1.0.0 networkünden ve 1.10.5.0 networkünden de bahsediyorsunuz demektir.

 IP numarasını network numarası ve uç adresi olarak ikiye böldüğümüzü yukarıda söylemiştik, bunları örneklerle açıklaylım, test amacıyla seçtiğimiz 212.45.64.20 IP numarasından yola çıkarsak, bu IP’nin hem 212.0.0.0 hem 212.45.0.0 hem de 212.45.64.0 networklerinde yer alan bir IP olduğu söylenebilir. Burada kritik nokta netwok numarası olarak hangisinin alınacağı (212, 212.45, 212.45.64) daha da önemlisi buna nasıl karar verileceğidir. Açıkça görülen odur ki  bunu bilmek yalnızca IP numarası ile mümkün olmamaktadır. Bu nedenle IP numarasının hangi bitlerinin network numarasınını temsil ettiğini, hangilerinin ise uç adresini oluşturduğunu  tanımlayacak başka bir bilgiye ihtiyaç duyulmaktadır. Buna “subnet mask” adı verilmektedir. Çoğu zaman kullanıcıların kafasını karıştırmakla beraber aslında anlamı ve kullanımı son derece açıktır.

Subnet mask’ı daha sonra detaylı incelemek üzere kabaca tanımlarsak   network numarasının bulunduğu bit pozisyonlarında 1, kalan pozisyonlarda 0 bulunduran bir sayı olarak tarif edebiliriz.
Örneğin 212.45.64.20 IP’sini alt bölümlemeye gitmeden 212.0.0.0 bloğunun bir parçası olarak görmek istiyorsak, network adresini yalnızca ilk 8 bitin oluşturduğunu söylüyoruz demektir. Bu durumda subnet maskımız 8 tane 1 ve 24 tane 0 ‘dan oluşacaktır (toplam 32’yı verecek şekilde).
 Subnet mask (binary)   : 11111111 00000000 000000000 0000000
 Subnet mask (desimal) :        255            0             0          0
 Subnet mask              : 255.0.0.0
Ya da 212.45.0.0 bloğunun bir parçası olmasını istiyorsak, bu kez network adresini ilk 16 biti ile tanımlamamız gerekecektir, bu durumda subnet mask 16 tane 1 ve 16 tane 0’dan oluşacaktır.
Subnet mask (binary)   : 11111111 11111111 000000000 0000000
Subnet mask (desimal) :       255          255             0       ;    0
Subnet mask              : 255.255.0.0
Son olarak, 212.45.64.0 bloğu için aynı hesaplamayı yaparsak, network adresi ilk 24 bitte bulunacaktır. Subnet mask ise 24 tane 1 ve 8 tane 0’dan oluşacaktır.
 Subnet mask (binary)   : 11111111 11111111 11111111 0000000
 Subnet mask (desimal) :        255         255        255          0
 Subnet mask              : 255.255.255.0
Burada subnet mask’ı belitrmek için kullanılan farkli bir yöntemden bahsetmek gerekir, bu da “/” ayracı ile IP numarasına ya da network numarasına eklenen bir sayıdır (212.45.64.20/25 veya 212.45.64.0/19 gibi). Burada verilen sayı subnet maskta ilk kaç bitin 1 olduğunu gösterir. Örneğin /8, 8 tane 1, 24 tane 0 anlatır, bu da 255.0.0.0 netmaskının eşdeğeridir, yine benzer şekilde /16, 16 tane 1, 16 tane sıfırı tanımladığı için 255.255.0.0’ın, /24 de 255.255.255.0’ın eşdeğer gösterimleridir.

Daha çok kullanılan subnetler için konulmuş bir takım isimler vardır, burada bunlardan da bahset gerekir. İlgili isimler, kısa bir tanımlama ile Tablo 1’de verilmiştir.
Tablo1:

NetMask         /“ lü gösterim   Ip Adedi             Isim
255.0.0.0           /8                    16,777,216        &n bsp;  A Sınıfı (A Class)
255.255.0.0       /16                   65,536              &nb sp;  B Sınıfı (B Class)
255.255.255.0   /24                    256                  &nbs p;  C Sınıfı (C Class)
 * Kullanılabilen IP adedi burada verilenden iki eksik olacaktır (bir broadcast ve bir network numarası için)
Kullanıcılar arasında sıkça karşılaşılan 32’lik bir C class veya 128’lik bir C class gibi kullanımlar tamamen yanlıştır. Çünkü bir “C class” tanımı gereği 256’lık bir bloktur.
Subnetlerin buraya kadar olan kısmı hemen herkesçe bilinmesine rağmen genellikle /24’den küçük bölümlemeler sorun yaratmaktadır. Bilgisayar ağları ile uğraşırken çoğu zaman 32’lik, 64’lik veya 128’lik subnetlere ihtiyaç duyulmaktadır. Bunların nasıl yapılacağını doğrudan örneklerle açıklamanın daha faydalı olacağını düşünüyorum.
Elimizde bulunan 212.45.64.0/24 ‘lük bir bloğu 8 tane 32’lik subnete ayımak için neler yapılması gerektiğine bakalım. Öncelikle 32’lik bir subnet için maskın ne olduğunu hesaplamak gerekmektedir.32, 2’nin beşinci kuvvetidir, yani 0-31 arası sayılar binary sistemde 5 bitle yazılabilirler. Öyleyse subnet maskta sağdan 5 biti uç adresi için ayırmamız gerekmektedir, geriye kalan 27 bit ise network kısmını oluşturacaktır. Bu durumda 32’lik subnet için masklar,
 Subnet mask (binary)   : 11111111 11111111 11111111 11100000
 Subnet mask (desimal) :     255           255           255           224
 Subnet mask               : 255.255.255.224
olacaktır. Her subnet için ayrılan 32 IP için sırasıyla network adresleri 212.45.64.0/27, 212.45.64.32/27, …….212.45.224/27 olacaktır. Ancak burada, bir adet /24’te yalnızca 0 ve 255 olarak iki IP kullanılamazken (biri network numarası diğeri broadcast) 32’lik subnetlere ayrıldığında her biri için için 2, toplam 2*8=16 IP numarasının kullanılamadığına dikkat edilmelidir.
Benzer bir şekilde 212.45.64.0/24 ‘lük bloğumu 4 tane 64’lük subnete ayıralım. 64, 2’nin altıncı kuvvetidir, yani 0..63 arası sayılar 6 bitle yazılabilirler, öyleyse, 64’lük bloklar için masklar,
Subnet mask (binary)    : 11111111 11111111 11111111 11000000
Subnet mask (desimal) :     255           255           255           192
Subnet mask                : 255.255.255.192
şeklinde olacaktır. Sırasıyla subnetler de 212.45.64.0/26, 212.45.64.64/26, …… , 212.45.64.192/26 olacaktır. Burada kaybedilen IP sayısı 4*2=8 olarak hesaplanabilir.
Son olarak aynı bloğu 128’lik iki bölüme ayırırsak, masklar
Subnet mask (binary)    : 11111111 11111111 11111111 10000000
Subnet mask (desimal) :       255           255           255           128
Subnet mask                : 255.255.255.128
Şeklinde olacaktır. Sırasıyla subnetler 212.45.64.0/25 ve 212.45.64.128/25 olacaktır. Kaybedilen IP sayısı ise 2*2=4’tür.
Genel kullanımda bir blok her zaman eşit büyüklükteki bloklara bölünmez. Elinizdeki bir C sınıfı bloğu 1 128’lik, 1 64’lük ve 2 32’lik bloğa bölmek isteyebilirsiniz. Detaylara girmeden incelersek böyle bir bölümleme 212.45.64.0/25, 212.45.64.128/26,212.45.64.192/27, 212.45.64.224/27 şeklinde yapılabilir.

Burada en çok dikkat edilmesi gereken nokta, istediğiniz bir bloğu oluşturmak için büyük bloğun yerini istediğiniz gibi seçemeyeceğinizdir. Örneğin 128’lik bir bloğu 212.45.64.64’ten başlatıp 212.45.64.192’de bitiremezsiniz, benzer şekilde 212.45.64.32’de başlayıp 212.45.64.96’da biten bir /26 blok da tanımlayamazsınız. Başlangıç adresleri kesinlikle bloktaki_IP_sayısı * n (n tamsayı) formülü ile elde edilebilecek sayılar olmalıdır. Örneğin 64’lük bir blok ancak 0,64,128,192 adreslerinden başlayabilir, benzer şekilde 128’lik bir blok da ancak 0 veya 128 adreslerinden başlayabilir.

 Son olarak verilen bir IP numarası / subnet mask çifti ile bu IP’nin ait olduğu bloğun nasıl bulunabileceğini açıklayarak bu bölümü bitiriyorum.
 Bir IP’nin ait olduğu network, IP numarasının binary hali ile subnet maskın binary hali arasında yapılacak birebir “VE” işlemi (bitwise AND) ile bulunur, örneklemek için 212.45.64.20/25 IP numarasının ait olduğu networkü bulalım.

 /25, 25 adet 1 ve 7 adet 0’dan oluşan bir netmask anlamına gelmektedir (255.255.255.128), binary ortamda ifade edecek olursak

 Netmask : 11111111 11111111 11111111 10000000

IP numarasını binary olarak ifade edersek ise

IP     : 11010100 00101101 01000000 00010100

Değelerini elde ederiz.

Birebir “VE” işlemi ile

     11010100 00101101 01000000 00010100
VE 11111111 11111111 11111111 10000000
----------- -----------------------
     11010100 00101101 01000000 00000000
            212          45          64        &nbs p;   0
Bu sonuç  212.45.64.20/26 IP numarasının 212.45.64.0/26 networkünde bulunduğunu göstermektedir.

Aynı işlem 212.45.64.228/27 IP numarası için tekrarlanırsa

     11010100 00101101 01000000 11100100
VE 11111111 11111111 11111111 11000000
--------- ------------------------
     11010100 00101101 01000000 11000000
            212          45          64         224
elde edilir, bu da 212.45.64.228/27 IP numarasının 212.45.64.224/27 networkünde yeraldığını gösterir.
TCP/IP Yönlendirme
       Önceki dökümanda TCP/IP’nin ne olduğunu ve adreslemenin nasıl yapıldığı anlatılmıştı, paketlerin internet üzerinde yollarını nasıl bulduklarını ise bu dokümanda anlatacağız.
        Öncelikle bir TCP/IP networküne bağlanmak isteyen bir bilgisayarda yapılması gereken ayarları ele alalım. TCP/IP protokolü tanıtılırken bir takım bilgilere ihtiyaç duyulmaktadır, bunlar
1. IP numarası *
2. Subnet maskesi *
3. Ağ geçidi (Gateway)
4. DNS Sunucularıdır
    Yanlarında * bulunan bilgiler mutlaka girilmesi gerken bilgilerdir, diğerleri duruma göre boş bırakılabilir.
        Buradaki IP numarası ve subnet maskesi hakkında detaylı bilgi önceki dokümanlarda verilmiştir, DNS sunucuları ise daha sonra açıklanacaktır. Bu kısımda özellikle üzerinde durulacak olan “ağ geçidi” kavramı ve internet üzerinde yönlendirmedir. Buradan hareketle yukarıdaki bilgilere sahip bir bilgisayarın yapacaklarını özetleyelim, ilk olarak daha önce anlatıldığı şekilde IP adresini ve subnet maskesini kullanarak ait olduğu networkü bulacaktır. Daha sonra kendisi için bir IP yönlendirme tablosu oluşturacaktır.
        Yönlendirme tablosu oluştururken izleyeceği yol şudur. Kendi IP numarasına giden tüm paketleri kendisine yönlendirecektir. Aynı şekilde kendisi ile aynı networkte olan adreslere bu IP numarasının ait olduğu arayüz üzerinden ulaşmaya çalışacaktır. Bu network dışında kalan adreslere yönelen tüm paketleri ise ağ geçidi olarak tanımlanan cihaza yönlendirecektir (Buradan da anlaşılacağı gibi, ağ geçidi olarak tanımlanan IP numarası mutlaka kendi IP numarası ile aynı subnet içinde olmalıdır, aksi taktirde bilgisayar ağ geçidine ulaşamayacaktır).
        IP yönlendirme tablosunun oluşturulabilmesi için gerekenlere bir bakalım. Öncelikle ulaşılmak istenen network ve bu networkün maskesi bilinmelidir ve bu networke ulaşmak için kullanılacak arayüz de gerekmektedir.
Bir örnekle konuyu daha açık hale getiremek için, 212.45.64.226 IP numarasına ve 255.255.255.224 subnet maskına sahip bir bilgisayar için ağ geçidinin 212.45.64.225 olarak tanımlandığını düşünelim.
Bu durumda bilgisayar ait olduğu networkü 212.45.64.224 olarak hesaplayacaktır, oluşturduğu yönlendirme tablosu ise şu şekilde ifade edilebilir. Öncelikle kendi IP numarasına giden paketleri kendi kendine gönder. 212.45.64.224 networkünde olan tüm paketleri 212.45.64.226 IP numarasını kullanarak gönder, bu networkün dışındaki adreslere gidecek paketleri ise 212.45.64.225 IP numarası üzerinden yönlendir. Tablo olarak ifade edecek olursak,

 
Hedef Network 
Maske 
Ağ geçidi 
Arayüz
212.45.64.226
255.255.255.255
127.0.0.1*
Loopback
212.45.64.224
255.255.255.224
212.45.64.226
Ethernet0
0.0.0.0
0.0.0.0
212.45.64.225
Ethernet0
* 127.0.0.1 (Loopback) bilgisayarın kendisini ifade eder, 255.255.255.255 ise tek bilgisayarı tanımlayan subnet maskesidir.
sonucunu elde edebiriz. Burada belirtilen arayüz bilgisayarın bu IP numarasına ulaşmak için kullandığı arayüzdür, bu arayüzün tanımı ve gösterimi çeşitli işletim sistemleri arasında farklı olabilmektedir, unix türevi sistemlerde ethernet için eth0, le0, hme0 gibi isimler kullanılırken (burada 0 kaçıncı arayüz olduğunu gösterir, örneğin bir bilgisayarda iki ethernet kartı varsa bunlar eth0 ve eth1 ya da hme0 ve hme1 olarak tanımlanırlar), windows tabanlı sistemlerde ise bundan farklı olarak arayüzler sahip oldukları birincil IP ile tanımlanırlar, örneğin örneğimizdeki arayüz, arayüzün birincil IP numarası olan 212.45.64.226 ile tanımlanacaktır.
 Bu tanımlamaların yapılmış olduğu bir bilgisayarın IP yönlendirme tablosu incelenecek olursa (IP numarasının tanımlandığı bilgisayar WinNT Server 4.0’dır)
C:\>route print
Active Routes:
 
Network Address
Netmask
Gateway Address
Interface 
Metric
0.0.0.0
0.0.0.0
212.45.64.225
212.45.64.226
1
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
212.45.64.224
255.255.255.224
212.45.64.226
212.45.64.226
1
212.45.64.226
255.255.255.255
127.0.0.1
127.0.0.1
1
212.45.64.255
255.255.255.255
212.45.64.226
212.45.64.226
1
224.0.0.0
224.0.0.0
212.45.64.226
212.45.64.226
1
255.255.255.255
255.255.255.255
212.45.64.226
212.45.64.226
1
NOT: 0.0.0.0/0.0.0.0 tanımlanabilecek en genel networktür. Bütün IP numaralarını kapsar.
        Yukarıdaki tabloda birinci, üçüncü ve dördüncü satırların bizim oluşturduğumuz tabloda yer aldığı diğerlerinin ise yer almadığı hemen dikkati çekecektir. Burada ikinci satır 127 ile başlayan tüm adreslerin loopback arayüzüne yönlendirilmesi gerektiğini belirtmektedir. Bu da 127 ile başlayan tüm adreslerin aslında kendi kullandığımız bilgisayarı tanımladığı anlamına gelir. Beşinci, altıncı ve yedinci satırlar ise broadcast ve multicast tanımlamalarıdır, broadcast yönlendirmeler belli bir IP numarasına değil tüm networke ulaşılmaya çalışıldığında kullanılırlar. Ancak yönlendirme tablosunun bu tanımları sistem tarafından otomatik olarak yapılmaktadır, kullanıcının bunları ileride değinileceği şekilde değiştirmesine, silmesine ya da eklemesine gerek duyulmamaktadır.
         Bizim oluşturduğumuz tabloda bulunmayan “metric” hanesi ise eşdeğer yönlendirmeler arasında hangisinin önce kullanılacağını belirtir.
         Bir IP yönlendirme tablosu incelenirken ya da oluşturulurken dikkat edilmesi gereken en önemli noktalardan biri yönlendirme tablosunun en özelden en genele doğru taranacağıdır, örneğin 212.45.64.226 numaralı IP’ye ulaşmaya çalışırken bu IP numarasının hem 212.45.64.226/255.255.255.255 hem 212.45.64.224/255.255.255.224 hem de 0.0.0.0/0.0.0.0 networklerinin içinde kaldığı görülür ama bunların arasında en özel olan kullanılacaktır, bu da 212.45.64.226/255.255.255.255’tir.
         Örneklerle devam ederek konumuzu genişletelim. 212.45.64.226/27 IP numaralı bilgisayarımızın 212.45.64.231 IP numaralı bilgisayara ulaşmak istediğini düşünelim. Öncelikle kendi yönlendirme tablosunda bulunan network adresleri ile subnet maskelerini kullanarak bu IP’nin yönlendirme tablosundaki networklerden herhangi birinin dahilinde olup olmadığını hesaplayacaktır. Hem birinci (0.0.0.0/0) hem de üçüncü satırların (212.45.64.224/27) bu IP’yi kapsadığı bu hesaplama sonucu ortaya çıkacaktır, 212.45.64.224/27 diğerinden daha özel bir tanımlama olduğu için bunu kullanacak ve paketi kendi IP numarası üzerinden LAN’e gönderecektir. Bunu komut satırında inceleyecek olursak.
C:\>tracert 212.45.64.231
Tracing route to aboneservisi.marketweb.net.tr [212.45.64.231]
over a maximum of 30 hops:
  1   <10 ms   <10 ms   <10 ms  aboneservisi.marketweb.net.tr [212.45.64.231]
Trace complete.
        Buradan da görüldüğü gibi 212.45.64.226 ve 212.45.64.226 bilgisayarları aynı networkte bulundukları için hiçbir ağ geçididen geçmeksizin haberleşebilmektedirler.
        Bu kez aynı bilgisayarı kullanarak 212.45.64.20 IP numarasına sahip bilgisayara ulaşmaya çalıştığımızı düşünelim. Bilgisayarımız yine yönlendirme tablosunu kullanarak bu IP’nin hangi networkler tarafından kapsandığını bulmaya çalışacaktır. Bulacağı networkün ise yalnızca 0.0.0.0/0 olduğu görülecektir. (Daha önce de söylendiği gibi 0.0.0.0/0 tüm networkleri kapsamaktadır, bu yüzden default route adı verilmiştir). Bu durumda paketler, ağ geçidi olarak tanımlanan 212.45.64.225 IP numaralı cihaza yönlendirilecektir yani bir anlamda “top 212.45.64.225’e atılmıştır”. Kritik soru da burada gelmektedir, 212.45.64.225 IP numaralı cihaz 212.45.64.20 IP numarasına nasıl ulaşacaktır. Ağ geçidinin özelliğini de tam burada tanımlamak faydalı olacaktır. Bir cihazın ağ geçidi görevini görebilmesi için en az iki farklı network’te arayüzünün bulunması gerekmektedir. Örneğin bir ağ geçidi x.y.z.0/24 networkündeki bilgisayarların a.b.c.0/24 networkündeki bilgisayarlara ulaşması için kurulmuşsa, bir arayüzünün (örneğin ethernet) x.y.z.0/24 networküne bağlı, başka bir arayüzünün (ethernet, seri/dialup arabirim vs) a.b.c.0/24 networküne bağlı olması gerekmektedir.
        Örneğimizden kopmadan devam edersek, 212.45.64.20 IP numaralı bilgisayar  ağ yönlendiricisine 1 numaralı ethernet arayüzünden, 212.45.64.226 IP numaralı bilgisayar ise ağ yönlendiricisine 2 numaralı ethernet arayüzünden bağlı olduğunu düşünebiliriz.
         Traceroute sonucunu incelersek
C:\>tracert 212.45.64.20
Tracing route to kheops.marketweb.net.tr [212.45.64.20]
over a maximum of 30 hops:
  1    10 ms   <10 ms    10 ms  grf.marketweb.net.tr [212.45.64.225]
  2   <10 ms    10 ms    10 ms  kheops.marketweb.net.tr [212.45.64.20]
Trace complete.
        Görüldüğü gibi 212.45.64.20 IP numaralı bilgisayara 212.45.64.225 numaralı cihaz üzerinden ulaşılmıştır. Buradan çıkan sonuç 212.45.64.225 IP numaralı cihazın en az iki arayüzü/IP adresinin olduğu ve bu arayüzlerden biri 212.45.64.224 networkünde iken diğerinin 212.45.64.0 networkünde olduğudur. 212.45.64.225 IP numaralı cihazın yönlendirme tablosu hakkında basit bir yorum yaparsak şöyle bir sonuç elde edebiliriz.

 
Network Address
Netmask
Gateway Address
Interface
212.45.64.0
255.255.255.128*
212.45.64.1**
Ethernet0
212.45.64.224
255.255.255.224
212.45.64.225
Ethernet1
* Buradaki traceroute sonucu ile netmaskı öğrenmek mümkün değildir, burada verileni bir önbilgi kabul edebilirsiniz.
** Burada belirtilen 212.45.64.0/25 segmentinde herhangi bir IP olabilir. Bu yönlendiricinin 212.45.64.0/25 segmentindeki IP numarasıdır.  Aynı şekilde arayüzler de (ethernet 0, ethernet 1) önbilgi olarak yazılmıştır, arayüzlerin ne olduğu eldeki verilerle tesbit edilemez.
        Görüldüğü gibi 212.45.64.225 adresine yönlendirilen paketler bu cihazın yönlendirme tablosunda taranarak ilgili arayüzlerden hedeflerine ulaştırılmışlardır. Aynı şekilde 212.45.64.20/25 IP numaralı bilgisayardan 212.45.64.226 adresine çekilen traceroute sonucu da
kheops/export/staff/ilker>traceroute 212.45.64.226
traceroute to 212.45.64.226 (212.45.64.226), 30 hops max, 40 byte packets
 1  212.45.64.1 (212.45.64.1)  3 ms 3 ms 1 ms
 2  taurus.marketweb.net.tr (212.45.64.226) 5 ms 5 ms 6 ms
şeklindedir. Bu da ağ geçidimizin hem 212.45.64.1 hem de 212.45.64.225 IP numaralarına sahip olduğunu göstermektedir.
        Şematik olarak gösterirsek

        Görüldüğü gibi ağ geçidinin iki ayrı networke de bağlantısı bulunmaktadır. Kafalarda kalmış olabilecek soruları gidermek için son bir örnek vererek konumuzun tanım kısmını bitirelim. Networkleri caddelere, istemcileri de caddelere çıkışları olan evlere benzetirsek, ağ geçitleri, ön kapısı bir caddeye, arka kapısı ise başka bir caddeye açılan, böylece caddeler arasında –belli kurallar dahilinde- geçiş sağlayan iş merkezleridir.
        Yukarıdaki açıklamalardan da anlaşılabileceği gibi internete bağlı tüm bilgisayarlar bir anlamda yönlendirme yapmakta ve yönlendirme tabloları kullanmaktadırlar. Ancak asıl işi yürütenler, yönlendirici (router) dediğimiz bu işi yapmak için özel olarak tasarlanmış sistemlerdir (“sıradan” bilgisayarlar da uygun şekilde konfigüre edilerek router haline getirilebilirler ancak bu dokümanda buna değinilmeyecektir). O halde genel anlamda bir routerı tanımlarsak, çok sayıda farklı arayüze (ethernet, atm, fddi, serial, e1, e3, t1, t3…..) sahip olup, çeşitli protokolleri yönlendirmesi (IP,IPX …) için özel olarak tasarlanmış cihazlardır. Bir çoğunda desteklenen arayüzler modüler olup ihtiyaca göre eklenip çıkarılabilmektedir. Aynı şekilde yönlendirme protokolleri de cihazların yazılımları ile belirlenebilmektedir. Bu cihazlara örnek olarak çeşitli Cisco ve Ascend cihazları gösterilebilir (Piyasada onlarda farklı üretici tarafından üretilmiş yüzlerce hatta binlerce router bulunmaktadır, burada belirtilenler yalnızca örnek olarak verilmiştir). Dokümanın bundan sonraki kısmında işletim sistemi detaylarına mümkün olduğu kadar az girilerek router’lardan bahsedilecektir.
        Az önce teorik olarak çıkarılan sonuçları omurga router’I üzerinde inceleyecek olursak (Burada incelenen router bir Ascend GRF 400’dür)
Routing tables
Internet:
 
Destination
Gateway
Flags
Refs
Use
Interface
212.45.64/25
212.45.64.1
UHI
2
6
ge031
212.45.64.224/27
212.45.64.225
U
1
403
ge032
NOT:
1. Buradaki iki satır router yönlendirme tablosundan seçilerek gösterilmiştir. Aksi taktirde yüzlerce network tanımı arasında görülmeleri mümkün değildir.
2. Arayüzler ise burada görüldüğü gibi belirtilenlerden farklı tanımlanmışlardır, ge031 cihazın birinci şase, üçüncü slotunun, birinci portunu belirtmektedir, aynı şekilde ge032 de birinci şase, üçüncü slotunun, ikinci portunu belirtir (buradaki e ise arayüzün ethernet olduğunu göstermektedir).
        Şimdi örneği biraz daha karmaşıklaştıralım ve sisteme yeni bir cihaz daha ilave edelim. Ethernet portunun IP’si 212.45.65.8/24 olan bu cihaz GRF’e 3. ethernet portu aracılığıyla bağlantılı olsun (GRF’in aynı segmentteki IP numarasının ise 212.45.65.9/24 olduğunu kabul edelim). Aynı zamanda bu cihaz üzerinde bulunan 240 modemin IP numaralarının 212.45.68.1, 212.45.68.2 ….. 212.45.68.254 havuzunda bulunsun.
        Şematik olarak bunu gösterirsek
        Bu durumda 212.45.68.0/24 segmentine ulaşmak için mutlaka 212.45.65.8 IP numaralı cihaza (TNT) ulaşmak gerekmektedir, buradan çıkan sonuç ise TNT’nin de yönlendirme yaptığı ve bir anlamda router olduğudur. Ancak tüm trafiğin geçtiği omurga yönlendiricisinin 212.45.68.0/24 segmentine 212.45.65.8 IP numarası ile ulaşacağını bilmesi gerekir aksi taktirde 212.45.68.0/24 segmentine ulaşmak için kendisine gelen paketleri hangi adrese yönlendireceğini bilemez. Bu durumda omurga yönlendiricisi üzerinde 212.45.68.0/24’ün 212.45.65.8’e yönlendirilmesi gerekir (bu işlem dinamik routing (rip, ospf), arp proxy ve benzeri yöntemlerle yapılabilir, ancak burada konuyu karıştırmamak için statik yönlendirme anlatılacaktır). Bunun için router üzerinde “route add –net 212.45.68.0 212.45.65.8” şeklinde bir komut çalıştırmak yeterli olacaktır (yazılan komut işletim sistemine bağlı olup burada belirtilen SysV türü unix sistemlerinde kullanılan notasyondur, aynı işlem bir cisco yönlendirici üzerinde konfigürasyon moduna geçtikten sonra “ip route 212.45.68.0 255.255.255.0 212.45.65.8” şeklindeki bir komutla yapılabilir). Bunu da yaptıktan sonra omurga routerının yönlendirici tablosuna tekrar bakarsak :
 
Routing tables
Internet:
 
Destination
Gateway
Flags
Refs
Use
Interface
212.45.65
212.45.65.9
U
1
12316
ge030
212.45.68
212.45.65.8
UGS
0
399
ge030
212.45.64/25
212.45.64.1
UHI
2
6
ge031
212.45.64.224/27
212.45.64.225
U
1
403
ge032
Şimdi bilgisayarımızdan 212.45.68.2 IP numarasına ulaşmak için traceroute sonucu alırsak :
C:\>tracert 212.45.68.2
Tracing route to tnt-port002.marketweb.net.tr [212.45.68.2]
over a maximum of 30 hops:
  1   <10 ms   <10 ms   <10 ms  grf.marketweb.net.tr [212.45.64.225]
  2   <10 ms   <10 ms   <10 ms  tnt.marketweb.net.tr [212.45.65.8]
  3   120 ms   120 ms   121 ms  tnt-port002.marketweb.net.tr [212.45.68.2]
Trace complete.
        Görüldüğü gibi bilgisayarımızın nasıl ulaşacağını bilmediği paketi ağ geçidine göndermiş, ağ geçidi de 212.45.68 bloğunun 212.45.65.8 adresinden erişildiğini bildiği için paketi bu adrese göndermiştir. Akla şöyle bir soru gelebilir : Omurga yönlendiricisi hangi adrese gideceğini bilmediği bir paket alırsa ne olur ? Şu anda tanımlı olmayan bir bloğa çekilen traceroute sonucunu inceleyelim.
C:\>tracert 212.45.80.1
Tracing route to 212.45.80.1 over a maximum of 30 hops
  1   <10 ms   <10 ms   <10 ms  grf.marketweb.net.tr [212.45.64.225]
  2  grf.marketweb.net.tr [212.45.64.225]  reports: Destination host unreachable.
Trace complete.
        Görüldüğü gibi, paket omurga router’ına kadar ulaşmış ancak router bunu nereye yönlendireceğini bilmediği için “destination host unreachable” (belirtilen adres ulaşılamaz) mesajı vermiştir (Konu hakkında bilgi düzeyi daha yüksek kullanıcılar için not: Lokal olarak kullanılan blok 212.45.64/19’dır, bu yüzden bu blok içinde kalan adresler internet’e yönlendirilmeyecek şekilde düzenlenmiştir.)
        Burada dikkat edilmesi gereken nokta iletişimin çift yönlü olduğudur, yani omurga routerı sizin gönderdiğiniz paketleri hedefine ulaştırırken karşıdan gelen paketleri de size ulaştırmalıdır, aksi taktirde bağlantı kurulamaz. Buradan hareketle kabaca bir tahmin yapılırsa 212.45.65.8 IP’li cihazın da ağ geçidinin omurga routerı olduğu düşünülebilir.
LAN düzeyinde IP yönlendirmesini son bir örnekle noktalayalım.
C:\>tracert  212.45.76.193
Tracing route to anadolunet-idsl.anadolunet.com.tr [212.45.76.193]
over a maximum of 30 hops:
  1   <10 ms   <10 ms   <10 ms  grf.marketweb.net.tr [212.45.64.225]
  2   <10 ms    10 ms    10 ms  m4030-01-eth0.marketweb.net.tr [212.45.65.7]
  3    30 ms   25 ms     50 ms  cankaya-kizilay.marketweb.net.tr [212.45.76.1]
  4    30 ms    60 ms    50 ms  kizilay-anadolunet128k.anadolunet.com.tr [212.45.76.4]
  5    80 ms   72 ms    70 ms  anadolunet-idsl.anadolunet.com.tr [212.45.76.193]
Trace complete.
        Bu tabloya bakarak, aradaki tüm yönlendiricilerin yönlendirme tablolarını inceleyelim. Öncelikle grf.marketweb.net.tr’da 212.45.76 ile ilgili bir yönlendirme bulunması gerekir, ilgili yönlendirme aşağıda gösterilmiştir.
Routing tables
Internet:
 
Destination
Gateway
Flags
Refs
Use
Interface
212.45.66/22
212.45.65.7
UGS
0
0
ge030
        Traceroute sonucuna paralel olarak 212.45.76/22 bloğu 212.45.65.7 IP numarasına yönlendirilimiştir. Aynı yönlendirmeyi 212.45.65.7’de ararsak:
ascend% sh ip route 212.45.76.193
Destination
Gateway
IF
Flg
Pref
Met
Use
Age
212.45.76.0/22
212.45.76.1
wan36
rGT
60
1
54107
18169
        Yine traceroute sonucuna paralel olrak 212.45.76/22 bloğu 212.45.76.1 IP numarasına yönlendirilmiştir (arayüzden de anlaşılacağı gibi bu bağlantı bir WAN bağlantısıdır). Sonuç olarak 212.45.76.1 IPsine kadar ulaşmış durumdayız. Bu IP’ye sahip cihazda bir sorgulama yaparsak:
kizilay-cisco#sh ip route 212.45.76.193
Routing entry for 212.45.76.192/26
     Known via "static", distance 1, metric 0
     Routing Descriptor Blocks:
     * 212.45.76.4
         Route metric is 0, traffic share count is 1
        Görüldüğü gibi yeni ağ geçidimiz 212.45.76.4’tür. Burada dikkat edilmesi gereken şey, bloğumuzun küçülmüş olduğudur, az önce /22 olarak yönlendirilen blok şu an /26 olarak yönlendirilmektedir. Bu da kanın atar damarlardan kılcal damarlara dağılması gibi düşünülebilir, en genelden en özele doğru yönlendirme devam etmektedir. 212.45.76.4’teki yönlendirme tablosu aşağıdadır.
IDSL> ip route stat
Dest
FF
Len
Interface
Gateway
Metrıc
stat
Tımer
Use
212.45.76.193
00
32
wan0ppp
212.45.76.193
2
002f
0
1676
212.45.76.192
00
26
wan0ppp
212.45.76.193
1
002f
0
1832303
        Görüldüğü gibi 212.45.76.193 IP’sine wan bağlantısından ulaşılmaktadır ve trace bir sonraki noktada tamamlanmaktadır.
Daha önce belirttiğim gibi burada gösterilen paketin “gidiş yoludur”, aynı paketlerin aynı şekilde geri de gelebilmesi gerekir, ancak bunu da ayrıca göstermeyi gereksiz görüyorum. Ancak geri dönüş için şöyle bir yol düşünülebilir “paketi yönlendireceğin adresi biliyorsan yönlendir yoksa varsayılan (default) yönlendiriciye gönder”. Bu sistemle 212.45.64.226’ye ulaşmak isteyen bir paket 212.45.76.193’ten çıkar ve varsayılan yönlendirmeleri izleyerek omurga yönlendiricisine kadar ulaşır, omurga yönlendiricisi ise zaten 212.45.64.226’ya nasıl ulaşacağını bilmektedir. Bu şekilde geliş/gidiş yönlendirmeleri tamamlanmış olur.
Burada belirtilen yapının şeması ise şu şekildedir.
Sanırım bu şemayla traceroute sonucu beraber incelendiğinde, IP yönlendirme konusunda net bir fikir elde edilebilir.
NOT: Yukarıda verilen tüm şekil ve yönlendirme tablolarında yalnızca ilgili kısımlar gösterilmiş diğer kısımlar karışıklığa yol açmaması için çıkartılmıştır.

 
TEK NOLTADAN INTERNETE BAĞLANTI ÜZERİNDE YÖNLENDİRME ÖRNEĞİ
        Yönlendirmenin temel prensipleri dokümanın ilk kısmında anlatılmıştır, ancak internet üzerinde yönlendirme ağın büyüklüğü ve araya giren daha gelişmiş yönlendirme protokolleri nedeniyle çok daha karmaşık bir hal alır. Bu yüzden burada internet yönlendirmesi anlatılırken, yalnızca tek noktadan servis alan bir kurumun yönlendirmesi anlatılacaktır. Bir önceki anlatımdan farklı olarak olayın sistematiği de anlatılmaya çalışılacak ve teknik yapının yanında bir takım prosedürel olaylardan da bahsedilecektir.
        30 bilgisayarar ve 1 routerdan oluşan LAN’ını internete bağlamak isteyen bir kurum düşünelim. Öncelikle servis alınacak kuruma (ISS-Internet Servis Sağlayıcı) bağlantıyı sağlayacak bir ortam gerekmektedir, hemen hiç bir durumda bu yalnızca kısa mesafelerde çalışan ethernet ile mümkün olmamaktadır. Değişik alternatifler mümkün olmasına rağmen burada Telekom şirketinden kiralanan data iletişim hattının kullanıldığını ve bu hattın her iki ucuna konulan birer özel modem ile ISS ile kurum arasında iletişimin hazır olduğunu düşünelim. Modemin bağlantısı seri arayüz vasıtasıyla routera yapılacaktır. Bu durumda router ethernet üzerinden bilgisayarlarla, modem üzerinden de ISS tarafında bulunan router ile haberleşebilecek ve bilgisayarlar için internete bir geçit görevi görecektir (ağ geçidi-gateway). Fiziksel bağlantı hazır olduğunda internet üzerinde kullanılması gereken IP numaralarına ihtiyaç duyulur. IP’ler kuruma yine ISS tarafından sağlanacaktır, ve ISS’in kullandığı IP bloğunun bir bölümünü oluşturacaktır. Bu durumda ISS’in bu kuruma 64 IP’lik bir blok verdiğini düşünelim. Bu blok 212.45.72.0/26, routerın ethernet arayüzüne verilen IP ise 212.45.72.1 olsun. Aynı zamanda routerın modeme bağlı seri aryüzüne 212.45.95.2/30, ISS tarafında bulunan routerın modeme bağlı seri arayüzüne ise 212.45.95.1/30 IP’lerinin atandığını düşünelim (Burada verilen IP’lerin belirlenmesi ISS’in sistem yöneticisi tarafından yapılacaktır).
        Bu anlatılanları şematik olarak gösterirsek :
        Görüldüğü gibi sistemde routerlar en az iki farklı networkte bulunmaktadırlar, kurum routerı hem kurum için networküne hem de routerlar arası geçiş networküne, ISS routerı ise hem routerlar arası geçiş networküne hem de ISS networküne bağlıdır ve her iki networkte arayüzleri bulunmaktadır. Aynı zamanda kurum ağında bulunan tüm bilgisayarlar ISS tarafından atanan bloktan özgün birer IP numarasına sahiptirler ve ağ geçidi olarak routerı kullanmaktadırlar.
        Burada görülen sistemlerin yönlendirme tablolarını teorik olarak çıkaralım.
212.45.72.2 (diğer bilgisayarlar ile benzer şekilde):
Maske
Geçit
Tür
0.0.0.0
0.0.0.0
212.45.72.1
Statik
212.45.72.0
255.255.255.192
212.45.72.2
Doğrudan Bağlı
212.45.72.1/212.45.95.2:
Maske
Geçit
Tür
0.0.0.0
0.0.0.0
212.45.95.1
Statik
212.45.72.0
255.255.255.192
212.45.72.1
Doğrudan Bağlı
212.45.95.0
255.255.255.252
212.45.95.2
Doğrudan Bağlı
212.45.95.1 :
Maske
Geçit
Tür
0.0.0.0
0.0.0.0
212.45.65.9*
Statik
212.45.72.0
255.255.255.192
212.45.95.2
Statik
212.45.95.0
255.255.255.252
212.45.95.1
Doğrudan Bağlı
212.45.65.0
255.255.255.0
212.45.65.7*
Doğrudan Bağlı
* Daha önceki örneklerden yola çıkılarak belirtilmiştir.
        Görüldüğü gibi kurumda kullanılan sistemin yapısı son derece yalındır, iç network dışında kalan tüm IP’ler routera yönlendirilerek internete “bırakılırlar”, bundan sonrasını ISS routerları halletmektedir.
        İnternet trafiğinin ISS dışındaki akışını detaylı olarak anlatmak ise bu dokümanın kapsamına sığmayacak kadar geniş bir konudur, ancak kabaca şu şekilde ifade edilebilir. Her IP, ISS dışında aynı bloktan diğer IP’ler ile aynı şekilde hareket eder. Örneğin son örnekte kuruma verilen IP bloğu (212.45.72.0/26) aslında ISS’in kendi bloğu olan 212.45.64.0/19’un bir alt bloğudur (subnet), ve internet üzerinde 212.45.64.0/19 bloğu olarak yönlendirilir. Ancak paketler ISS routerlarına ulaştıktan sonra 212.45.72.0/26 yönlendirmesi yapılır.
        Son olarak belirtilmesi gereken birkaç şey var. Bu dokümanda ana amaç TCP/IP yönlendirmesine yabancı kullanıcılar için bir temel oluşturmak idi, network mühendisi haline getirmek değil. Bu yüzden örnek olarak verilen yönlendirmelerin tamamı mümkün olduğunca basit seçilen statik yönlendirmelerdir, gerçek durumlarda ise -orta-büyük ölçekli sistemlerde- durum genellikle böyle olmayıp daha karmaşık olan dinamik yönlendirme protokolleri kullanılanır (rip, ospf, (e)igrp, bgp gibi).


Kaynak:ANONİM

xxxxxx