Bu bölümde farklı coğrafi noktalarda yer alan TCP/IP ağlarının birbirleri ile olan iletişiminin sağlanması için en önemli anahtar olan, yol bulma yani yönlendirme konusu açıklanacaktır.
Daha önceki açıklamalarımızda IP (Internet Protokol)
katmanının datagram'ların (TCP/IP’de iletişim için kullanılan
bilgi birim miktarı) varış noktasına ulaşmasını sağlamakla
yükümlü olduğundan bahsettik. Fakat bu işlemin nasıl
yapılacağının detaylarını incelemedik. Bir datagram'ın varış
noktasına ulaştırılmasına 'yönlendirme' (routing) adı
verilmektedir. Yönlendirmenin nasıl yapıldığını kavrayabilmek
için IP'nin dayandığı modeli anlamak gereklidir. IP katmanı
daima, bir sistemin bir ağa bağlı olduğunu varsayar. Ethernet
tabanlı bir ağ üzerinde sadece karşı istasyonun Ethernet
adresini bilmek yeterli olduğu için herşey çok kolaydır. Fakat
datagram'lar farklı ağlar üzerindeki noktalara gönderilmek
istendiğinde sorunlar başlar.
Bir ağ üzerinden diğer ağ üzerine geçecek bilgi
trafiğini kontrol etmek, onu yönlendirmek görevi genel olarak
'geçiş noktası aygıtlarına' (gateway) aittir. Internet üzerinde
IP protokolü kullanan ağlarda bu işleri yerine getiren aygıtlara
yönlendirici (router) adı verilir. Böyle bir görev üstlenen
makine üzerinde birden fazla bilgisayar ağı bağlantısı yer
alıp, farklı ağların bilgi trafikleri bu yolla birbirlerine
iletilir. IP ağlarındaki yönlendirme tamamen varış noktası
adresi temeline oturmaktadır. Örneğin ODTÜ'nün uluslararası
Internet bağlantısını yapan yönlendirici 144.122.1.2 adresinde
bulunmaktadır. Dolayısıyla 144.122.1 ağı üzerinde yer alan
diğer sistemler 144.122.1.2 adresini yurt dışı adreslere ulaşmak
için geçiş noktası olarak tanımak zorundadırlar. Benzer bir
şekilde Bilgisayar Mühendisliği bölümünün kampus omurga ağına
geçiş noktası olarak kullandığı bilgisayarın adresi de
144.122.71.1'dir. 144.122.71 ağı üzerinde bulunan bir bilgisayar,
kampus içindeki başka bir bilgisayara ulaşmak için bu geçiş
noktasından geçmek zorundadır. Bu ağ üzerinde bulunan bir
bilgisayar datagram yollamak istediğinde öncelikle ulaşmak
istediği adresin aynı ağ üzerinde olup olmadığına bakar, eğer
varış noktası aynı ağ üzerinde ise bilgi doğrudan varış
adresine yollanır. Eğer değilse, sistem varış noktasına ulaşmak
için gerekli bilgileri araştırmaya başlar.
Burada 195.194.34.2 nolu bilgisayar ile 200.123.89.3 nolu
bilgisayarın haberleşebilmesi için önce aynı ağda olup
olmadıklarını subnet maskesi ile kontrol etmeleri gerekir. Bu
bilgisayarlar aynı ağda olmadıkları için yönlendirici
kullanmalıyız.
Yönlendiricinin iki bacağı vardır. TCP/IP protokol
kümesi ağdaki her ucun ayrı bir IP adresinin olmasını şart
koşuyor bu yüzden yönlendiricinin bacaklarına da IP adresi
koyuyoruz. Yönlendiricinin bacaklarından adres verirken o bacak
hangi ağa bağlıysa o ağa uygun bir adres veririz. Burada da
ağdaki ilk adresi veriyoruz. İki ağında yönlendiriciden haberdar
olması için TCP/IP konfigürasyonu kısmında “default gateway”
parametresi yani kendi ağımızda olmayan adrese ulaşmamız
gerekirse ilişki kuracağımız yönlendirici gösteriyor.
195.194.34.0 ağında bulunuyorsak bilgisayarların hepsinde
default gateway olarak 195.194.34.1 adresini veriyoruz. Bu
adres yönlendiricinin bize bakan bacağını gösteriyor.
Yönlendirici olarak router adı atılda satılan cihazlar
ya da WinNT bilgisayarı (server ya da workstation) yönlendirici
olarak kullanılır.
Yönlendirme Protokolleri
Yukarıda da açıklandığı gibi yönlendirme, bir
bilgisayar ağı üzerinde yer alan bir bilgisayarın aynı ya da
farklı bir ağ üzerinde yer alan başka bir bilgisayara nasıl
ulaşacağına karar verirken kullanılan yöntemdir. Bu sayede
herhangi iki farklı noktada yer alan kullanıcılar birbirleri ile
bilgisayar kullanarak haberleşebilmektedir. Dolayısıyla
yönlendirmeyi bir nevi yapıştırıcı gibi düşünebiliriz.
İletişimin en önemli noktası olmasından dolayı yeni
bilgisayar ağı kuruluşlarında en önemli sorunlardan birisi
yanlış yapılan yönlendirme olmaktadır. Bu noktada yönlendirme
ve yönlendirme protokolü arasındaki farkı açıklamak ileride
oluşabilecek yanlış anlamaları önlemek açısından yararlı
olacaktır. Bir bilgisayar ağına bağlı her sistem bilgiyi bir
noktadan bir diğerine yönlendirebilir ama her sistem üzerinde
yönlendirme protokolü çalışmaz. Yönlendirme, bir yönlendirme
tablosundaki bilgiye göre bilgi paketlerinin geçirilmesidir.
Yönlendirme protokolü ise bu tabloların oluşturulmasında bilgi
değişimini sağlayan programlardır. Basit bir bilgisayar ağında
bir yönlendirme protokolü çalışmadan, sabit tablolar kullanarak
iletişim sağlanabilir.
Temel olarak 3 yönlendirme yöntemi vardır (Aşağıda
verilecek olan komutlar UNIX işletim sistemlerinde bulunmakta olup
diğer sistemlerde farklı komutlar kullanılabilir):
Minimum Yönlendirme: Bir bilgisayar ağı başka bir
bilgisayar ağına bağlı olmaksızın tek başına çalışıyorsa
minimum yönlendirme ile ağ üzerindeki iletişimi sağlayabiliriz.
(Bu yönlendirme genelde sadece <<if config>> komutu ile
yapılır)
Sabit Yönlendirme: Kurulu bir bilgisayar ağının
dış dünyaya bir ya da birkaç çıkışı varsa sabit
yönlendirmeyi kullanabilir. (Bu yönlendirme genelde route komutu
ile yapılır). Gerekli komut kullanılarak ağın dış dünyaya
çıkan trafiği çıkış noktasına yönlendirilmiş olur.
Dinamik Yönlendirme: Ağın dış dünya ile olan
iletişimi birden fazla noktadan yapılıyorsa, yönlendirme
protokolü ile dinamik olarak bir yönlendirme tablosu tutulur ve
yönlendirme protokolleri birbirleri ile gerekli bilgi alışverişini
yaparak en uygun çıkışı kullanırlar. Böylece ağ yöneticisinin
elle müdahalesi gerekmeksizin en uygun yolu bu protokoller bulurlar.
Dolayısıyla bir çıkış noktasında meydana gelen bir sorunda tüm
trafik otomatik olarak diğerine yönlendirilebilir.
Bu yönlendirme yöntemlerini biraz daha detayları ile
örnekler vererek inceleyelim.
(Şekil 3.1) Minimum yönlendirme
Minimum Yönlendirme Tablosu
Aşağıdaki şekilde görülen ağ üzerinde
# ifconfig le0 144.122.99.2 netmask 255.255.255.0 broadcast
144.122.99.255
komutu kullanılarak arayüzünün ağ bağlantısı yapılmış olan
bir bilgisayarın yönlendirme tablosunun içeriğine bakarsak
%
netstat -rn
Routing
Tables
Destination
Gateway Flags Refcnt Use Interface
127.0.0.1 127.0.0.1 UH 1 132
lo0
144.122.99.0 144.122.99.2 U 26 49041 le0
İlk satırdaki 127.0.0.1 loopback adres olarak bilinen
lokal bilgisayarın kendisini tanımlayan ve Internet protokolünü
çalıştıran her bilgisayarda bulunan standart bir adrestir.
İkinci satırda ise 144.122.99.0 ağına, ethernet le 0 arayüzü
üzerinden gidileceğini belirtiyor. 144.122.99.2 ise uzaktaki
(remote) bir geçiş noktası (gateway) adresi değil le 0 arayüzünün
kendi adresidir. Flags alanlarına bakacak olursak her iki satırda
da bulunan U (up), her ikisinin de kullanıma hazır olduğunu
gösterir. Her iki satırda da Flags alanında G (Gateway) işareti
yoktur zira her iki arayüze aradaki bir geçiş kapısı (gateway)
üzerinden ulaşılmamaktadır. Loopback yönlendirme tanımının
bulunduğu satırdaki H (Host) işareti bu yönlendirme ile sadece
bir bilgisayara (yani kendisine) ulaşılabileceğini
tanımlamaktadır. Bu satır bilindiği gibi her yönlendirme
tablosunda bulunmaktadır. Bu yönlendirme tablosu görüldüğü
gibi sadece 144.122.99.0 ağı ile ilgili yönlendirme bilgisine
sahiptir. Dolayısıyla sadece bu ağ üzerinde yer alan
bilgisayarlar birbirleri ile iletişime geçebilmektedirler. Bu
yönlendirme tablosu oluştuktan sonra herhangi bir problem olup
olmadığının testi ping komutu ile kolayca yapılabilir. Önce bu
ağ üzerinde yer alan bir bilgisayarı ping komutu ile kontrol
edelim:
%
ping 144.122.99.3
PING
144.122.99.3: 56 data bytes
64
bytes from 144.122.99.3: icmp_seq=0, time=11, ms
64
bytes from 144.122.99.3: icmp_seq=1, time=11, ms
^C
----144.122.99.3
PING statistics----
2
packets transmitted, 2 packets received, 0% packet loss
round-trip
(ms) min/avg/max =10/10/11
Görüldüğü gibi 144.122.99.3 ile olan iletişimin
başarılı olduğu test edilmiş oldu. Bunun yanında aynı ağ
üzerinde bulunmayan bir adrese ulaşmak istediğimizde nasıl bir
sonuçla karşılaşacağımızı test etmek istersek :
%
ping 26.40.0.17
sendto:
Network is unreachable
Gelen cevaptan da anlaşılacağı gibi, ulaşmak
istediğimiz bilgisayara ait yönlendirme bilgisine sahip olmadığı
için, bilgisayarımız datagram ları varış noktasına
iletemediğini ve o noktaya ulaşılamaz olduğu mesajını veriyor.
Eğer bilgisayar ağınızın dış dünya ile irtibatı yoksa
ifconfig ile yaratılan tablo tüm ihtiyaçlarınızı karşılamaya
yeterlidir. Ancak bir dış bağlantı varsa o zaman yönlendirme
tablosunun daha fazla bilgiye ihtiyacı vardır.
Sabit Yönlendirme Tablosu
Yukarıda da gördüğümüz gibi minimum yönlendirme
tablosu ile aynı ağ içindeki bilgisayarlara ulaşmak mümkündür.
Başka ağlar üzerindeki bilgisayarlara ulaşmak için bunlarla
ilgili bilgiler yönlendirme tablolarına girilmelidir. Yönlendirme
tablosunu yaratmak için kullanılan yolların en popüleri route
komutudur. route komutu ile yönlendirme tablosuna elle yeni
yönlendirme bilgileri eklenip çıkartılabilir.
(Şekil 3.2) Sabit yönlendirme
Örnek verecek olursak, yukarıdaki şekilde görülen
144.122.99.0 ağındaki bir bilgisayardan 144.122.71.0 ağına
ulaşmak için şöyle bir tanım yeterlidir:
#
route add 144.122.71.0 144.122.99.1 1
add
net 144.122.71.0: gateway 144.122.99.1
route komutundan sonraki 'add' argümanı yönlendirme
tablosuna bir ek yapılacağını söylemektedir. Tablodan bir bilgi
silineceği zaman 'add' yerine 'delete' kullanılarak bu silme işlemi
yapılır. Aynı satırdaki üçüncü bilgi bu yönlendirme bilgisi
ile ulaşılmak istenen adresi belirtmektedir. Ulaşılacak adres 4
farklı şekilde tanımlanabilir:
a- bir IP adresi ,
b- /etc/networks dosyasındaki bir ağ ismi,
c- /etc/hosts dosyasındaki bir bilgisayar ismi,
d- default.
Eğer ulaşılmak istenen adres olarak default
kullanılırsa aynı ağ üzerinde yer almayan her adrese burada
tanımlanan geçiş yolu üzerinden ulaşılmaya çalışılır. Eğer
bir ağın dış dünyaya çıkışı tek bir noktadan ise default
olarak bu çıkış adresi tanımlanmalıdır.
Komut satırındaki dördüncü bilgi geçiş yolu
adresidir. Bu adres ağın dış dünya ile iletişimini sağlayan
geçiş kapısıdır. Son argüman ise yönlendirme metrik
bilgisidir. Bu bilgi, sadece ROUTE bilgisinin eklenmesi durumunda
kullanılır. Metrik bilgisi değerinin 0 olması durumunda
yönlendirme bilgisinin lokal ağa ait olduğu şeklinde yorumlanır
ve daha önce netstat komutunda gördüğümüz Flags alanındaki G
(Gateway) işareti gözükmez. Ama eğer Metrik 0 değerinden büyükse
bu o zaman bu yönlendirme bilgisinin dış dünyaya açılan geçiş
yolunu tarif ettiği anlaşılır ve Flags alanına G işareti
konulur. Sabit yönlendirme 0 ve 1 dışında bir Metrik değeri
kullanmaz.
Diğer Yönlendirme Protokolleri
Bütün yönlendirme protokolleri temelde en iyi yönü ve
yolu bulma işlevini yerine getirirler ve bu yönlendirme bilgisini
ağ üzerinde dağıtırlar. Yönlendirme protokolleri iki temel
gruba bölünebilirler: İnterior (ic) ve Exterior (dis).
i-Interior (ic) Protokoller: Bu protokoller bağımsız
bir bilgisayar ağı içinde kullanılırlar. TCP/IP terminolojisinde
böyle bilgisayar ağı sistemlerine Otonom sistemler (AS) adı
verilir. Otonom sistem içinde yönlendirme bilgisi, o ağın
yöneticisi tarafından belirlenen bir iç yönlendirme protokolü
ile dağıtılır. Bu amaçla kullanılabilecek değişik Interior
(ic) protokoller mevcuttur.
HELLO en iyi yönü seçerken gecikme faktörünü kullanan
bir protokoldür. Gecikme olarak çıkış noktasından varış
noktasına gönderilen bir paketin çıkış noktasına ulaşana
kadar geçen zaman süresi kabul edilir. Bu protokol çok yaygın
olarak kullanılmamaktadır. NSFNET omurgası 56 Kbps hızında iken
kullanılmış ve zaman içinde başka protokoller ile
değiştirilmiştir.
Son zamanlarda yaygınlaşmaya başlayan bir diğer iç
protokol de OSPF'dir (Open Shortest Path First). OSPF 'equal cost
multipath routing' (eşit maliyetli çok yollu yönlendirme) mantığı
ile çalışmakta ve çok büyük ağlarda kullanılmaktadır. OSPF
aynı varış noktasına birden fazla yönlendirme bilgisini
tutmaktadır. Ancak OSPF'in bugün için sadece özel yönlendirme
cihazları üzerinde var olması ve henüz UNIX sistemlerin bir
parçası haline gelmemesinden dolayı yaygın kullanıma
geçilememektedir.
RIP (Routing Information Protocol) bu protokoller
içinde en çok kullanılanıdır. RIP'i popüler yapan sebeplerin
başında bu protokolün UNIX sistemlerin bir parçası olması
gelmektedir. RIP protokolü yönünü en düşük sıçrama
sayısı-hop count (metrik) ile seçer. RIP 'hop count', bilginin
varış noktasına ulaşana kadar geçeceği geçiş yolları
sayısını gösterir. Dolayısıyla RIP en az geçiş yoluyla
ulaşılabilecek yolu en iyi yol olarak seçer. Bu yaklaşımla yol
seçme işlemine 'distance- vector algoritması' adı verilir. RIP
protokolünün kabul edebileceği maksimum geçiş yolu (gateway)
sayısı 15 ile sınırlıdır. Ulaşılmak istenen yön ile ilgili
metrik 15'den büyükse, RIP o noktaya ulaşılamaz olduğunu
varsayar ve ilgili yönlendirme bilgisini atar. Dolayısıyla RIP çok
büyük Otonom Sistemler için uygun bir protokol değildir. Bunun
yanında en kısa yol en iyi yoldur yöntemi de yavaş ve yüklü
hatlar kullanılması durumunda doğru olmamaktadır.
Çok kullanılan bir yönlendirme protokolü olmasından
dolayı RIP protokolünün biraz daha detaylarına girelim. Daha önce
de belirttiğimiz gibi RIP pek çok UNIX sisteminin bir parçası
olarak gelmektedir. RIP bu işletim sisteminde bir yönlendirme
deamon'u olarak çalışır. UNIX'deki bu deamon routed'dir. routed
çalıştırıldığında yönlendirme tablosunu güncellemek
(update) için hemen bir istek paketi yollar ve ardından gelecek
olan cevapları dinlemeye başlar. RIP çalıştıran başka bir
sistem bu isteği aldığında kendi yönlendirme tablosu ile ilgili
güncel bilgileri cevap olarak yollar. Bu paket adresler ve bu
adreslerle ilgili metrik bilgilerini içerir. Bunun yanında
güncelleme paketleri sadece istek üzerine değil periyodik olarak
yollanmaya başlanır.
Routed bir güncelleme bilgisini aldığında gelen paket
içindeki bilgiyi alır ve kendi tablolarını günceller. Gelen
bilginin içinde yeni bir yönlendirme bilgisi varsa bunu da hemen
tablolarına ekler. Gelen paket içindeki yönlendirme bilgileri
arasında lokal tabloda bulunan bir adres için ikinci bir yol
belirtiliyorsa bu durumda lokal tablodaki ve gelen güncelleme
tablosundaki metrik bilgileri karşılaştırılır. RIP protokolü
Metrik bilgisi düşük olan noktaya daha kolay ulaşılacağı
varsayımı ile çalıştığı için tabloya bu değere sahip yöne
ilişkin adres yerleştirilir.
RIP tabloları tabii ki belli bir yerden sonra çok fazla
büyüyeceği için bir şekilde kontrol altında tutulmalıdır.
Bunun için iki yol mevcuttur. Birincisi, bir noktaya ulaşmak için
gereken metrik 15'in üzerindeyse bu nokta ulaşılamaz kabul edilir
ve tablodan çıkarılır. İkincisi, eğer bir geçiş noktası
belli bir süre güncelleme bilgisi yollamazsa RIP o noktanın ölü
olduğunu ve ulaşılamadığını varsayar. Genel olarak güncelleme
cevabı bekleme suresi 30 saniye civarındadır. Bir UNIX sisteminde
RIP protokolünü çalıştırmak için
#
routed
komutunun girilmesi yeterlidir. Genellikle komut hiç bir argüman
verilmeden çalıştırılır. Fakat kullanılan sistem bir geçiş
noktası değilse ve elindeki yönlendirme bilgisini sürekli
yayınlaması gerekmiyorsa bu durumda komut -q opsiyonu ile
çalıştırılabilir. Böylece sistem sadece yeni duyurulan
yönlendirme bilgilerini dinleyip tablolarını güncelleyecek ancak
kendisi bir duyuru yapmayacak dolayısıyla gereksiz trafik
yaratılmayacaktır.
ii-Exterior (dis) Protokoller: Otonom Sistemler
arasında yönlendirme bilgisinin birbirleri arasında değiştirilmesi
amacı ile kullanılır. Bu belli bir Otonom Sistem üzerinden hangi
ağlara ulaşılabileceği bilgisini içerir. Bu protokoller içinde
en popüler olanları EGP (Exterior Gateway Protocol) ve BGP'dir
(Border Gateway Protocol). Bu dokuman içinde EGP ve BGP
protokollerin detaylarına girilmeyecektir.
0 yorum:
Yorum Gönder