Bosh sahifa Wiki TFTP

TFTP

TFTP — kichik va sodda fayl uzatish protokoli. Uning to‘liq nomi Trivial File Transfer Protocol hisoblanadi.

TFTP autentifikatsiya, katalog ko‘rish, fayl nomini o‘zgartirish yoki shifrlash kabi keng imkoniyatlarga ega emas. U asosan boshqariladigan lokal tarmoqda boot fayli, firmware yoki qurilma konfiguratsiyasini uzatish uchun ishlatiladi.

TFTP UDP asosida ishlaydi. Soddaligi sababli kichik bootloader va embedded qurilmalarda amalga oshirish oson.

TFTP vazifalari

TFTP quyidagi muhitlarda uchraydi:

TFTP umumiy foydalanuvchi fayl almashinuvi uchun mo‘ljallanmagan.

UDP va portlar

TFTP server dastlab UDP 69-portda so‘rov kutadi.

Client RRQ yoki WRQ yuborgandan keyin server boshqa vaqtinchalik UDP portdan javob beradi. Keyingi paketlar shu yangi port juftligi orqali almashadi.

Bu xususiyat firewall uchun muhim:

  • faqat UDP 69-portni ochish yetarli bo‘lmasligi mumkin;
  • stateful firewall sessiyaning keyingi portini kuzatishi kerak;
  • NAT yoki ACL paketlarni noto‘g‘ri bloklashi mumkin.

TFTP xabar turlari

Opcode Xabar Vazifasi
1 RRQ Faylni o‘qish so‘rovi
2 WRQ Fayl yozish so‘rovi
3 DATA Fayl ma’lumoti
4 ACK Blok qabul qilinganini tasdiqlash
5 ERROR Xato xabari
6 OACK Optionlarni tasdiqlash

TFTP xabarlari kichik va sodda formatga ega.

Faylni o‘qish

Client serverdan fayl olish uchun RRQ yuboradi.

Jarayon:

  1. Client UDP 69-portga RRQ yuboradi.
  2. Server DATA block 1 yuboradi.
  3. Client ACK block 1 qaytaradi.
  4. Server DATA block 2 yuboradi.
  5. Jarayon oxirgi blokgacha davom etadi.

Har DATA blok alohida tasdiqlanadi. ACK kelmasa, server timeoutdan keyin blokni qayta yuborishi mumkin.

Fayl yozish

Client serverga fayl yuborish uchun WRQ yuboradi.

Jarayon:

  1. Client WRQ yuboradi.
  2. Server ACK block 0 yoki OACK qaytaradi.
  3. Client DATA block 1 yuboradi.
  4. Server ACK block 1 qaytaradi.
  5. Fayl tugaguncha davom etadi.

Server yozishga ruxsat bermasligi yoki faqat oldindan mavjud fayl nomlariga yozishga ruxsat berishi mumkin.

Blok hajmi

Klassik TFTP DATA bloki 512 bayt payload tashiydi.

Oxirgi blok 512 baytdan kichik bo‘lsa, fayl tugagan hisoblanadi. Fayl hajmi aynan 512 baytga karrali bo‘lsa, tugashni bildirish uchun nol uzunlikdagi qo‘shimcha DATA blok yuborilishi mumkin.

512 baytlik blok katta fayllarda ko‘p paket va ACK talab qiladi. Shu sababli option extension orqali kattaroq block size kelishilishi mumkin.

Stop-and-wait

Klassik TFTP stop-and-wait modelidan foydalanadi:

DATA 1 → ACK 1 → DATA 2 → ACK 2

Bir vaqtning o‘zida faqat bitta tasdiqlanmagan blok mavjud.

Afzalligi:

  • implementatsiya sodda;
  • xotira talabi kichik;
  • yo‘qolgan blokni aniqlash oson.

Kamchiligi:

  • yuqori kechikishli tarmoqda juda sekin;
  • har blok uchun round trip;
  • katta faylda samarasiz.

Window size optioni bir nechta blokni ketma-ket yuborish orqali samaradorlikni oshirishi mumkin.

TFTP optionlari

TFTP kengaytmalari client va serverga ayrim parametrlarni kelishish imkonini beradi.

blksize

DATA blok hajmini o‘zgartiradi.

timeout

Qayta uzatish kutish vaqtini belgilaydi.

tsize

Fayl hajmini oldindan bildirishi mumkin.

windowsize

Bir ACKdan oldin nechta blok yuborilishini belgilaydi.

Server qabul qilgan optionlarni OACK bilan qaytaradi. Client taklif qilingan qiymatni tekshiradi.

Uzatish rejimlari

TFTP RRQ yoki WRQ ichida uzatish rejimini bildiradi.

octet

Binary faylni baytma-bayt o‘zgartirmasdan uzatadi. Hozir eng ko‘p ishlatiladigan rejim.

netascii

Matn satr yakunlarini standart tarmoq ko‘rinishiga moslashtiradi. Turli operatsion tizim matn fayllari uchun yaratilgan.

mail

Tarixiy va deyarli ishlatilmaydigan rejim.

Firmware, boot image va konfiguratsiya odatda octet rejimida uzatiladi.

Xato kodlari

TFTP ERROR xabari sababni bildiradi.

Kod Mazmuni
0 Aniqlanmagan xato
1 Fayl topilmadi
2 Access violation
3 Disk to‘ldi
4 Noto‘g‘ri TFTP amali
5 Noma’lum transfer ID
6 Fayl allaqachon mavjud
7 Foydalanuvchi mavjud emas
8 Option negotiation xatosi

ERROR paketi ishonchli tasdiqlanmaydi. U yo‘qolishi mumkin.

PXE bilan ishlashi

PXE orqali tarmoqdan yuklanishda TFTP tarixan muhim rol o‘ynagan.

Jarayon:

  1. Qurilma DHCP orqali IP manzil oladi.
  2. DHCP yoki proxyDHCP boot server manzilini bildiradi.
  3. Boot fayl nomi olinadi.
  4. Qurilma TFTP orqali boshlang‘ich bootloaderni yuklaydi.
  5. Bootloader kernel va boshqa fayllarni yuklaydi.

Zamonaviy iPXE muhitida boshlang‘ich kichik fayl TFTPdan olinib, katta fayllar HTTP orqali yuklanishi mumkin.

Firmware va konfiguratsiya

Router yoki switchda quyidagi amallar uchraydi:

  • running configurationni TFTP serverga yozish;
  • startup configurationni olish;
  • firmware image yuklash;
  • log yoki diagnostika faylini uzatish.

Firmware image buzilgan bo‘lsa, qurilma boot qilmasligi mumkin. Checksum va model mosligi alohida tekshiriladi.

Xavfsizlik cheklovlari

TFTPning o‘zida quyidagilar yo‘q:

  • foydalanuvchi autentifikatsiyasi;
  • parol;
  • shifrlash;
  • serverni tekshirish;
  • fayl yaxlitligi imzosi;
  • katalog ruxsati protokoli;
  • kuchli audit identifikatsiyasi.

TFTP server internetga ochilmaydi. U odatda:

  • alohida management VLAN;
  • IP allowlist;
  • read-only katalog;
  • aniq fayl nomlari;
  • firewall;
  • vaqtinchalik service;
  • kichik boot tarmog‘i

bilan cheklanadi.

TFTP root

Server faqat belgilangan katalogni TFTP root sifatida ko‘rsatadi.

Masalan:

/srv/tftp/

Client to‘liq operatsion tizim yo‘lini emas, TFTP rootga nisbiy fayl nomini so‘raydi.

Path traversalga qarshi server:

  • ../ yo‘llarni rad etadi;
  • symbolic linklarni cheklaydi;
  • read va write kataloglarini ajratadi;
  • service user huquqini kamaytiradi.

Diagnostika

TFTP ishlamasa quyidagilar tekshiriladi:

So‘rov serverga yetib, javob clientga qaytmasa, ko‘pincha firewall yoki NAT vaqtinchalik UDP portni bloklagan bo‘ladi.

Bog‘liq tushunchalar

UDP, PXE, DHCP, Network boot, Firmware, RRQ, WRQ, DATA, ACK, Block size, TFTP server, iPXE