- PXE, TFTP выбор ПО
- Немного теории
- PXELINUX из-под Линукс
- PXELINUX из-под Винды(TFTPD32)
- Практика
- Поднятие tftpd32 сервера на Windows
- Установка tftpd32 сервера на Windows
- Как проверить работу сервера tftpd32?
- Комментарии
- Содержание
- Применение
- Безопасность
- Типы пакета
- Запросы на чтение и запись
- Процесс передачи данных
- Опции TFTP
- Ошибки
- Схема URI
PXE, TFTP выбор ПО
Немного теории
Что же такое РХЕ? В рамках моего понимания это загрузочная среда используемая для загрузки по сети. Сетевая карта проверяет наличие возможности загрузки по сети и по протоколу TFTP получает загрузочный модуль. В следствии ограничения TFTP на 32 МБ, загрузка происходит в две стадии по 16 МБ. В первый проход загружается среда РХЕ предлагающая загрузить из сети тот или иной образ ОС. Это может быть линукс ядро, вытягивающее дальше из сети необходимые компоненты или монтриующее NFS, или же, допустим, досовая загрузочная дискетка (наш вариант). Есть так же вариант загрузки iso-образов, но с ним я еще не работал.
В наши задачи входит загрузить ДОС-дискетку с сетевыми драйверами и Ghost.
Комплект ПО идущий в комплекте Symantec Ghost Solution Suite. Впрочем он доступен для скачивания на сайте 3com. В нем разделены сервисы PXE и TFTP. Большое преимущество PXE-приложения из этого комплекта, в том что не требуется дополнительной настройки DHCP сервера. Не надо класических прописываний 66 и 67 параметров, ничего. Если РХЕ-приложение запущено на той же машине что и DHCP сервер, то настройка не требуется вообще, если на другой то достаточно галочки «Proxy DHCP». И все.
В этом случае РХЕ сервер, принимает запросы и передает управление TFTP серверу находящемуся на том же компютере. TFTP сервер из этого комплекта есть классическая настройка передачи различных образов различным мак адрессам, как впрочем и некоей группе адресов, определяемой по некоей маске, вплоть до рассылке всем одного и того же загрузочного образа.
Преимуществом данного комплекта в том что он работает с произвольными образами до 16 мегабайт. Для передачи DOS, Ghost, GhostWalker и сетевых драйверов этого вполне достаточно.
Так же в комплект ПО входит редактор этих самых образов дискеток.
При помощи данного комплекта мне так и не удалось загрузить линукс и ВинПЕ. Но т.к. в наши цели это и не входило вполне подходит. Любопытно, что при использовании галочки «Прокси через ДХЦП» перебивает собственную настройку ДХЦП по сетевой загрузке, проверяет свой BOOTPTAB и в случае если подходящий темплэйт не найден, передает управление на прописаный в ДХЦП сервере РХЕ загрузчик.
PXELINUX из-под Линукс
Недавно описывалась настройка данного варианта для установки линукса. Здесь. В нашем случае в качестве загрузочного образа мы будем использовать не линукс установщик, а все тот же образ дискеты распаковывая его директивой memdisk.
Отмечу что данная директива работет с нормированными образами дисков. Т.е. дискетка может быть произвольного объема, если описана ее архитектура. Опять же выплывает ограничение передачи по TFTP в 16 мегабайт.
К минусам данного варианта можно отнести необходимость наличия собственно машины с линуксом и все того же DHCP сервера, который необходимо будет донастроить для загрузки по сети.
PXELINUX из-под Винды(TFTPD32)
Вот что сообщает нам Википедия о данном ПО:
Tftpd32 — небольшая программа с открытым исходным кодом, включающая в себя простые в настройке DHCP, TFTP, SNTP и Syslog сервера, а также TFTP клиент, поддерживающий стандарт TFTPv2.
Не могу назвать его интуитивно понятным в настройке, однако для небольшой конторы, обходящейся без DHCP сервера, является лучшим решением. Основным его преимуществом естественно является наличие встроенного DHCP сервера. Используется та же среда PXELINUX, ее настройка идентична для обоих вариантов. Неплохой ман по настройке TFTPD32 здесь.
Практика
Исходя из вышеизложенного и той даннсти, что у нас есть ДОС-дискетка с Ghost-комплектом(Ghost, GhostWalker, сетевые драйвера), мы смело можем использовать любое из вышеприведенного ПО. Я же поэкспериментировав немного на доступной мне сети, отдал предпочтение родному софту, поставляемому вместе комплектом Ghost. В заведении где я сейчас работаю имеется DHCP сервер, однако сетевая загрузка уже задействована для запуска бездисковой версии линукса на базе дженту. Одно время для загрузки моих дискеток успешно использовался PXELINUX, но в критический момент всплыла до сих пор не исправленная ошибка (впрочем в основном из-за лени, нежели невозможности решения проблемы). После загрузки дискетки не корректно вставал сетевой драйвер, и вся идея гибла на корню. Загрузка же с 3сома не сбивает настроек загрузки дженты, а просто подвигает приоритет их выполнения на время.
Вот собственно и все что касается загрузки из сети. Как я и обещал, по просьбам трудящихся могу составить и пошаговые инструкции пользования описанным ПО.
Следующим шагом будет небольшой экскурс в эзотерику. Будем разбираться, что же такое этот Призрак.
Источник
Поднятие tftpd32 сервера на Windows
Для некоторых айтишных задач требуется поднять tftp-сервер, который обычно предназначен только для простой передачи файлов между устройствами. TFTP изначально так и разрабатывался, чтобы быть простым. Прочитать о его работе можно на Wikipedia.
Мне понадобился сервер tftp для того, чтобы слить настройки с уже настроенного коммутатора Cisco и при необходимости залить его обратно.
Для справки: tftp – это протокол передачи данных, который работает на транспортном протоколе UDP на порту 69. Особой безопасности не предоставляет. Используется для загрузки бездисковых систем (нужен для загрузки первоначального загрузчика) и для обновления прошивок аппаратных sip-телефонов Cisco.
Этот протокол чувствителен к фрагментации сетевого пакета. Если фрагментация есть, то файл может передаваться не до конца. Чтобы проверить делятся пакеты или нет, нужно выставить правильное MTU . На Windows это можно сделать программой TCP Optimizer. Подробнее о программе и настройке MTU здесь.
Есть две версии приложения:
- tftpd32 — для 32-битной системы windows;
- tftpd64 — для 32-битной системы соответственно.
Данный tftp-сервер можно установить как для старой Windows XP, так и для современной Windows 10. На серверные ОС (Windows 2012 r2, Windows 2016 и др.), tftpd64 и tftpd32 встают тоже без проблем.
Порт tftp сервера по умолчанию — 69/UDP. Если подключение проходит через маршрутизатор, не забываем открыть 69 порт UDP протокола.
Установка tftpd32 сервера на Windows
Для таких простых целей я выбрал замечательное приложение tftpd32/tftpd64. Найти его можно здесь.
Для того, чтобы развернуть tftp-сервер на своем рабочем месте необходимо:
- Загрузить нужный дистрибутив отсюда. Стоит обратить внимание, что дистрибутивы различаются по типу запуска: как службу (service edition) и как приложение (standard edition) и также по битности ОС. Для себя я выбрал пакет tftpd64 service edition (installer)
- После загрузки, устанавливаем загруженный дистрибутив, не изменяя абсолютно никаких параметров.
- Если Вы загрузили, как и я, дистрибутив с запуском в качестве службы, то стоит вручную запустить службу или просто перезапустить компьютер.
- Дальнейшей настройки этот сервер не требует, но для подстраховки все настройки должны выглядеть так как изображено на скрине:
Всё! Теперь можно подключаться к tftp и копировать файлы. У операционной системы Windows XP tftp-клиент установлен по умолчанию, а у Windows 7/8/10 его необходимо доставить через компоненты системы.
Как проверить работу сервера tftpd32?
Для того, чтобы передать файл необходимо открыть cmd.exe и выполнить команду:
Для того, чтобы получить файл с tftp-сервера, есть команда:
Использовать tftpd32/tftpd64 для каких-то постоянных задач не рекомендуется, так как у него практически нет никакой защиты от несанкционированного подключений к серверу. Да, можно ограничить доступ к нему только определенным IP-адресам, но та легкость, с которой можно подменить IP-адрес, позволяет сказать, что это не относится к сетевой безопасности вообще.
Включать сервер tftp с таким «уровнем безопасности» можно только на короткое время, для выполнения каких-то сервисных работ, а лучше вообще делать это в изолированной сети.
Комментарии
Отлично и все так просто. Как раз хочу сохранить конфиг с маршрутизатора.
Распишите пожалуйста подробно, как с помощью этого ПО прошить голосовой шлюз. Где какие адреса вписывать и директории.
Возможно, в будущем обязательно напишу. Пока нет под рукой голосового шлюза от Cisco.
А почему service interfaces у меня постоянно сбрасывается на адрес 127.0.0.1 ?
Разобрался. Утилита бородатая и просто не хочет правильно работать на семёрке. На хрюшке нормально заработала, правда пришлось правило фаэрвола ручками подправить – открыть 69 порт.
Не в чем там разбираться. Бородатость утилиты тут не причем, тем более последняя версия от 06.05.2015, тут семёрка даже с первым сервиспаком бородастей будет. Утилита прекрасно работает на всех версиях 32/64 рабочих станций и серверов. По умолчанию при запуске привязывается к первому интерфейсу по списку, если адрес 127.0.0.1 в списке первый, то к нему и привяжется. В утилите надо в настройках включить Bind TFTP to this address и выбрать нужный адрес из списка, чтобы он записался в файл tftp32.ini
Игорь, дружище, спасибо огромное, просто и быстро всё заработало, solarwinds ваще не хотел коннектить.
- Денис Юрьевич прокомментировал MultiKey не устанавливается, отозван сертификат
- Павел Urman прокомментировал Как закрыть крышку часов Tissot?
- AdminWay прокомментировал kernel_task грузит проц на 100% на MacOS BigSur
- Лев прокомментировал kernel_task грузит проц на 100% на MacOS BigSur
- AdminWay прокомментировал kernel_task грузит проц на 100% на MacOS BigSur
Драйвер для Cisco USB Console для 64 битной операционной системы
Сброс конфигурации на заводские настройки Cisco 2960
Как сохранить настройки Cisco в файл и загрузить их потом обратно?
Поднимаем сервер DHCP на Cisco 3750
Включаем SSH на маршрутизаторе Cisco
Protocol major versions differ: 2 vs. 1
Зарядка для айтишника или профилактика шейного остеохондроза
Драйвер для Cisco USB Console для 64 битной операционной системы
Если Вы используете материал моего блога, то будьте добры поставьте ссылку.
Источник
Trivial File Transfer Protocol
RIS Windows, tftp.exe
WinAgents TFTP Server, RIS Windows, tftpd
Размер блока (RFC 2348), Тайм-аут передачи (RFC 2349)
TFTP (англ. Trivial File Transfer Protocol — простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций. TFTP, в отличие от FTP, не содержит возможностей аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.
Содержание
Применение
Основное назначение TFTP — обеспечение простоты реализации клиента. В этой связи он используется для загрузки бездисковых рабочих станций, загрузки обновлений и конфигураций в «умные» сетевые устройства, записи статистики с мини -АТС (CDR) и аппаратных маршрутизаторов/файрволов.
Безопасность
Поскольку протокол не поддерживает аутентификации, единственный метод идентификации клиента — это его сетевой адрес (который может быть подделан). Обычно в Unix-системах tftpd доступен только каталог /tftpboot. Однако в старых TFTP-серверах было возможным получить файл паролей командой RRQ ../etc/passwd.
Демон tftpd (одна из реализаций tftp-сервера) отказывается обрабатывать файлы, содержащие в своём имени комбинацию «/../» или начинающуюся с «../». Запись разрешается только в файлы, которые уже существуют (любого размера, например нулевого), и доступны для публичной записи (права доступа: -rw-rw-rw-). [1]
Дополнительная защита от доступа к произвольным файлам осуществляется с помощью смены корневого каталога на каталог tftpd (обычно /usr/TFTPRoot).
Типы пакета
Сначала в TFTP-пакете идет поле размером в 2 байта, определяющее тип пакета:
- Read Request (RRQ, #1) — запрос на чтение файла.
- Write Request (WRQ, #2) — запрос на запись файла.
- Data (DATA, #3) — данные, передаваемые через TFTP.
- Acknowledgment (ACK, #4) — подтверждение пакета.
- Error (ERR, #5) — ошибка.
Запросы на чтение и запись
Для начала передачи данных клиент должен послать серверу WRQ или RRQ-пакет. У обоих пакетов формат одинаковый:
0x01/0x02 (тип пакета) | Имя файла | 0x00 (конец строки) | Режим передачи | 0x00 (конец строки) | Опции… (если есть) |
---|---|---|---|---|---|
2 байта | строка в ASCII | 1 байт | строка в ASCII | 1 байт | См. «Опции» |
В TFTP существует 2 режима передачи (режим Mail, определенный в IEN 133, признан устаревшим):
- netascii — файл перед передачей перекодируется в ASCII.
- octet — файл передается без изменений.
После получения RRQ-пакета сервером, он сразу начинает передачу данных. В случае с WRQ-запросом — сервер должен прислать ACK-пакет c номером пакета 0.
Процесс передачи данных
После получения запроса RRQ, сервер сразу посылает в качестве подтверждения пакет с данными и с ID пакета равным единице. В WRQ в качестве подтверждения используется ACK с ID равным нулю. Всего по TFTP можно передать 32 Мб (65536 * 512 / 1024²), однако из-за использования знакового int вместо беззнакового, размер подтверждения ограничен 16 мегабайтами. Однако если клиент и сервер поддерживают расширения протокола RFC 2347 и RFC 2348, то максимальный размер передаваемого файла увеличивается до 4Gb.
Опции TFTP
В RFC 2347 был предусмотрен формат опций, которые можно присоединять к окончанию RRQ-пакета и WRQ-пакета:
Код опции | 0x00 (конец строки) | Значение опции | 0x00 (конец строки) |
---|---|---|---|
строка в ASCII | 1 байт | строка в ASCII | 1 байт |
Опций может быть несколько. Тогда они будут следовать друг за другом. Порядок опций не важен.
В ответ на RRQ (или WRQ) с опциями, сервер должен прислать OACK с списком опций, которые сервер принял. Наиболее распространённые опции:
Название | Определена в | Код опции | |
---|---|---|---|
Размер блока | RFC 2348 | blksize | В качестве значения опции идёт число, принимающее значение от 8 до 65464, обозначающее размер блока. |
Интервал повторной передачи (Timeout) | RFC 2349 | timeout | В качестве значения опции идёт число, принимающее значение от 1 до 255, обозначающее время ожидания перед повторной передачей блока в секундах. |
Размер файла | RFC 2349 | tsize | В качестве значения опции идёт число, обозначающее размер передаваемого файла в байтах. |
Ошибки
В TFTP информация об ошибке имеет следующий формат:
0x05 (тип пакета) | Код ошибки | Описание ошибки | 0x00 (конец строки) |
---|---|---|---|
2 байта | 2 байта | строка в ASCII | 1 байт |
Код ошибки может принимать одно из значений, перечисленных в STD 33 (за исключением кода 8 — он описан в RFC 2347). Вот они:
Код ошибки | Описание |
---|---|
0 | Нет определенного кода, см. текст ошибки |
1 | Файл не найден |
2 | Доступ запрещен |
3 | Невозможно выделить место на диске |
4 | Некорректная TFTP-операция |
5 | Неправильный Transfer ID |
6 | Файл уже существует |
7 | Пользователь не существует |
8 | Неправильная опция |
Схема URI
В RFC 3617 определен формат URI для TFTP. Он имеет следующий вид:
Источник