Tracert və traceroute arasında fərq nədir?
Şəbəkədə baş verən problemlərin diaqnostika olunması üçün müxtəlif alətlərdən istifadə edirik. Təbii, heç düşünmədən söyləyə bilərik ki, ping bu siyahıda ən birinci yeri tutur və baş verən problemin tipindən asılı olmayaraq “Bax gör ping gedir?” sualı hərdən avtomatik olaraq səslənir.
Ping-dən sonra mən şəxsən ikinci yeri paketlərin seçdiyi marşrutu təyin etmək üçün istifadə olunan alətə verərdim. Bilirəm, aranızda ola bilər kimsə bu məqalənin adını oxuyarkən “Ümumiyyətlə fərq var ki?” söyləyib və etiraf edim ki, mən özüm uzun müddət fərqin ancaq yazılışda olduğunu düşünürdüm, ancaq bu belə deyil. Ümumiyyətlə söyləyim ki, fərqin mövcud olmasını təxmin etmək bir qədər çətindir, çünki hər tracert, həm də traceroute bizə eyni nəticəni təqdim edir.
Windows əməliyyat sistemlərində tətbiq olunan tracert komandası yalnız ICMP-dən istifadə edir. Təqdim olunan bu tologiyada biz User_1-dən Server_1-ə tracert etsək aşağıdaki proseslər baş tutacaq.
User_1 ilkin olaraq Server_1-in IP-sinə ICMP echo (type 8) göndərir və TTL göstəricisini 1 kimi təyin edir. Bu ona görə baş tutur ki, tracert nəticələri ICMP time exceeded (type 11) və echo reply (type 0) məlumatlarına görə tərtib edir. (ICMP növləri haqqında daha ətraflı məlumat üçün bu səhifəyə baxa bilərsiniz)
Bir qədər daha aydın olsun deyə aşağıda User_1-in əldə etdiyini nəticəni təhlil edək.
- TTL 1 ilə göndərilən ICMP echo-a R1 (192.168.1.254) tərəfindən dərhal ICMP time exceeded cavabı gəlir. User_1 bu məlumatı əks etdirir və TTL göstəricisini 1 ədəd artıraraq yenidən ICMP echo göndərir.
- Bu dəfə ICMP echo R2-də (10.10.10.1) “ölür” və User_1-ə yenidən ICMP time exceeded göndərilir. PC əvvəlki qaydada uyğun TTL-i 1 ədəd artıraraq ICMP echo göndərir və R3-dən (20.20.20.2) həmin cavabı alır. Qeyd edim ki, User_1 hər qəbul etdiyi ICMP time exceeded məlumatını istifadəçiyə təqdim edir və tracert prosesinin başa çatmadığını anlayaraq TTL-ı artırıb yenidən ICMP echo göndərir. Arada 20 ədəd router olsa, bu proses 20 dəfə baş tutacaq.
- Nəhayət ICMP echo Server_1-ə çatandan sonra həmin server tərəfindən ICMP echo reply (type 0) istifadəçiyə göndərilir və bununla tracert başa çatmış olur.
Linux Əməliyyat Sistemləri və Cisco-da tətbiq olunan traceroute bir qədər fərqli iş prinsipinə malikdir. Əsas fərq traceroute-un təqdim etdiyi məlumatı necə əldə etdiyindədir. Traceroute bunun üçün göstərilən hostun 33434-dən başlayaraq UDP portuna packet göndərir və cavab olaraq ICMP port unreachable (type 3, code 3) və ya ICMP time exceeded məlumatlarını toplayır.
Aşağıda eyni şəbəkədə traceroute nəticələri göstərilib və daha aydın fərqi anlamaq üçün əldə olunan nəticəni təhlil edək.
- TTL 1 ilə göndərilən UDP paketə R1 (192.168.1.254) tərəfindən ICMP time exceeded cavabı gəlir və bu məlumat əks etdirir. Sonra həm TTL göstəricisi, həm də UDP port göstəricisi 1 ədəd artıraraq yenidən paket göndərilir və qeyd olunan hosta çatmayana qədər bu belə davam edir.
- Bu topologiyada R1-ə gələn paket UDP port 33434 və TTL 1, R2-ə UDP port 33435 və TTL 2, R3-ə isə UDP 33436 = TTL 3 olacaq.
- UDP packet 192.168.2.5-ə çatdıqdan sonra, ICMP port unreachable cavabı traceroute-u başlayan hosta göndərilir və bununla traceroute prosesi başa çatmış hesab olunur. Traceroute UDP portları 33434-33464 aralığından götürür və həmin portların istifadə olunmayacağını zənn edərək port unreachable cavabı traceroute-un sonu kimi qəbul olunur.
Bir daha vurğulayım ki, nəticə olaraq bizə təqdim olunan məlumatda heç bir fərq yoxdur, amma zənnimcə iş prinsipində olan bu fərqi anlamaq bir qədər dərin problem həlletmə zamanı köməyimizə gələ bilər.
Şərhlər ( 2 )
Məqalə üçün təşəkkür! Həqiqətən, bu fərqi bilmək bəzən çox kömək olur.
Bəzi qeydlərim:
Linux üzərindən traceroute daha geniş istifadə üçün şərait yaradır. Belə ki, məqalədə də göstərilən default UDP portlar firewallar tərəfindən olaraq bağlı ola bilər və sorğu axıra qədər emal olunmaya bilər. Traceroute sizə protocolu və portu özünüz tərəfindən təyin etməyə imkan verir və bu zaman, sizə məlum olan port üzərindən servere yolu tam olaraq görmək olar. Məsələn, aşağıda göstərilən traceroute tam olaraq ünvana çatmır:
http://www.az-ın 1 web serviz olduğunu nəzərə alıb , sorğuya TCP protokolunu istifadə etməyi (-T) və 80-ci portu ( -p 80) əlavə edirik və sorğunun sona qədər emal olunduğunu müşahidə edirik:
Salam Fərid bəy!
Maraqlı qeydlərinizə görə təşəkkür edirəm!