logo

11 Ocak 2014 Cumartesi

IP YÖNLENDİRME:

IP YÖNLENDİRME:





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