The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

FreeBSD: Конфигурируем TFTP сервер (ftp tftp freebsd)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: ftp, tftp, freebsd,  (найти похожие документы)
From: Михаил Сгибнев <mixa(@).dreamcatcher.ru> Date: 2006-09-13 16:40:24 Subject: FreeBSD: Конфигурируем TFTP сервер


Оригинал: http://www.onlamp.com/pub/a/bsd/2003/06/05/FreeBSD_Basics.html

Перевод: Сгибнев Михаил

Примечание: Урезано и сокращено без потери функциональности.

Если Вы имели опыт работы с любыми hardware-based маршрутизаторами, или свичами, то Вы знаете, что зачастую такая техника не имеет жестких дисков для хранения конфигураций и все настройки хранятся в RAM и EEPROM.

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

Обычно, данная возможность реализуется с помощью TFTP - тривиального протокола передачи файлов. Работа данного механизма подобна FTP, но облегчена для простоты реализации в чипе. Обычно маршрутизатор Cisco, или подобное устройство содержит клиента TFTP, а сервер организуется где-нибудь в вашей сети. TFTP сервер будет хранить резервную копию ваших конфигурационных файлов и образы операционных систем.

Задействование TFTP сервера

Ваша FreeBSD система уже содержит TFTP сервер, то есть не требуется установки дополнительного прогораммного обеспечения. Ваша задача состоит только в том, чтобы задействовать TFTP сервер и указать рабочие директории. Итак, давайте включим сервис. Откройте своим любимым текстовым редактором файл /etc/inetd.conf.

Это файл конфигурации inetd - Internet Super Server. Вы заметите, что этот файл содержит несколько дюжин имен сервисов, и каждая строка закомментирована знаком #. Когда на сервер приходит запрос на соединение с определенной службой, сервер inetd запускает данную службу. Такая метода позволяет некоторых случаях снизить нагрузку на машину, так как вместо прослушивания своих портов различными сервисами, используется только один, закускающий сервисы по мере необходимости.

Чтобы сказать inetd слушать запросы сервиса TFTP, найдите две линии, которые начинаются с #tftp и расскомментируйте их. Должно выглядеть примерно так: Обратите внимание, что FreeBSD поддерживает и IPv4 и IPv6 и inetd способен прослушивать оба типа запросов. Также обратите внимание, что TFTP для транспортировеи использует протокол UDP, что означает несколько меньшую надежность по сравнению с FTP (который использует TCP). TFTP обеспечивает возможность broadcasts, что позволяет не конфигурировать TFTP клиент на конкретный адрес сервера.

Как только необходимые строки будут расскоментированы, сохраните изменения. Следующим шагом будет рестарт сервиса inetd, для задействования нового файла конфигурации. Делается это с помощью команды killall: Если команда выполнилась, Вы будете возвращены в командную строку. Не ошибитесь в наборе команды - если Вы забудете -1, то сервис inetd будет просто выключен. Повторный его запуск в таком случае можно выполнить просто выполнив команду 'inetd'.

Если вы получили такое сообщение об ошибке: То это значит, что inetd не запущен. Запустите его, как это было указано выше. Для того, чтобы сервис inetd стартовал автоматически, поместите в /etc/rc.conf следующую запись: Проверим:

Работа с файлами через TFTP

Теперь, когда сервис работоспособен, укажем рабочий каталог, куда будут складываться файлы конфигурации и прочая светотень. Назовем его /tftpboot: Затем, поместите в этот каталог те файлы, которые вы собираетесь залить на устройства. Для примера, Вы хотите обновить Cisco IOS - так возьмите, какой посвежей, и положите его в каталог /tftpboot. Так как имена образов могут быть достаточно сложными, рекомендуем вести соответствующий журнал.

Также Вы можете создать пустые файлы, в которые будет сбрасываться информация с устройств. Желательно, чтоб эти имена несли смысловую нагрузку. Например, по именам соответствующих устройств: Учтите, что TFTP не поддерживает аутентификацию, поэтому, рабочий каталог и файлы должны быть доступны клиентам. Делается это обычно так: В зависимости от TFTP клиента, возможно использование более строгих прав доступа. К сожалению, для устройств Cisco, в настоящий момент это не возможно. Проверим права доступа:

Работа с TFTP сервером

Так как сервер TFTP уже настроен и работоспособен, воспользуемся tftp клиентов, поставляемый с FreeBSD, для проверки работоспособности. Для получения справки по командам используйте ?. Традиционно - get используется для скачивания, put для закачивания, quit для выхода. Если Вы привыкли использовать ftp клиент, то Вы заметите отсутствие таких команд как cd, ls, mget, mput и многих других.

Теперь выполним команду get. Для большей убедительности выберем непустой файл. Все замечательно, выходим: Есть важный момент, на который стоит обратить внимание - файл должен находиться в каталоге /tftpboot , иначе получить доступ к нему будет невозможно. Путь к файлу также не определяется. Вот, что получится, если указать путь: Помните, tftp предполагает, что файл, который Вы хотите передать, уже существует и расположен в /tftpboot. Во вторых, удостоверьтесь, что Вы записываете имя файла правильно. Это особенно важно с теми длинными именами образов Cisco IOS.

Вы, возможно заметили, что при использовании команды get не указывался каталог назначения. Это связано с тем, что получаемый файл автоматически помещается в текущий рабочий каталог. Как правило, на всяких железяках это не проблема, но работая по tftp на Вашей FreeBSD машине - будьте внимательны.

В заключение, используйте команду ls -l, для сравнения размера полученного и исходного файлов. Также это весьма удобная возможность вести документацию, ведь если на вашей машине установлен принтер, то распечатать список рабочего каталога tftp можно следующим образом: Далее в статье идет пример, как скачать с TFTP сервера образ Cisco IOS. Пропустил.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, podarok (?), 14:28, 18/12/2006 [ответить]  
  • +/
    Молодця!
    Хорошо перевел!
    Надо будет попробовать у себя поднять...
     
  • 1.2, spider (??), 10:37, 06/02/2007 [ответить]  
  • +/
    А вот я например какраз это у себя и поднимаю, и ничего не работает:) тоесть tftp не запускается я даже сервер ребутнул а толку никакого, ручками тоже не запускается...немогу понять что такое? прочитал маны, прочитал вашу статью, кстати, переведённую оч хорошо и понятно(спасибо:). Однако к позитивным результатам это не привело.
     
  • 1.3, Gremlin19 (?), 13:14, 13/06/2008 [ответить]  
  • +/
    Спасибо, благодаря статье нашел в каком месте я косячил
     
  • 1.4, ivi (??), 14:28, 31/07/2008 [ответить]  
  • +/
    Благодарю за перевод. Долго не мог понять в чём дело, оказалось, что пустой файл с тем же именем уже должен быть создан на сервере, для того, чтобы можно было его туда залить.
     
  • 1.5, stal (?), 16:24, 10/06/2010 [ответить]  
  • +/
    статья отличная!
    но может кто подскажет как сделать так, чтобы можна было заливать файлы на tftp сервер без предварительного создания их там?

    дело в тому, что CISCO оборудование генерить каждый раз уникальное имя конфига, который заливаеться на tftp
    пример:
    "ares.cfgJun-10-12-02-26.876-1"

     
     
  • 2.6, shvak (??), 19:14, 13/06/2010 [^] [^^] [^^^] [ответить]  
  • +/
    чтобы заливать несуществующие файлы нужно в /etc/inetd.conf в строчку, которую раскоментировали добавить в конце -w

    например,

    tftp   dgram  udp   wait  root  /usr/libexec/tftpd  tftpd -s /tftpboot -w

     

  • 1.7, Ane4ka (?), 20:07, 06/06/2013 [ответить]  
  • +/
    ай спасибо за "-w"
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру