Logic
New member
- Katılım
- 19 Haz 2005
- Mesajlar
- 137
- Reaction score
- 0
- Puanları
- 0
TCP/IP Yönlendirme
Önceki dokümanda TCP/IP’nin ne oldugunu ve adreslemenin nasil
yapildigi anlatilmisti, paketlerin internet üzerinde yollarini nasil bulduklarini ise
bu dokümanda anlatacagiz.
Öncelikle bir TCP/IP networküne baglanmak isteyen bir bilgisayarda
yapilmasi gereken ayarlari ele alalim. TCP/IP protokolü tanitilirken bir takim
bilgilere ihtiyaç duyulmaktadir, bunlar
1. IP numarasi *
2. Subnet maskesi *
3. Ag geçidi (Gateway)
4. DNS Sunucularidir
Yanlarinda * bulunan bilgiler mutlaka girilmesi gerken bilgilerdir, digerleri duruma göre bos birakilabilir.
Buradaki IP numarasi ve subnet maskesi hakkinda detayli bilgi önceki
dokümanlarda verilmistir, DNS sunuculari ise daha sonra açiklanacaktir. Bu
kisimda özellikle üzerinde durulacak olan “ag geçidi” kavrami ve internet
üzerinde yönlendirmedir. Buradan hareketle yukaridaki bilgilere sahip bir
bilgisayarin yapacaklarini özetleyelim, ilk olarak daha önce anlatildigi sekilde IP
adresini ve subnet maskesini kullanarak ait oldugu networkü bulacaktir. Daha
sonra kendisi için bir IP yönlendirme tablosu olusturacaktir.
Yönlendirme tablosu olustururken izleyecegi yol sudur. Kendi IP
numarasina giden tüm paketleri kendisine yönlendirecektir. Ayni sekilde kendisi
ile ayni networkte olan adreslere bu IP numarasinin ait oldugu arayüz üzerinden
ulasmaya çalisacaktir. Bu network disinda kalan adreslere yönelen tüm paketleri
ise ag geçidi olarak tanimlanan cihaza yönlendirecektir (Buradan da anlasilacagi
gibi, ag geçidi olarak tanimlanan IP numarasi mutlaka kendi IP numarasi ile ayni
subnet içinde olmalidir, aksi taktirde bilgisayar ag geçidine ulasamayacaktir).
IP yönlendirme tablosunun olusturulabilmesi için gerekenlere bir bakalim.
Öncelikle ulasilmak istenen network ve bu networkün maskesi bilinmelidir ve bu
networke ulasmak için kullanilacak arayüz de gerekmektedir.
Bir örnekle konuyu daha açik hale getiremek için, 212.45.64.226 IP
numarasina ve 255.255.255.224 subnet maskina sahip bir bilgisayar için ag
geçidinin 212.45.64.225 olarak tanimlandigini düsünelim.
Bu durumda bilgisayar ait oldugu networkü 212.45.64.224 olarak
hesaplayacaktir, olusturdugu yönlendirme tablosu ise su sekilde ifade edilebilir.
Öncelikle kendi IP numarasina giden paketleri kendi kendine gönder.
212.45.64.224 networkünde olan tüm paketleri 212.45.64.226 IP numarasini
kullanarak gönder, bu networkün disindaki adreslere gidecek paketleri ise
212.45.64.225 IP numarasi üzerinden yönlendir. Tablo olarak ifade edecek
olursak,
Hedef Network Maske Ag 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) bilgisayarin kendisini ifade eder, 255.255.255.255 ise tek bilgisayari tanimlayan subnet
maskesidir.
sonucunu elde edebiriz. Burada belirtilen arayüz bilgisayarin bu IP numarasina
ulasmak için kullandigi arayüzdür, bu arayüzün tanimi ve gösterimi çesitli isletim
sistemleri arasinda farkli olabilmektedir, unix türevi sistemlerde ethernet için
eth0, le0, hme0 gibi isimler kullanilirken (burada 0 kaçinci arayüz oldugunu
gösterir, örnegin bir bilgisayarda iki ethernet karti varsa bunlar eth0 ve eth1 ya da
hme0 ve hme1 olarak tanimlanirlar), windows tabanli sistemlerde ise bundan
farkli olarak arayüzler sahip olduklari birincil IP ile tanimlanirlar, örnegin
örnegimizdeki arayüz, arayüzün birincil IP numarasi olan 212.45.64.226 ile
tanimlanacaktir.
Bu tanimlamalarin yapilmis oldugu bir bilgisayarin IP yönlendirme tablosu
incelenecek olursa (IP numarasinin tanimlandigi bilgisayar WinNT Server 4.0’dir)
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 tanimlanabilecek en genel networktür. Bütün IP numaralarini kapsar.
Yukaridaki tabloda birinci, üçüncü ve dördüncü satirlarin bizim
olusturdugumuz tabloda yer aldigi digerlerinin ise yer almadigi hemen dikkati
çekecektir. Burada ikinci satir 127 ile baslayan tüm adreslerin loopback
arayüzüne yönlendirilmesi gerektigini belirtmektedir. Bu da 127 ile baslayan tüm
adreslerin aslinda kendi kullandigimiz bilgisayari tanimladigi anlamina gelir.
Besinci, altinci ve yedinci satirlar ise broadcast ve multicast tanimlamalaridir,
broadcast yönlendirmeler belli bir IP numarasina degil tüm networke ulasilmaya
çalisildiginda kullanilirlar. Ancak yönlendirme tablosunun bu tanimlari sistem
tarafindan otomatik olarak yapilmaktadir, kullanicinin bunlari ileride deginilecegi
sekilde degistirmesine, silmesine ya da eklemesine gerek duyulmamaktadir.
Bizim olusturdugumuz tabloda bulunmayan “metric” hanesi ise esdeger
yönlendirmeler arasinda hangisinin önce kullanilacagini belirtir, daha sonra
incelenecektir.
Bir IP yönlendirme tablosu incelenirken ya da olusturulurken dikkat
edilmesi gereken en önemli noktalardan biri yönlendirme tablosunun en özelden
en genele dogru taranacagidir, örnegin 212.45.64.226 numarali IP’ye ulasmaya
çalisirken bu IP numarasinin 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
kaldigi görülür ama bunlarin arasinda en özel olan kullanilacaktir, bu da
212.45.64.226/255.255.255.255’tir.
Örneklerle devam ederek konumuzu genisletelim. 212.45.64.226/27 IP
numarali bilgisayarimizin 212.45.64.231 IP numarali bilgisayara ulasmak
istedigini düsünelim. Öncelikle kendi yönlendirme tablosunda bulunan network
adresleri ile subnet maskelerini kullanarak bu IP’nin yönlendirme tablosundaki
networklerden herhangi birinin dahilinde olup olmadigini hesaplayacaktir. Hem
birinci (0.0.0.0/0) hem de üçüncü satirlarin (212.45.64.224/27) bu IP’yi kapsadigi
bu hesaplama sonucu ortaya çikacaktir, 212.45.64.224/27 digerinden daha özel
bir tanimlama oldugu için bunu kullanacak ve paketi kendi IP numarasi üzerinden
LAN’e gönderecektir. Bunu komut satirinda 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ügü gibi 212.45.64.226 ve 212.45.64.226 bilgisayarlari
ayni networkte bulunduklari için hiçbir ag geçididen geçmeksizin
haberlesebilmektedirler.
Bu kez ayni bilgisayari kullanarak 212.45.64.20 IP numarasina sahip
bilgisayara ulasmaya çalistigimizi düsünelim. Bilgisayarimiz yine yönlendirme
tablosunu kullanarak bu IP’nin hangi networkler tarafindan kapsandigini bulmaya
çalisacaktir. Bulacagi networkün ise yalnizca 0.0.0.0/0 oldugu görülecektir.
(Daha önce de söylendigi gibi 0.0.0.0/0 tüm networkleri kapsamaktadir, bu
yüzden default route adi verilmistir). Bu durumda paketler, ag geçidi olarak
tanimlanan 212.45.64.225 IP numarali cihaza yönlendirilecektir yani bir anlamda
“top 212.45.64.225’e atilmistir”. Kritik soru da burada gelmektedir, 212.45.64.225
IP numarali cihaz 212.45.64.20 IP numarasina nasil ulasacaktir. Ag geçidinin
özelligini de tam burada tanimlamak faydali olacaktir. Bir cihazin ag geçidi
görevini görebilmesi için en az iki farkli network’te arayüzünün bulunmasi
gerekmektedir. Örnegin bir ag geçidi x.y.z.0/24 networkündeki bilgisayarlarin
a.b.c.0/24 networkündeki bilgisayarlara ulasmasi için kurulmussa, bir arayüzünün
(örnegin ethernet) x.y.z.0/24 networküne bagli, baska bir arayüzünün (ethernet,
seri/dialup arabirim vs) a.b.c.0/24 networküne bagli olmasi gerekmektedir.
Örnegimizden kopmadan devam edersek, 212.45.64.20 IP numarali
bilgisayar ag yönlendiricisine 1 numarali ethernet arayüzünden, 212.45.64.226
IP numarali bilgisayar ise ag yönlendiricisine 2 numarali ethernet arayüzünden
bagli oldugunu düsü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ügü gibi 212.45.64.20 IP numarali bilgisayara 212.45.64.225
numarali cihaz üzerinden ulasilmistir. Buradan çikan sonuç 212.45.64.225 IP
numarali cihazin en az iki arayüzü/IP adresinin oldugu ve bu arayüzlerden biri
212.45.64.224 networkünde iken digerinin 212.45.64.0 networkünde oldugudur.
212.45.64.225 IP numarali cihazin yönlendirme tablosu hakkinda basit bir yorum
yaparsak sö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 netmaski ögrenmek mümkün degildir, 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 numarasidir. Ayni sekilde arayüzler de (ethernet 0, ethernet 1) önbilgi olarak yazilmistir, arayüzlerin ne oldugu eldeki
verilerle tesbit edilemez.
Önceki dokümanda TCP/IP’nin ne oldugunu ve adreslemenin nasil
yapildigi anlatilmisti, paketlerin internet üzerinde yollarini nasil bulduklarini ise
bu dokümanda anlatacagiz.
Öncelikle bir TCP/IP networküne baglanmak isteyen bir bilgisayarda
yapilmasi gereken ayarlari ele alalim. TCP/IP protokolü tanitilirken bir takim
bilgilere ihtiyaç duyulmaktadir, bunlar
1. IP numarasi *
2. Subnet maskesi *
3. Ag geçidi (Gateway)
4. DNS Sunucularidir
Yanlarinda * bulunan bilgiler mutlaka girilmesi gerken bilgilerdir, digerleri duruma göre bos birakilabilir.
Buradaki IP numarasi ve subnet maskesi hakkinda detayli bilgi önceki
dokümanlarda verilmistir, DNS sunuculari ise daha sonra açiklanacaktir. Bu
kisimda özellikle üzerinde durulacak olan “ag geçidi” kavrami ve internet
üzerinde yönlendirmedir. Buradan hareketle yukaridaki bilgilere sahip bir
bilgisayarin yapacaklarini özetleyelim, ilk olarak daha önce anlatildigi sekilde IP
adresini ve subnet maskesini kullanarak ait oldugu networkü bulacaktir. Daha
sonra kendisi için bir IP yönlendirme tablosu olusturacaktir.
Yönlendirme tablosu olustururken izleyecegi yol sudur. Kendi IP
numarasina giden tüm paketleri kendisine yönlendirecektir. Ayni sekilde kendisi
ile ayni networkte olan adreslere bu IP numarasinin ait oldugu arayüz üzerinden
ulasmaya çalisacaktir. Bu network disinda kalan adreslere yönelen tüm paketleri
ise ag geçidi olarak tanimlanan cihaza yönlendirecektir (Buradan da anlasilacagi
gibi, ag geçidi olarak tanimlanan IP numarasi mutlaka kendi IP numarasi ile ayni
subnet içinde olmalidir, aksi taktirde bilgisayar ag geçidine ulasamayacaktir).
IP yönlendirme tablosunun olusturulabilmesi için gerekenlere bir bakalim.
Öncelikle ulasilmak istenen network ve bu networkün maskesi bilinmelidir ve bu
networke ulasmak için kullanilacak arayüz de gerekmektedir.
Bir örnekle konuyu daha açik hale getiremek için, 212.45.64.226 IP
numarasina ve 255.255.255.224 subnet maskina sahip bir bilgisayar için ag
geçidinin 212.45.64.225 olarak tanimlandigini düsünelim.
Bu durumda bilgisayar ait oldugu networkü 212.45.64.224 olarak
hesaplayacaktir, olusturdugu yönlendirme tablosu ise su sekilde ifade edilebilir.
Öncelikle kendi IP numarasina giden paketleri kendi kendine gönder.
212.45.64.224 networkünde olan tüm paketleri 212.45.64.226 IP numarasini
kullanarak gönder, bu networkün disindaki adreslere gidecek paketleri ise
212.45.64.225 IP numarasi üzerinden yönlendir. Tablo olarak ifade edecek
olursak,
Hedef Network Maske Ag 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) bilgisayarin kendisini ifade eder, 255.255.255.255 ise tek bilgisayari tanimlayan subnet
maskesidir.
sonucunu elde edebiriz. Burada belirtilen arayüz bilgisayarin bu IP numarasina
ulasmak için kullandigi arayüzdür, bu arayüzün tanimi ve gösterimi çesitli isletim
sistemleri arasinda farkli olabilmektedir, unix türevi sistemlerde ethernet için
eth0, le0, hme0 gibi isimler kullanilirken (burada 0 kaçinci arayüz oldugunu
gösterir, örnegin bir bilgisayarda iki ethernet karti varsa bunlar eth0 ve eth1 ya da
hme0 ve hme1 olarak tanimlanirlar), windows tabanli sistemlerde ise bundan
farkli olarak arayüzler sahip olduklari birincil IP ile tanimlanirlar, örnegin
örnegimizdeki arayüz, arayüzün birincil IP numarasi olan 212.45.64.226 ile
tanimlanacaktir.
Bu tanimlamalarin yapilmis oldugu bir bilgisayarin IP yönlendirme tablosu
incelenecek olursa (IP numarasinin tanimlandigi bilgisayar WinNT Server 4.0’dir)
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 tanimlanabilecek en genel networktür. Bütün IP numaralarini kapsar.
Yukaridaki tabloda birinci, üçüncü ve dördüncü satirlarin bizim
olusturdugumuz tabloda yer aldigi digerlerinin ise yer almadigi hemen dikkati
çekecektir. Burada ikinci satir 127 ile baslayan tüm adreslerin loopback
arayüzüne yönlendirilmesi gerektigini belirtmektedir. Bu da 127 ile baslayan tüm
adreslerin aslinda kendi kullandigimiz bilgisayari tanimladigi anlamina gelir.
Besinci, altinci ve yedinci satirlar ise broadcast ve multicast tanimlamalaridir,
broadcast yönlendirmeler belli bir IP numarasina degil tüm networke ulasilmaya
çalisildiginda kullanilirlar. Ancak yönlendirme tablosunun bu tanimlari sistem
tarafindan otomatik olarak yapilmaktadir, kullanicinin bunlari ileride deginilecegi
sekilde degistirmesine, silmesine ya da eklemesine gerek duyulmamaktadir.
Bizim olusturdugumuz tabloda bulunmayan “metric” hanesi ise esdeger
yönlendirmeler arasinda hangisinin önce kullanilacagini belirtir, daha sonra
incelenecektir.
Bir IP yönlendirme tablosu incelenirken ya da olusturulurken dikkat
edilmesi gereken en önemli noktalardan biri yönlendirme tablosunun en özelden
en genele dogru taranacagidir, örnegin 212.45.64.226 numarali IP’ye ulasmaya
çalisirken bu IP numarasinin 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
kaldigi görülür ama bunlarin arasinda en özel olan kullanilacaktir, bu da
212.45.64.226/255.255.255.255’tir.
Örneklerle devam ederek konumuzu genisletelim. 212.45.64.226/27 IP
numarali bilgisayarimizin 212.45.64.231 IP numarali bilgisayara ulasmak
istedigini düsünelim. Öncelikle kendi yönlendirme tablosunda bulunan network
adresleri ile subnet maskelerini kullanarak bu IP’nin yönlendirme tablosundaki
networklerden herhangi birinin dahilinde olup olmadigini hesaplayacaktir. Hem
birinci (0.0.0.0/0) hem de üçüncü satirlarin (212.45.64.224/27) bu IP’yi kapsadigi
bu hesaplama sonucu ortaya çikacaktir, 212.45.64.224/27 digerinden daha özel
bir tanimlama oldugu için bunu kullanacak ve paketi kendi IP numarasi üzerinden
LAN’e gönderecektir. Bunu komut satirinda 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ügü gibi 212.45.64.226 ve 212.45.64.226 bilgisayarlari
ayni networkte bulunduklari için hiçbir ag geçididen geçmeksizin
haberlesebilmektedirler.
Bu kez ayni bilgisayari kullanarak 212.45.64.20 IP numarasina sahip
bilgisayara ulasmaya çalistigimizi düsünelim. Bilgisayarimiz yine yönlendirme
tablosunu kullanarak bu IP’nin hangi networkler tarafindan kapsandigini bulmaya
çalisacaktir. Bulacagi networkün ise yalnizca 0.0.0.0/0 oldugu görülecektir.
(Daha önce de söylendigi gibi 0.0.0.0/0 tüm networkleri kapsamaktadir, bu
yüzden default route adi verilmistir). Bu durumda paketler, ag geçidi olarak
tanimlanan 212.45.64.225 IP numarali cihaza yönlendirilecektir yani bir anlamda
“top 212.45.64.225’e atilmistir”. Kritik soru da burada gelmektedir, 212.45.64.225
IP numarali cihaz 212.45.64.20 IP numarasina nasil ulasacaktir. Ag geçidinin
özelligini de tam burada tanimlamak faydali olacaktir. Bir cihazin ag geçidi
görevini görebilmesi için en az iki farkli network’te arayüzünün bulunmasi
gerekmektedir. Örnegin bir ag geçidi x.y.z.0/24 networkündeki bilgisayarlarin
a.b.c.0/24 networkündeki bilgisayarlara ulasmasi için kurulmussa, bir arayüzünün
(örnegin ethernet) x.y.z.0/24 networküne bagli, baska bir arayüzünün (ethernet,
seri/dialup arabirim vs) a.b.c.0/24 networküne bagli olmasi gerekmektedir.
Örnegimizden kopmadan devam edersek, 212.45.64.20 IP numarali
bilgisayar ag yönlendiricisine 1 numarali ethernet arayüzünden, 212.45.64.226
IP numarali bilgisayar ise ag yönlendiricisine 2 numarali ethernet arayüzünden
bagli oldugunu düsü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ügü gibi 212.45.64.20 IP numarali bilgisayara 212.45.64.225
numarali cihaz üzerinden ulasilmistir. Buradan çikan sonuç 212.45.64.225 IP
numarali cihazin en az iki arayüzü/IP adresinin oldugu ve bu arayüzlerden biri
212.45.64.224 networkünde iken digerinin 212.45.64.0 networkünde oldugudur.
212.45.64.225 IP numarali cihazin yönlendirme tablosu hakkinda basit bir yorum
yaparsak sö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 netmaski ögrenmek mümkün degildir, 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 numarasidir. Ayni sekilde arayüzler de (ethernet 0, ethernet 1) önbilgi olarak yazilmistir, arayüzlerin ne oldugu eldeki
verilerle tesbit edilemez.