Önceki dokü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ı *
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.
* 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.
C:\>route print
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
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.
C:\>tracert 212.45.64.20
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.
*
Buradaki traceroute sonucu ile netmaskı öğrenmek mümkün değildir, burada
verileni bir önbilgi kabul edebilirsiniz. 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
ş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.
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.
Routing tables
NOT:
Ş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.
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
Ş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]
1 <10 ms <10 ms <10 ms grf.marketweb.net.tr [212.45.64.225]
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
1 <10 ms <10 ms <10 ms grf.marketweb.net.tr [212.45.64.225]
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. C:\>tracert 212.45.76.193
Tracing route to anadolunet-idsl.anadolunet.com.tr [212.45.76.193]
1 <10 ms <10 ms <10 ms grf.marketweb.net.tr [212.45.64.225]
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
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
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
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
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.
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. 212.45.72.2 (diğer bilgisayarlar ile benzer şekilde):
212.45.72.1/212.45.95.2:
212.45.95.1 :
* 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). |