В модуле TFTP CommuniGate Pro реализован TFTP-сервер для сетей UDP/IP.

Протокол TFTP позволяет клиентскому приложению TFTP получать файлы с компьютера, на котором установлен сервер. TFTP-клиенты CommuniGate Pro могут получать и записывать файлы в хранилище файлов пользователя.

TFTP (примитивный протокол передачи файлов)

Примитивный протокол передачи файлов позволяет работать с файлам, хранящимися на сервере, непосредственно с компьютеров клиентов. Компьютер, на котором запущено TFTP клиентское приложение, посылает UDP-запросы на компьютер сервера. Эти пакеты содержат имя требуемого файла и режим передачи.
Обратно компьютер сервера посылает UDP пакет с блоком данных. Если размер файл больше, чем размер одного блока, то компьютер клиента посылает пакет с ACK (подтверждение), и в ответ сервер отправляет следующий блок данных.
При обработке операции записи в файл сервер посылает UDP-пакет “ACK”, клиент отправляет первый блок данных, сервер вновь отвечает с пакетом “ACK”, а клиент отправляет следующий блок данных.

Модуль TFTP CommuniGate Pro работает в соответствии с соответствующими публичными стандартами Интернет (RFC).

Настройка модуля TFTP

Чтобы настроить параметры модуля TFTP, используйте веб-интерфейс администратора. Откройте страницу “доступ” в разделе “установки”, затем откройте страницу “TFTP”:

Уровень журнала

Используйте эту настройку, чтобы указать, какую информацию модуль TFTP должен сохранять в журнале работы сервера. Обычно используется уровень “основное” (отчёты об изменении пароля) или уровень “проблемы” (не фатальные ошибки). В случае, если в работе TFTP-модуля возникают проблемы, возможно, целесообразным будет увеличить детализацию до уровня “подробности” или “всё”: в этом случае в журнал работы сервера будет записываться подробная информация о работе модуля на уровне протокола или на уровне соединения.
Записи, помещённые модулем TFTP в журнал работы сервера, имеют пометку TFTP.

 

Приёмник

Откройте по этой ссылке страницу приёмника UDP и укажите номер порта, локальный сетевой адрес для TFTP сервиса и ограничения на доступ к этому порту. Если номер порта имеет значение 0, TFTP сервер выключен.
По умолчанию TFTP-клиенты отправляют запросы на UDP-порт номер 69.
Если на компьютере, на котором работает сервер, уже запущен какой-либо TFTP-сервер, то вы можете указать нестандартный номер порта и перенастроить клиенты TFTP на использование этого номера порта.

 

Хранилище по умолчанию

Так как модуль TFTP не производит аутентификацию пользователей, то необходимо указать пользователя, чьё хранилище файлов будет использоваться по умолчанию.
Задайте в этом поле имя существующего пользователя.
Если это пользователь не из главного домена, то укажите его полное имя в виде accountName@domainName.
Вы можете указать поддиректорию в хранилище айлов gользователя, добавив имя поддиректории, отделённое символом косая черта (/): accountName/directoryName или accountName@domainName/directoryName

 

Пробовать подкаталог IP-адреса

Если эта опция включена, то модуль может добавлять клиентский IP-адрес к указанному имени файла, что позволяет различным одинаково настроенным клиентам загружать разные файлы (смотрите ниже).

 

Создавать сессии на контроллере

Эта опция доступна только в динамическом кластере.
Если эта опция включена, то сервер отправляет все запросы TFTP на контроллер кластера (за исключением случая, когда сервер сам является активным контроллером), используя протокол внутрикластерного интерфейса командной строки CLI. Затем он ретранслирует ответы контроллера клиенту.
Эта возможность необходима если вы используете балансировщик нагрузки, который не сохраняет никакие «сессии» или «состояния» UDP-запросов, и последовательные запросы из одной TFTP-сессии могут быть направлены на разные члены кластера.

Доступ к хранилищу файлов пользователя

Имя файла, указанное в пакете с запросом к TFTP, интерпретируется как имя файла из хранилища пользователя, используемого по умолчанию.

Если указанное имя начинается с символа косой черты (/) или с символа тильда (~), то в этом имени должен содержаться как минимум еще один (кроме первого) символ косой черты. Часть строки между первым специальным символом и этим символом косой черты интерпретируется как имя пользователя, а часть строки после этого символа косой черты — как имя файла, которое необходимо получить из хранилища файлов этого пользователя.

Если указанное имя начинается с символа косой черты (/), но оно не содержит никаких других символов косой черты, то первый символ косой черты удаляется.

Модуль TFTP пытается получить указанный файл от имени пользователя главного домена tftpuser. Это позволяет читать файлы из файлового хранилища любого пользователя за исключением содержимого поддиректорий private.
Чтобы разрешить клиентам TFTP-доступ к директориям private или разрешить клиентам TFTP сохранять там файлы, измените права доступа к этой директории, разрешая пользователю tftpuser чтение и/или запись.

Примеры:

Параметр имяфайла в сессии TFTP

Запрашиваемый файл

file1.dat

file1.dat в хранилище файлов по умолчанию

/file1.dat

file1.dat в в хранилище файлов по умолчанию

dirA/file1.dat

file1.dat в поддиректории dirA в хранилище файлов по умолчанию

/john/file1.dat
~john/file1.dat

file1.dat в хранилище файлов пользователя john

/john/dirB/file1.dat
~john/dirB/file1.dat

file1.dat в поддиректории dir в хранилище файлов пользователя john

/john@domain1.dom/dirB/file1.dat
~john@domain1.dom/dirB/file1.dat

file1.dat в поддиректории dir в хранилище файлов пользователя john@domain1.dom

Если опция “пробовать подкаталог IP-адреса” включена и указанное имя файла не начинается с символа косой черты, то модуль добавляет текстовое представление IP-адреса клиента перед именем файла. Если файла с таким именем не существует, то добавленный префикс удаляется и модуль заново пытается получить файл с таким именем.
Эта возможность позволяет вам создавать поддиректории внутри директории по умолчанию в хранилище файлов, называя их по имени IP-адреса клиента.

Примеры:

Параметр имяфайла в сессии TFTP

IP-адрес клиента

Запрашиваемый файл

file1.dat

10.0.1.0

10.0.1.0/file1.dat (если отсутствует, то file1.dat) в хранилище файлов по умолчанию

/file1.dat

10.0.1.0

10.0.1.0/file1.dat (если отсутствует, то file1.dat) в хранилище файлов по умолчанию

dirA/file1.dat

10.0.1.0

10.0.1.0/file1.dat (если отсутствует, то file1.dat) в хранилище файлов по умолчанию

/john/file1.dat
~john/file1.dat

10.0.1.0

file1.dat в хранилище файлов пользователя john