
(Ağ Temellerine Giriş - 1) Yazımda ağın ne olduğunu, türlerini, bazı protokolleri, OSI Modelini vs ele almıştım. Bu yazımda ise NAT, ICMP ve DHCP gibi konularla devam edeceğim☄️
Dynamic Host Configuration Protocol -Dinamik Ana Bilgisayar Yapılandırma Protokolü (DHCP)
Diyelim ki çalışmak için herhangi bir kafeye gittiniz. Bilgisayarınızı açtınız ve kafenin Wi-Fi adresine bağlandınız. Tek bir IP adresi bile yazmanıza gerek kalmadı. Peki bu nasıl oldu ?Kısaca anlatmak gerekirse,
1- Bilgisayarınız Wi-Fi ağına bağlanır ve bir DHCP Discover mesajı gönderir.
2- Ağa bağlı DHCP sunucusu, uygun bir IP adresi seçer ve size yanıt gönderir.
3- Cihazınız, bu ayarları kabul eder ve artık ağa bağlanabilirsiniz.
DHCP, ağda bir cihazın bağlanması için gereken ayarları otomatik olarak yapılandırır. Cihazımızı yeni bir ağa bağladığımızda, aşağıdaki yapılandırmalar yeni ağa göre ayarlanmalıdır:
Diyelim ki çalışmak için herhangi bir kafeye gittiniz. Bilgisayarınızı açtınız ve kafenin Wi-Fi adresine bağlandınız. Tek bir IP adresi bile yazmanıza gerek kalmadı. Peki bu nasıl oldu ?Kısaca anlatmak gerekirse,
1- Bilgisayarınız Wi-Fi ağına bağlanır ve bir DHCP Discover mesajı gönderir.
2- Ağa bağlı DHCP sunucusu, uygun bir IP adresi seçer ve size yanıt gönderir.
3- Cihazınız, bu ayarları kabul eder ve artık ağa bağlanabilirsiniz.
DHCP, ağda bir cihazın bağlanması için gereken ayarları otomatik olarak yapılandırır. Cihazımızı yeni bir ağa bağladığımızda, aşağıdaki yapılandırmalar yeni ağa göre ayarlanmalıdır:
IP adresi (Cihazın ağdaki kimliği),
Subnet-mask (Ağın boyutunu belirler),
Gateway (Cihazınızın internete çıkış noktası),
DNS sunucusu (Alan adlarını IP adreslerine çevirir)
Bağlı cihazları yapılandırmak için otomatik bir yola sahip olmanın birçok avantajı vardır:
Manuel yapılandırma zahmetini ortadan kaldırır: DHCP, ağı otomatik yapılandırdığı için cihazlarımız ağa her bağlandığında IP adresi, ağ geçidi veya DNS ayarlarını elle girmemize gerek kalmaz. Özellikle mobil cihazlar için bu çok büyük bir kolaylık sağlar.
Adres çakışmalarını önler: Aynı IP adresinin iki farklı cihaza atanmasını engelleyerek ağda oluşabilecek sorunları çözer. Adres çakışması olduğunda, cihazlar ne yerel kaynaklara ne de internete erişebilir.
Dinamik ve pratik bir çözüm sunar: DHCP, UDP protokolüne dayalıdır. DHCP sunucuları, UDP’nin 67 numaralı portundan veri alır, clientlar ise 68 numaralı porttan mesaj gönderir.
Varsayılan yapılandırma: Telefonlarımız ve dizüstü bilgisayarlarımız zaten DHCP kullanacak şekilde ayarlanmıştır. Yani Wi-Fi ağına bağlandığımız anda gerekli tüm bilgiler otomatik olarak alınır.
DHCP 4 adımı izler :

DORA


DHCP Discover : Cihazınız ağa katılabilmek için IP adresi almak istediğini söyler.Bu aşamada cihazınız ağda bir DHCP sunucusu olup olmadığını öğrenmek için bir broadcast mesajı gönderir.
DHCP Offer: DHCP sunucusu, cihazınıza bir IP adresi teklif eder. Sunucu, cihazınıza yani istemciye bir IP adresi, alt ağ maskesi, ağ geçidi (gateway) gibi ağ yapılandırma bilgilerini içeren bir mesaj gönderir.
DHCP Request: Cihazınız, sunucudan aldığı teklifi kabul eder ve hangi IP adresini almak istediğini belirten bir mesaj gönderir. Bu aşama, cihazınızın sunucudan teklif edilen IP adresini onaylamasını sağlar.
DHCP Acknowledge: DHCP sunucusu, istemcinin isteğini onaylar ve IP adresi ile diğer yapılandırma bilgilerini istemciye resmi olarak atar.
Adress Resolution Protocol — Adres Çözümleme Protokolü (ARP)
Bir IP paketi veri iletim katmanından geçerken bir veri bağlantı katmanı içerisinde kapsüllenir. Kullanılan yaygın veri bağlantı katmanları Ethernet (IEEE 802.3) ve WiFi (IEEE 802.11) protokolleridir. Şimdi düşünün: Bir cihazın aynı WiFi ya da Ethernet ağındaki başka bir cihaza “merhaba” demesi gerekiyor. Ama bu cihazın hedefinin kim olduğunu, yani MAC adresini bilmesi şart.İşte ARP tam burada devreye giriyor.
Bir MAC adresi, genellikle onaltılık gösterimle ifade edilen 48 bitlik bir numaradan oluşur.
Bir IP paketi veri iletim katmanından geçerken bir veri bağlantı katmanı içerisinde kapsüllenir. Kullanılan yaygın veri bağlantı katmanları Ethernet (IEEE 802.3) ve WiFi (IEEE 802.11) protokolleridir. Şimdi düşünün: Bir cihazın aynı WiFi ya da Ethernet ağındaki başka bir cihaza “merhaba” demesi gerekiyor. Ama bu cihazın hedefinin kim olduğunu, yani MAC adresini bilmesi şart.İşte ARP tam burada devreye giriyor.
Bir MAC adresi, genellikle onaltılık gösterimle ifade edilen 48 bitlik bir numaradan oluşur.
Örneğin:
7C:DF:A1:D3:8C:5C
44:DF:65:D8:FE:6C
Bu adresler, cihazların fiziksel katmandaki kimlikleridir. Ancak aynı ağdaki cihazlar her zaman birbirlerinin MAC adreslerini bilmek zorunda değildir sadece ihtiyaçları olduğunda öğrenmeleri yeterlidir. Her şey IP adresleri etrafında döner.
Mesela cihazınızı bir ağa bağlarsınız ve ağda bir DHCP sunucusu varsa, cihazınız otomatik olarak belirli bir router ve DNS sunucusunu kullanacak şekilde yapılandırılır. Sonuç olarak, cihazınız herhangi bir domaini çözümlemek için DNS sunucusunun IP adresini bilir hatta internet üzerinden paket göndermesi gerektiğinde routerın IP adresini bilir. Yani MAC adresi doğrudan ortada yoktur. Ancak aynı ağdaki iki cihaz, birbirlerinin MAC adreslerini bilmeden iletişim kuramaz.
Adres Çözüm Protokolü (ARP), bir cihazın belirli bir IP adresine sahip cihazın MAC adresini bulmasını sağlar.
44:DF:65:D8:FE:6C
Bu adresler, cihazların fiziksel katmandaki kimlikleridir. Ancak aynı ağdaki cihazlar her zaman birbirlerinin MAC adreslerini bilmek zorunda değildir sadece ihtiyaçları olduğunda öğrenmeleri yeterlidir. Her şey IP adresleri etrafında döner.
Mesela cihazınızı bir ağa bağlarsınız ve ağda bir DHCP sunucusu varsa, cihazınız otomatik olarak belirli bir router ve DNS sunucusunu kullanacak şekilde yapılandırılır. Sonuç olarak, cihazınız herhangi bir domaini çözümlemek için DNS sunucusunun IP adresini bilir hatta internet üzerinden paket göndermesi gerektiğinde routerın IP adresini bilir. Yani MAC adresi doğrudan ortada yoktur. Ancak aynı ağdaki iki cihaz, birbirlerinin MAC adreslerini bilmeden iletişim kuramaz.
Adres Çözüm Protokolü (ARP), bir cihazın belirli bir IP adresine sahip cihazın MAC adresini bulmasını sağlar.
Örneğin:
#Bir ağ trafiği analiz aracı olan tshark kullanırsak, bu iletişimi şu şekilde görebiliriz:
tshark -r arp.pcapng -Nn
1 0.000000000 cc:5e:f8:02:21:a7 → ff:ff:ff:ff:ff:ff ARP 42 Who has 192.168.66.1? Tell 192.168.66.89
2 0.003566632 44:df:65:d8:fe:6c → cc:5e:f8:02:21:a7 ARP 42 192.168.66.1 is at 44:df:65:d8:fe:6c
#Aynı paketleri tcpdump ile izlersek, çıktı şu şekilde olur:
tcpdump -r arp.pcapng -n -v
17:23:44.506615 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.66.1 tell 192.168.66.89, length 28
17:23:44.510182 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.66.1 is-at 44:df:65:d8:fe:6c, length 28
192.168.66.89 IP adresine sahip bir cihaz, 192.168.66.1 IP adresine sahip diğer bir cihazla iletişim kurmak istiyor.
tshark -r arp.pcapng -Nn
1 0.000000000 cc:5e:f8:02:21:a7 → ff:ff:ff:ff:ff:ff ARP 42 Who has 192.168.66.1? Tell 192.168.66.89
2 0.003566632 44:df:65:d8:fe:6c → cc:5e:f8:02:21:a7 ARP 42 192.168.66.1 is at 44:df:65:d8:fe:6c
#Aynı paketleri tcpdump ile izlersek, çıktı şu şekilde olur:
tcpdump -r arp.pcapng -n -v
17:23:44.506615 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.66.1 tell 192.168.66.89, length 28
17:23:44.510182 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.66.1 is-at 44:df:65:d8:fe:6c, length 28
192.168.66.89 IP adresine sahip bir cihaz, 192.168.66.1 IP adresine sahip diğer bir cihazla iletişim kurmak istiyor.
Bu durumda, ilk cihaz bir ARP İsteği gönderir ve şu soruyu sorar: “192.168.66.1 IP adresine sahip cihazın MAC adresi nedir?” Bu istek bir broadcast çerçevesi olarak tüm ağa gönderilir.
192.168.66.1 IP adresine sahip cihaz, ARP Yanıtı ile cevap verir: “192.168.66.1 IP adresine sahip cihazın MAC adresi 44:DF:65:D8:FE:6C’dir.”
Bu bilgiden sonra, iki cihaz veri bağlantı katmanı çerçeveleriyle iletişim kurabilir.
tshark: Wireshark'ın terminal versiyonudur ve ağ trafiğini analiz etmek için kullanılır.
tcpdump: Ağ trafiğini yakalayıp analiz etmek için kullanılan bir diğer güçlü araçtır.
ARP, MAC adresleriyle ilgilendiği için Veri Bağlantı Katmanı(2.Katman) olarak kabul edilir. Ancak, IP adreslerini desteklediği için bazı kaynaklar ARP’yi Ağ Katmanı(3.Katman ) ile ilişkili olarak görür.
Önemli olan, ARP’nin IP adreslerini MAC adreslemesine cihazların iletişim kurmasını sağlamasıdır.
tshark: Wireshark'ın terminal versiyonudur ve ağ trafiğini analiz etmek için kullanılır.
tcpdump: Ağ trafiğini yakalayıp analiz etmek için kullanılan bir diğer güçlü araçtır.
ARP, MAC adresleriyle ilgilendiği için Veri Bağlantı Katmanı(2.Katman) olarak kabul edilir. Ancak, IP adreslerini desteklediği için bazı kaynaklar ARP’yi Ağ Katmanı(3.Katman ) ile ilişkili olarak görür.
Önemli olan, ARP’nin IP adreslerini MAC adreslemesine cihazların iletişim kurmasını sağlamasıdır.
Network Address Translation-Ağ Adresi Çevirisi(NAT)
NAT, özellikle IPv4 adreslerinin sınırlı olduğu durumlarda kullanılır, çünkü aynı anda internet üzerinde birçok cihazın yer alması için sınırlı sayıda IP adresi vardır. NAT, bu sınırlamayı aşmak ve ağın verimli çalışmasını sağlamak için kullanılır.
Diyelim ki bir şirketin içinde 32 tane ağ (subnet) var ve her bir ağ için bir IP adresine ihtiyac var. Bu durumda, şirketin genel ağ yapısı için 32 farklı IP adresi gerekecek. Ancak, bu sayı aslında biraz fazla çünkü her ağ için tek bir IP adresi kullanmak, IP adreslerinin verimli kullanılmaması anlamına gelir.
Burada NAT (Network Address Translation) devreye girmesi daha mantıklı olur.IPv4 adresleri 32-bit’tir ve toplamda 2³² = 4.294.967.296 IP adresi sağlar.Bir şirketin ağındaki her cihaz için benzersiz bir IP adresine sahip olması gerektiğini düşünürsek, her ağın her cihazı için ayrı bir IP adresi atamak çok fazla adres tüketir. Bunun yerine, bu 32 ağ için bir veya birkaç genel IP adresi kullanarak NAT teknolojisinden faydalanabiliriz.Tüm bu ağlar, internetle iletişim kurmak için iki genel IP adresi kullanabilir. Böylece çok fazla IP adresi kullanmak yerine, IP adresi tasarrufu yaparak verimli bir ağ yapısı oluşturmuş oluruz.
NAT, özellikle IPv4 adreslerinin sınırlı olduğu durumlarda kullanılır, çünkü aynı anda internet üzerinde birçok cihazın yer alması için sınırlı sayıda IP adresi vardır. NAT, bu sınırlamayı aşmak ve ağın verimli çalışmasını sağlamak için kullanılır.
Diyelim ki bir şirketin içinde 32 tane ağ (subnet) var ve her bir ağ için bir IP adresine ihtiyac var. Bu durumda, şirketin genel ağ yapısı için 32 farklı IP adresi gerekecek. Ancak, bu sayı aslında biraz fazla çünkü her ağ için tek bir IP adresi kullanmak, IP adreslerinin verimli kullanılmaması anlamına gelir.
Burada NAT (Network Address Translation) devreye girmesi daha mantıklı olur.IPv4 adresleri 32-bit’tir ve toplamda 2³² = 4.294.967.296 IP adresi sağlar.Bir şirketin ağındaki her cihaz için benzersiz bir IP adresine sahip olması gerektiğini düşünürsek, her ağın her cihazı için ayrı bir IP adresi atamak çok fazla adres tüketir. Bunun yerine, bu 32 ağ için bir veya birkaç genel IP adresi kullanarak NAT teknolojisinden faydalanabiliriz.Tüm bu ağlar, internetle iletişim kurmak için iki genel IP adresi kullanabilir. Böylece çok fazla IP adresi kullanmak yerine, IP adresi tasarrufu yaparak verimli bir ağ yapısı oluşturmuş oluruz.

Paketleri hedef ana bilgisayara yönlendirmenin doğal yolu routingtir.NAT’ı destekleyen routerlar devam eden bağlantıları izlemenin bir yolunu bulmalıdır bu nedenle de dahili ve harici ağlar arasında ağ adreslerini çeviren bir tablo tutarlar.
Internet Control Message Protocol -İnternet Kontrol Mesaj Protokolü(ICMP)
Esas olarak internet üzerinden veri iletimi sırasında oluşabilecek hataların tespiti ve bağlantı sorunlarının giderilmesi için kullanılır.ICMP ile ilişkili iki önemli komut vardır :ping ve traceroute.
Ping: Bilgisayarınızdan çıkan veri ve isteklerin diğer sunucuya iletilmesi arasındaki süre olarak olarak ölçülüyor. Örnek vermek gerekirse çevrimiçi bir oyun esnasında verilen bir komutun ya da videoyu açma-kapama gibi isteklerin karşı tarafa ne kadar sürede iletildiği ping ile açıklanıyor.
Traceroute: Bilgisayarınızdan hedefe giden yolu keşfetmek için kullanılır. Yaşam süresi değişkeni (TTL) değerleri olan ICMP ping paketlerini kullanır. Her sekmenin tepki süresi hesaplanır. Doğruluğu garanti etmek için, her sekmenin, bu sekmenin tepkisini daha iyi ölçmesi için birçok kez (genellikle üç kez) sorgulanır.
“ping” komutu, ICMP protokolü kullanarak yankı istekleri (echo request) ve yankı yanıtları (echo reply) gönderir.
Ping işlemi şu şekilde çalışır:
Internet Control Message Protocol -İnternet Kontrol Mesaj Protokolü(ICMP)
Esas olarak internet üzerinden veri iletimi sırasında oluşabilecek hataların tespiti ve bağlantı sorunlarının giderilmesi için kullanılır.ICMP ile ilişkili iki önemli komut vardır :ping ve traceroute.
Ping: Bilgisayarınızdan çıkan veri ve isteklerin diğer sunucuya iletilmesi arasındaki süre olarak olarak ölçülüyor. Örnek vermek gerekirse çevrimiçi bir oyun esnasında verilen bir komutun ya da videoyu açma-kapama gibi isteklerin karşı tarafa ne kadar sürede iletildiği ping ile açıklanıyor.
Traceroute: Bilgisayarınızdan hedefe giden yolu keşfetmek için kullanılır. Yaşam süresi değişkeni (TTL) değerleri olan ICMP ping paketlerini kullanır. Her sekmenin tepki süresi hesaplanır. Doğruluğu garanti etmek için, her sekmenin, bu sekmenin tepkisini daha iyi ölçmesi için birçok kez (genellikle üç kez) sorgulanır.
“ping” komutu, ICMP protokolü kullanarak yankı istekleri (echo request) ve yankı yanıtları (echo reply) gönderir.
Ping işlemi şu şekilde çalışır:

1.Yankı İsteği (Echo Request): Ping komutu bir hedef sisteme bir ICMP yankı isteği gönderir. Bu istek, hedef cihazdan bir yanıt bekler.

2. Yankı Yanıtı (Echo Reply): Hedef cihaz, yankı isteğine karşılık olarak ICMP yankı yanıtı gönderir.
Bu iki paket, ICMP’nin Type 8 (Echo Request) ve Type 0 (Echo Reply) mesajlarıdır. Ping, bu tür mesajları kullanarak bir cihazın ulaşılabilirliğini ve ağ bağlantısının durumunu test eder.
Traceroute’un çalışabilmesi için, gönderilen paketlerin her yönlendiriciden geçerken bir TTL (Time to Live) değeri vardır. TTL, bir paketle birlikte gönderilen bir alan olup, her yönlendiriciden geçtiğinde “1” azalır. Eğer TTL sıfıra düşerse, paket o noktada düşer ve yönlendirici bir ICMP Time Exceeded (Zaman Aşımı) mesajı gönderir.
Dolayısıyla, Traceroute komutunun çalışabilmesi için TTL değeri sıfır olmalıdır. Bu, paketin zaman aşımına uğrayıp düşmesini ve ilgili yönlendiricinin bir ICMP “Time Exceeded” mesajı göndermesini sağlar. Bu mesajda TTL değeri sıfır olan paketin hangi yönlendirici tarafından düşürüldüğü bilgisi yer alır.
Fark edeceğiniz üzere bu yazıda bahsettiğim NAT, ICMP, DHCP ve ARP gibi önemli protokoller, ağların sağlıklı bir şekilde çalışabilmesi için çok kritik bir rol oynuyor ☁️💻Yeni yazılarda görüşmek üzere 🚀
Bu iki paket, ICMP’nin Type 8 (Echo Request) ve Type 0 (Echo Reply) mesajlarıdır. Ping, bu tür mesajları kullanarak bir cihazın ulaşılabilirliğini ve ağ bağlantısının durumunu test eder.
Traceroute’un çalışabilmesi için, gönderilen paketlerin her yönlendiriciden geçerken bir TTL (Time to Live) değeri vardır. TTL, bir paketle birlikte gönderilen bir alan olup, her yönlendiriciden geçtiğinde “1” azalır. Eğer TTL sıfıra düşerse, paket o noktada düşer ve yönlendirici bir ICMP Time Exceeded (Zaman Aşımı) mesajı gönderir.
Dolayısıyla, Traceroute komutunun çalışabilmesi için TTL değeri sıfır olmalıdır. Bu, paketin zaman aşımına uğrayıp düşmesini ve ilgili yönlendiricinin bir ICMP “Time Exceeded” mesajı göndermesini sağlar. Bu mesajda TTL değeri sıfır olan paketin hangi yönlendirici tarafından düşürüldüğü bilgisi yer alır.
Fark edeceğiniz üzere bu yazıda bahsettiğim NAT, ICMP, DHCP ve ARP gibi önemli protokoller, ağların sağlıklı bir şekilde çalışabilmesi için çok kritik bir rol oynuyor ☁️💻Yeni yazılarda görüşmek üzere 🚀
Hiç yorum yok:
Yorum Gönder