TFTP — просто передать файл по сети

TFTP (Trivial File Transfer Protocol) — это простой протокол передачи данных. Для передачи данных использует протокол UDP, что в свою очередь не гарантирует надежность передачи. Также в нем нет средств аутентификации пользователей. TFTP используется в связке с другими технологиями когда нужно просто передать файл без каких либо сложностей.

Обычно TFTP используется в связке с другими технологиями а для классической передачи данных используют FTP. Настройка TFTP не занимает более 10 минут.

Самые распространенные способы использования TFTP:

  • передача файлов при загрузке бездисковых рабочих станций;
  • передача начального загрузочного образа при установке ОС по сети;
  • участие в процессе backup`а и восстановления конфигурации сетевого оборудования;
  • другие схожие операции.

TFTP ищет все файлы в каталоге /tftpboot который создается автоматически при установке программы.

Установка TFTP на примере Linux CentOS 5:

Устанавливаем пакет tftp-server из репозитория

# yum -y install tftp-server

Теперь необходимо включить tftp в конфигурации xinetd, для этого в файле

/etc/xinetd.d/tftp

Меняем “disable = yes” на “disable = no” и включаем xinetd

# service xinetd start

Проверяем что порт tftp-сервера прослушивается (tftp работает на порту 69)

# netstat -nlp | grep :69
0 0 0.0.0.0:69            0.0.0.0:*             3105/xinetd  udp

Работа с TFTP

После того как TFTP-сервер запущен можно помещать все нужные файлы в / tftpboot на отдачу по сети.

Если вы хотите делать backup файлов конфигураций сетевых устройств, например оборудование компаний Cisco или Nortel то сначала нужно создать пустые файлы в которые планируется сохранять конфигурацию.

То есть при backup`е конфигурации в файл на TFTP-сервере он уже должен существовать!

Создаем пустой файл

# touch /tftpboot/cisco2960.backup

Устанавливаем на него права

# chmod 666 /tftpboot/cisco2960.backup

Типы пакета

В каждом передаваемом пакете есть поле размером 2 байта, оно и определяет что это за пакет. Знание какой тип чего делает может помочь при анализе сетевого трафика, например с помощью tcpdump.

  • RRQ (Read Request) – запрос на чтение файла;
  • WRQ (Write Request) – запрос на запись файла;
  • DATA – данные передаваемые через tftp;
  • ERR (Error) – ошибка;
  • OACK (Options Acknowledgment) – подтверждение опций.

Режимы передачи

Существует два режима передачи файлов:

  1. netascii – файл перед передачей перекодируется в ASCII
  2. octet – файл передается без изменений

Коды ошибок

0     Нет определенного кода, см. текст ошибки;
1     Файл не найден;
2     Доступ запрещен;
3     Невозможно выделить место на диске;
4     Некорректная TFTP-операция;
5     Неправильный Transfer ID;
6     Файл уже существует;
7     Пользователь не существует;
8     Неправильная опция.

Клиент tftp

Чтобы подключаться к TFTP-серверу из командной строки нужно поставить tftp-клиент

# yum -y install tftp

Ну а далее просто подключаемся к tftp-серверу, например:

# tftp 192.168.146.135

Можно набрать help чтобы получить список доступных команд. Самое распространенное действие – это скачка файла, сделать это можно командой get.

tftp>get filename.txt