TRACEROUTE (LINUX) yoki TRACERT (WINDOWS) ning qanday ishlashi haqida.

traceroute — tarmoq utilitasi. Vazifasi — ko'zlangan serverga yetib borguncha yo'ldagi barcha hostlar haqida ma'lumot chiqarish. Bu utilita orqali siz o'zingizdan chiqib ketayotgan trafikni qaerdan va qaysi provayderlar orqali o'tayotganini, marshrutning qaysi qismida tutilish (zaderjka) ko'payib ketayotganini, qaysi qismda tezlik pastligini bilib olishingiz mumkin bo'ladi. Agar sizning paketingiz ko'zlangan maqsadga yetib bormayatgan bo'lsa traceroute orqali qaysi host yoki serverdan keyin uzilish bo'layotganini bilib olishngiz mumkin.
Linuxda: traceroute www.uz kabi.
Windowsda: tracert www.uz kabi.



Ko'pchilik traceroute utilitasini qanday ishlashini, qanday qilib hostlar adresini chiqarib berishini bilmaydi. Buni oqibatida ba'zida mayda «problemacha»lar chiqib qoladi. Masalan, admin fayrvol orqali ICMP trafikni blokirovka qilib qo'yadida, keyin usha host treysda ko'rinmasa ajablanadi, nimaga hostning adresi o'rnida yulduzchalar deb.

Shuning uchun ozgina teoriya haqida gaplashamiz. Agar server, paket, ip adres, protokol, port, xost, domen, xop, TTL lar haqida ma'lumotga ega bo'lsangiz nazariya qismidan o'tib ketsangiz ham bo'laveradi.

Server — (oddiy *nix, linux, Windows 200x Advanced Server o'rnatilgan personal kompyuter, Cisco yoki boshqa markada marshrutizatorlar) trafikni marshrutizatsiya qiladigan qurilma. Y'ani klientlardan internet tomon chiqadigan trafikni o'zidan o'tkazib, ularni yo'nalishini belgilaydi. Global serverlar bilan local tarmoqni ajrata oladi. Ular o'rtasidagi trafikni o'tkaza oladi.

Paket — baylar (kilobaytlar) yig'indisi. Paket 2 qismdan iborat. Bosh qism va ma'lumotlar qismi (asosiy qism).
Bosh qismda jamiki texnik parametrlar jamlanadi, ya'ni bu qismda paketni junatgan hostning adresi, ko'zlangan hostning adresi, qaysi protokol va qaysi port orqali va hk.lar haqida ma'lumotlar bo'ladi.

IP-adres — qo'pol qilib aytganda kompyuterning Internet tarmog'idagi adresi.

Protokol — junatuvchi va qabul qiluvchi o'rtasida ma'lumot almashish uchun oldindan kelihib olingan kelishuvlar to'plami. Ikkala taraf ham ma'lumot almashinuvi vaqtida shu kelishuvlarga qat'iy rioya qiladi.

3 ta asosiy tarmoq protokoli mavjud:
TCP — Transfer Control Protocol — ma'lumot uzatishni boshqarish protokoli.
UDP — User Datagram Protokol — oddiy ma'lumotlar protokoli.
ICMP — Internet Control Message Protokol — Internet tarmoqlarini kontrol qilish protokoli.

TCP bilan UDP protokollari ma'lumot uzatish uchun ishlatilsa, ICMP protokoli paketlarni junatilishini, marshrut aniqlanishini, tarmoqni ishlashini nazorat qiladigan protokol. Bir so'z bilan aytganda «Slujebny' protokol».

Port — mantiqiy atama bo'lib, ma'lumot turini aniqlash uchun ishlatiladi. ya'ni har bir turdagi pakeltarni alohida portlarda qabul qilinadi. Veb-trafikni 80 portda. DNSga so'rovlarini 53 port. Va hokazo.

Xost — bu ham server yoki qurilma. Umuman olganda tramoqdagi har bir qurilmani umumiy qilib xost deb atashadi.

Domen — server(xost) adreslarini odamga tushunadigan ko'rinishidagi nomi. Masalan www.tendsmart.com">www.tendsmart.com">www.tendsmart.com ni 195.158.28.195 ko'rinishida eslab qolish qiyin. Shuning uchun DNS hizmati ishlab chilgan va 195.158.28.195 kabi uzun va noqulay adreslarga www.tendsmart.com kabi qulay nom bilan murojaat qilish mumkin.

Xop — Hop — ko'zlangan servergacha bo'lgan xostlar (serverlar) soni.

TTLtime to live. Yashash vaqti. TTLda ko'rsatilgan qiymat paketning maksimum nechta hostdan o'tishi mumkinligini bildiradi. Masalan junatilayotgan paketning adresati 14 ta xopdan keyin keladi. Lekin paketda TTL=10 ko'rsatilgan. Demak adresatga yetishiga 4 ta xop qolganda paket o'z-o'zidan yo'q bo'lib ketadi. Bundan maqsad nima?
Deylik siz ma'lumot junatayotgan komyuter tarmoqda yo'q. Siz junatgan paket esa tarmoqda aylanib yuraveradi. Chunki unda TTL ko'rsatilmagan. Buning oqibatida tarmoqda musor paketlar ko'payib ketadi va tarmoqni ortiqcha yuklanishiga olib keladi.
Har qaysi tizimda TTL har hil belgilanadi. Linux va FreeBSDda — 64, Windows da — 128, Cisco va Sun Solarisda — 256.

root@firewall:~# traceroute www.mail.ru
traceroute: Warning: www.mail.ru has multiple addresses; using 217.69.128.44
traceroute to www.mail.ru (217.69.128.44), 30 hops max, 40 byte packets
1 my_gateway_ip (my_gateway_ip) 22.482 ms 11.035 ms 34.718 ms
2 kg7609.uzpak.uz (195.158.12.217) 8.950 ms 8.951 ms 9.085 ms
3 84.54.64.242 (84.54.64.242) 15.733 ms 16.766 ms 17.269 ms
4 ta7609-p8600.uzpak.uz (195.158.10.97) 17.441 ms 16.589 ms 16.571 ms
5 p8600-ta7609.uzpak.uz (195.158.10.98) 15.709 ms 17.931 ms 17.161 ms
6 c7201-gateway.uzpak.uz (195.158.0.156) 14.326 ms 13.553 ms 22.394 ms
7 195.69.188.189 (195.69.188.189) 17.526 ms 15.465 ms 24.834 ms
8 mcpk-main.uztelecom.uz (195.69.188.1) 14.810 ms 15.982 ms 22.453 ms
9 195.69.188.149 (195.69.188.149) 15.721 ms 15.479 ms 27.301 ms
10 195.239.1.245 (195.239.1.245) 80.351 ms 104.768 ms 113.603 ms
11 cat01.Moscow.gldn.net (194.186.157.74) 107.425 ms cat01.Moscow.gldn.net (194.186.157.134) 67.031 ms cat01.Moscow.gldn.net (195.239.13.109) 72.827 ms
12 * * *
13 * * *
14 * * *
15 * * *
...
30 * *
*

Biz www.mail.ru joylashgan serverning IP adresini oldik: 217.69.128.44, xoplarning maksimal qiymati 30 ga teng. Ya'ni bizdan mail.ru gacha bo'lgan xostlar soni 30 dan oshib ketsa, traceroute komandasi 31-xost va undan keyingilarni ko'rsatmaydi. Lekin bu xoplarinig maksimal qiymatni o'zgartirish mumkin.
Sxemadan ko'rinib turiptiki, bizning kompyuterimizdan keyingi 1-xost bu bizning shlyuzimiz. Shlyuzning real IP adresini atayin, xavfsizlik maqsadida bu yerda ko'rsatilmagan. Uning o'rnida IP adresslar bo'ladi. Undan keyin esa Uzpak serverlari, Qozog'iston serverlari, Moskvadagi Golden Telekom serverlari.
11 — xostga e'tibor qarating. 3 ta har xil IP adress. Nimaga? Chunki mail.ru kompaniyasi internetni Golden Telecomdan oladi. Va ushbu qurilma (Nomiga qaraganda Cisco Catalyst) kirish qismida bir nechta IP adresslar ega. Va bundan oldingi 195.239.1.245 adresdagi server shu 3la adreslarni taniydi.
12 xostdan boshlab, mail.ru serverlari boshlanadi. Lekin bizning treysimizda bu yerda ip-adreslar o'rnida yulduzchalar. Sababi, aftidan MAIL.RUdagi adminlar serverlaridagi kiruvchi/chiquvchi ICMP paketlarni blokirovka qilib qo'yishgandir. Aks holda istagan odam mail.ru korporatsiyasining ichki treyslarini ko'rib bilib olardi.

Keling endi shu jarayonni qanday ishlashini ko'rib chiqamiz.

Birinchi navbatda bizning kompyuterimiz o'ziga tanish bo'lgan DNS serverdan www.mail.ru ning IP adresini oladi. Ip adresni aniqlagan kompyuterimiz, shu adresga (217.69.128.44 ga) 30000-40000 portlar orasidagi biror port orqali UDP paket junatadi. Lekin junatayotgan paketning bosh qismida TTL ning qiymatini 1 ga tenglab junatadi. Paket marshrut tablitsasi bo'yicha birinchi bo'lib my_gateway_ip serveriga kelib tushadi. U yerda paketning TTL qiymati 1 ga kamaytirilib keyingi hostga junatilishi kerak. Lekin bunday bo'lmaydi. CHunki TTL qiymati shu yerda 0 ga teng bo'lib qoldi. Ya'ni paketning «yashash vaqti» tugadi. Server bu haqda bizni serverimizga habar beradi: ICMP protokolida, 30000-40000 port oralig'ida xabar junatadi. Xabarning mazmunida biz tomondan 217.69.128.44 ga junatilgan paketning «yashash vaqti» tugaganligi aytiladi. traceroute komandasiga ega bu xabarning qizig'i yo'q. Unga bu paketni kim va qaysi adresdan junatganligi muhim. traceroute bu jarayonni 3 marta qaytaradi. har safar paket almashinuviga qancha vaqt ketganligini aniqlaydi va o'rtacha vaqtni hisbolaydi. Rezultatlarni hotiraga saqlaydi va yana 217.69.128.44 adresiga UDP paketi junatadi. Biroq bu safar TTLning qiymati 2 ga teng.
Endigi safar paket «o'lganligi» to'g'risidagi xabar 195.158.12.217 adresidan keladi. CHunki birinchi server, my_gateway_ip, paketni qabul qiladi. TTLni birga kamaytiradi. Qaraydi, noldan kotta, demak uni keyingi hostga o'tkazvoradi. So'ng bundan oldin bo'lgan ishlar takrorlanadi va hk.

Demak, eng asosiysi moment, traceroute paketlarni UDP protokolida junatadi va javobni esa ICMP protokoli orqali oladi. Shuning uchun ICMP protokolini blokirovka qilgan serverlardan javob kelmaydi. Belgilangan vaqt ichida javob kelmasa ekranga yulduzcha belgisini chiqaradi.

Agar savollar bo'lsa marhamat. Fikr va mulohozalar bo'lsa undanda yaxshi.
E'tiboringiz uchun Rahmatlar!

Manba:


JONNY

Muallif haqida

JONNY Arduino, Java, C#, Android, Windows, Linux, Debian, Javascript.


Blogdagi so‘nggi maqolalar:


Birinchi bo‘ling!

Iltimos, fikr bildirish uchun saytga kiring yoki ro‘yxatdan o‘ting!