Бездисковая загрузка по технологии iSCSI на базе ОС Windows
Написанию данного поста предшествовало сбор информации по частям и многочасовое курение как русскоязычных, так и англоязычных ресурсов в сети интернет в поиске сравнительно простых способов реализации бездисковой загрузки ПК.
Предпосылкой к изучению данного вопроса стало наличие в сети компьютера, с вышедшем из строя дисковым накопителем. Необходимо было запустить на данном ПК «полноценную» 64-битную операционную систему Windows 7 без использования Linux-сервера, ограничившись только имеющимися в локальной сети Windows системами. Приводимые в данном посте программные продукты распространяются бесплатно и могут работать как на серверных, так и на пользовательских версиях Windows.
- iSCSI (англ. Internet Small Computer System Interface) — протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами;
- iSCSI Target: (Цель iSCSI) — программа или аппаратный контроллер (HBA), осуществляющие эмуляцию диска и выполняющие запросы iSCSI;
- iSCSI Initiator: (Инициатор iSCSI) — клиентская программа или аппаратный контроллер, который взаимодействует с iSCSI Target;
- IQN: (iSCSI Qualified Name) — уникальный идентификатор (имя) iSCSI Target’a или iSCSI Initiator’а;
- LUN: (Logical Unit Number) — адрес блочного устройства в диапазоне 0-127;
- DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP;
- TFTP (англ. Trivial File Transfer Protocol — простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций.
Введение
Современные операционные системы Windows 7, Windows Server 2008 и всё, что старше, умеют подключаться напрямую на iSCSI target. Проблема только в том, как инициализировать удаленное блочное устройство при включении ПК.
Вспомним, что почти все современные сетевые карты умеют загружаться по технологии PXE. А вот с iSCSI дружат в основном только дорогостоящие серверные сетевые карты, например Intel. Однако, существует как минимум два open source проекта gPXE и iPXE позволяющий при загрузке ПК подключаться iSCSI устройствам. Последний, к слову, форк первого, с немного доработанной системой вывода ошибок и дополнительными опциями.
Есть много способов, как загружаться через gPXE и iPXE. В данном посте мы будем рассматривать загрузку с использованием iPXE и подключением для него необходимых скриптов в процессе загрузки.
Суть такова — при запуске компьютера сетевая карта получает необходимые настройки через DHCP сервер и загружает PXELINUX. Далее загрузчик PXELINUX подключает необходимый скрипт и загружает iPXE, который, в свою очередь, выступает iSCSI инициатором и передает управление диску. До момента инициализации блочного устройства передачу файлов по сети обеспечивает протокол TFTP.
Но обо всем по порядку. Начнем с установки и настройки в системе Windows необходимого софта для реализации DHCP, TFTP и iSCSI Target-а. Для этого я использовал бесплатно распространяемые программные продукты Tftpd32 и StarWind Virtual SAN. Программа Tftpd32 используется как в роли DHCP сервера, так и в роли TFTP сервера, ну а StarWind Virtual SAN соответственно будет использоваться в роли iSCSI target-а. Скачать данные программы можно на сайте разработчиков, ссылки которых указанны в их названиях. Для скачивание программы StarWind Virtual SAN необходимо будет выбрать на сайте Free версию программы и пройти процесс регистрации, с указанием корпоративного почтового адреса. На указанный вами почтовый адрес придет лицензионный ключ и ссылка на скачивание самой программы.
Настройка программы Tftpd32
Данная программа довольно простая и интуитивно понятная, поэтому приведу просто скриншоты своих настроек:
На вкладке «GLOBAL» у меня отмечены галочкой сервисы TFTP Server, Syslog Server и DHCP Server. На вкладке TFTP в поле Base Directory указана точка, которая означать, что в качестве корневой директорией будет использоваться папка, куда установлена сама программа Tftpd32. На вкладке DHCP в поле Boot File указан название загружаемого файла, которую мы рассмотрим дальше в настройках PXELINUX. На вкладке SYSLOG настройки не требуются.
Цель iSCSI. Настройка программы StarWind Virtual SAN
При установке программа никаких настроек не запрашивает, единственное может дополнительно запустить установку .NET Framework 4, если она еще не установлена в системе. После установки программа запускает свои службы и сразу готова к работе. На рабочем столе создается ярлык StarWind Management Console для управления.
Открываем StarWind Management Console, жмем кнопку Add Server и создаем новый сервер с IP-адресом 192.168.0.1. Имеющийся по умолчанию сервер с IP-адресом 127.0.0.1 можно удалить.
Далее выбираем созданный нами сервер и нажимаем ссылку Add Target. В появившемся окне можем указать свое название IQN цели, активировав галочку Target Name. В частности я указал iqn.2014-11.home:win7-64bit.
Далее выбираем созданный нами Target и нажимаем ссылку Add Device.
В появившейся окне выбираем Hard Disk Device, далее выбираем Virtual Disk, указываем расположение и объем создаваемого диска, задаем объем и параметры кэширования, и создаем дисковое устройство нажатием кнопки Create.
В итоге получаем настроенный и готовый к работе iSCSI Target, имеющий следующий вид:
При необходимости мы можем создавать необходимое количество iSCSI Target-ов и на каждый из них подключить необходимое количество iSCSI дисков. А также обеспечить безопасности доступа к iSCSI Target-ам с использованием CHAP-аутентификации клиентов, нажав по ссылке Add Permission.
Настройка PXELINUX
PXELINUX входит в комплект программ syslinux. Поэтому идем на сайт www.syslinux.org/wiki/index.php/Download, нажимаем на ссылку Download и загружаем zip архив с набором загрузчиков syslinux. Открываем загруженный архивный файл и распаковываем файлы pxelinux.0 из директории core и menu.c32 из директории com32/menu. Файл pxelinux.0 является загрузчиком, который передается клиентскому ПК DHCP сервером, а файл menu.c32 отвечает за построение загрузочного меню. Распакованные файлы размещаем в папку, куда установлена программа Tftpd32 (куда указывает путь в поле Base Directory в настройках TFTP).
В папке программы Tftpd32 создаем вложенную папку pxelinux.cfg, а в нем создаем файл default следующего содержания:
default menu.c32
gfxmenu /erdpxe
prompt 0
MENU TITLE Boot Menu (select the OS to boot)
MENU AUTOBOOT Windows 7 64bit in # seconds
TIMEOUT 50
TOTALTIMEOUT 3000
LABEL Windows 7 64bit
MENU DEFAULT
KERNEL IPXE.KRN
INITRD win7.ipxe
Думаю излишнем писать подробный комментарий к данному файлу, рассмотрим только две последние строчки:
KERNEL IPXE.KRN — указывает на ядро iPXE, которую нужно загрузить.
INITRD win7.ipxe — указывает на файл скрипта с параметрами iPXE
Указанных настроек PXELINUX вполне достаточно для использования дефолтной конфигурации и можно перейти к дальнейшей настройке iPXE, поэтому остающуюся часть текста решил убрать под спойлер.
Если в сети существует несколько бездисковых рабочих станций, и нужно чтобы каждый ПК имел доступ только «к своему» iSCSI-диску и не имел доступа к «чужим» дискам, то нам нужно будет создать несколько файлов с загрузочным меню для каждого ПК.
При получении файла конфигурации от TFTP сервера клиент ищет подходящую для себя в следующем порядке:
pxelinux.cfg/01-88-99-aa-bb-cc-dd
pxelinux.cfg/C0A800FE
pxelinux.cfg/C0A800F
pxelinux.cfg/C0A800
pxelinux.cfg/C0A80
pxelinux.cfg/C0A8
pxelinux.cfg/C0A
pxelinux.cfg/C0
pxelinux.cfg/С
И если ничего подходящего нет —
pxelinux.cfg/default
Здесь pxelinux.cfg — сама папка с файлами конфигурации.
01-88-99-aa-bb-cc-dd — файл с названием МАС-адрес клиента, в нижнем регистре, разделенный тире, с префиксом 01-.
Соответственно, для каждой бездисковой рабочей станции нам нужно написать «свое» загрузочное меню и разместить в папке pxelinux.cfg с названием файла 01-mac-адрес клиента, в нижнем регистре. Содержимое этих файлов может отличаться, к примеру, только последней строчкой INITRD win7.ipxe.
Инициатор iSCSI. Настройка iPXE
Итак, далее идем на сайт ipxe.org/download и загружаем iso-образ iPXE загрузчика. Из загруженного iso-образа вытаскиваем файл IPXE.KRN и сохраняем его в папке программы Tftpd32.
В этой же папке создаем файл win7.ipxe следующего содержания:
#!ipxe
dhcp net0
set keep-san 1
#login
sanboot iscsi:192.168.0.1. iqn.2014-11.home:win7-64bit
Строка dhcp net0 данного скрипта указывает, что необходимо получить настройки через DHCP сервер в сети.
Строка set keep-san 1 указывает, что подключение к iSCSI Target-у необходимо сохранить даже если загрузка с данного устройства не удалась (этот параметр необходим, когда нужно устанавливать операционную систему с накопителей CD/DVD).
Если в iSCSI Target настроена CHAP-аутентификации клиентов, то нужно раскомментировать строку #login, которая будет выводит форму для ввода логина и пароля.
Последняя строка непосредственно подключает указанный iSCSI Target, инициализирует удаленный диск и передает процесс дальнейшей загрузки на данное устройство. Синтаксис подключения будет таким iscsi:<Айпи iSCSI target>. <IQN цели>.
Если мы хотим добавить в загрузочное меню еще один пункт, например, для загрузки ОС Windws 8.1, то создаем в StarWind Virtual SAN новый Target с указанием IQN цели iqn.2014-11.home:windows8.1, добавляем в него новое дисковое устройство iSCSI, а затем в файле pxelinux.cfg/default добавляем к примеру такие строчки:
LABEL Windows 8.1
KERNEL IPXE.KRN
INITRD win8.1.ipxe
Ну и далее создаем файл win8.1.ipxe следующего содержания:
#!ipxe
dhcp net0
set keep-san 1
#login
sanboot iscsi:192.168.0.1. iqn.2014-11.home:windows8.1
Установка ОС Windows 7
Перед началом установки Windows 7 на бездисковую станцию открываем его BIOS и настраиваем порядок опроса загрузочных устройств следующим образом:
1) Hard Disk
2) Network
3) CD/DVD
4) остальные устройства
Если на ПК имеется установленный жесткий диск, то на время установки Windows его желательно отключить, чтобы компьютер не пытался с него загружаться.
Далее размещаем в приводе CD/DVD установочный диск Windows 7 и перезагружаем компьютер.
Первым делом мы должны увидеть запуск загрузки через PXE. Если этого не произошло то снова заходим в BIOS и разрешаем загрузку компьютера через сетевой адаптер.
Далее на экране появиться загрузочное меню PXELINUX. Если этого не произошло проверяем, запущена ли на другом компьютере программа Tftpd32, правильно ли она настроена и не блокирует ли его работу firewall-ы, антивирусы или другие программы.
После выбора необходимого пункта загрузочного меню PXELINUX мы должны увидеть запуск iPXE.
В процессе инициализации iPXE должны промелькнут надписи:
Registered as BIOS drive 0x80
Booting from BIOS drive 0x80
Это значит, что ПК удачно подключился к iSCSi диску.
Затем мы увидим ошибку загрузки через iSCSi диск, после чего компьютер перейдет к опросу следующего загрузочного устройства и запустит установка Windows 7 с привода CD/DVD. При этом подключение к iSCSi диску останется активным — за это отвечает указанная в скрипте строчка set keep-san 1.
В процессе установки Windows, на этапе выбора дискового устройства мы должны увидеть подключенный нами iSCSi диск. Если iSCSi диск в списке отсутствует, значит установщик Windows не смог автоматически подключить необходимые драйвера для сетевой карты. В этом случае скачиваем с сайта разработчика необходимые драйвера сетевой карты и подключаем их установщику Windows. После этого iSCSi диск должен появиться в списке.
Иногда на этапе выбора дискового устройства можно получить сообщение о невозможности установки Windows на выбранный диск и просьбу проверить, включен ли в BIOS контроллер этого диска.
В этом случае первым делом проверьте в BIOS порядок опроса загрузочных устройств. Жесткий диск должен находиться на первой позиции, даже если на компьютере физически не установлен дисковый накопитель.
Если проблема не исчезла, то попробуйте в BIOS-е включать/выключать SATA контроллер, менять режим его работы IDE, ACHI, либо подключить реальный диск на время установки, но установку проводить на iSCSI диск.
После выбора дискового устройства начнется установка Windows 7. Дальше никаких трудностей возникнуть не должно. После установки мы получаем «полноценную» операционную систему Windows 7, работающей на iSCSI диске.
Установка ОС Windows (альтернативный метод)
Не знаю кому как, но мне лично не представляется удобным для каждого установочного образа Windows записывать DVD диск.
Мне привычнее распаковать содержимое установочного диска и запустить установку Windows с жесткого диска. К тому же с жесткого диска операционная система устанавливается быстрее.
Приведу пример, с использованием стандартного загрузчика bootmgr, имеющегося в любом установочном дистрибутиве Windows.
Данный метод подходит также для установки Windows с локальных жестких дисков.
Если коротко, то создаем на iSCSI диске небольшой «активный» раздел, копируем туда содержимое установочного диска Windows, и затем настраиваем MBR, для загрузки с диска установщика Windows. Подробности под спойлером.
Итак, откроем на рабочей Windows системе Панель управления — Администрирование — Инициатор iSCSI.
Появиться окно «Свойства: Инициантор iSCSI».
Переходим на вкладку «Обнаружение» и нажимаем кнопку «Обнаружить портал. ».
В открывшемся окне вводим IP-адрес нашей цели iSCSI — 192.168.0.1 и нажимаем ОК.
Далее переходим обратно на вкладку «Конечные объекты» и увидим все цели с идентификаторами IQN.
Выбираем в списке нужную цель и нажимаем кнопку «Подключить».
Откроется еще одно окно требующий нашего подтверждения, где также нажимаем ОК.
Если в открывшемся окне оставить галочку «Добавить это подключение в список предпочитаемых конечных объектов» то указанная цель будет автоматически подключаться к системе при каждой загрузке.
Открываем оснастку «Управление компьютером» и переходим на вкладку «Управление дисками». Тут мы увидим, что в нашей системе появилось еще одно дисковое устройство. Создаем на этом диске «Основной раздел», указав размер диска чуть больше размера нашего установочного образа. Далее форматируем под файловую систему NTFS, подключаем любую букву диска и делаем раздел «активным».
Откроем необходимый образ установочного диска программой UltraISO или WinRar и распакуем содержимое образа на созданный в предыдущем пункте раздел диска. Важно, чтобы после распаковки на диске оставалось как минимум 100Мб свободного места (Для Windows 8 рекомендуется 350Мб свободного места). Если свободного места недостаточно, то расширяем выбранный раздел в оснастке «Управление дисками».
Затем скачиваем из интернета программу BOOTICE и запускаем (ссылки приводить не буду, сами сможете найти без труда).
В программе выбираем нужный нам диск из раскрывающегося списка. В моем случае HD6:
Далее нажимаем кнопку «Process MBR» и откроется следующее окно:
В данном окне выбираем последний пункт «Windows NT 5.x / 6.x MBR» и нажимаем кнопку «Install/Config».
На диске будет настроен MBR, загружающий стандартный загрузчик bootmgr из активного раздела диска.
Далее можно загружаться на бездисковом ПК с данного iSCSI-диска и сходу устанавливать ОС WIndows.
Установка Windows запуститься автоматически.
Но рассмотрим еще один момент. Если мы хотим сделать данный раздел скрытым от пользователей и недоступным для операционной системы, то запускаем командную строку от имени администратора и набираем следующие команды:
Diskpart
List disk
Sel disk x (вместо x подставляем номер нужного диска, список которых выводит предыдущая команда)
Sel part 1 (при необходимости список разделов можно посмотреть командой List part)
Remove
Set >
После этого данный раздел диска станет технологическим и скрытым. Для этого раздела уже не возможно назначит букву диска и примонтировать его к работающей системе, но устанавливается Windows с данного раздела без проблем.
Получится что то типа раздела восстановления)
Установка и настройка TFTP сервера
TFTP (англ. Trivial File Transfer Protocol — простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций. TFTP, в отличие от FTP, не содержит возможностей аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.
Основное назначение TFTP — обеспечение простоты реализации клиента. В связи с этим он используется для загрузки бездисковых рабочих станций, загрузки обновлений и конфигураций в «умные» сетевые устройства, записи статистики с мини-АТС (CDR) и аппаратных маршрутизаторов/файрволов.
Программа работает на порту 69 протоколы UDP и TCP.
Настраивать TFTP сервер мы будем для использования в процедуре обновления устройств.
Установка
В качестве программы, которая будет выполнять роль TFTP сервера будет небольшая программа, которую можно СКАЧАТЬ
Качаем portable edition версию т.к. лишняя возня с установкой нам не нужна. Выбираем исходя из ОС которая у вас установлена.
Распаковываем в удобное для нас место и запускаем tftpd64.exe или же tftpd32.exe если мы скачали 32 битную версию.
- 1 – здесь указывается корневой каталог куда/откуда будут качаться наши файлы, пу умолчанию это каталог где лежит наша программа.
- 2 – тут необходимо выбрать IP адрес на который будет отвечать наш TFTP сервер т.е. адрес на который мы будем обращаться внешними клиентами.
- 3 – настройки программы.
В принципе данных действий нам достаточно, чтоб начать работать с данным TFTP сервером. Данные загружаются и скачиваются из корневого каталога, который указан в пункте 1.
Дополнительные настройки
Функционал данной программы не ограничивается только TFTP сервером, но так же имеет дополнительный функционал. Мы рассмотрим лишь малую часть, что часто используется.
DHCP Server – необходим для выдачи динамических IP адресов для наших устройств.
Жмем на кнопку Setting — 3 , оставляем, как показано на картинке
Переходим на вкладку DHCP и вносим минимальные настройки
Настройки самого DHCP сервера
- 1 – начальные IP адрес, с которого будут выдаваться наши адреса
- 2 – количество адресов, которые будут выдаваться
Настройки для клиентов, что будут получать адреса
DHCP сервер работает в границах одного широковещательного домена т.е. если сервер находиться за маршрутизатором, то адреса мы не сможем получать. Возможность получать адреса находясь за маршрутизатором в данной статье не рассматривается.
Обзор TFTP-сервера TFTPD32 (простой протокол передачи файлов)
TFTPD32 — это удобная утилита для сбора и распространения системных файлов в небольшой сети. Инструмент был разработан французом Филиппом Жуном и доступен для бесплатного скачивания на его сайте.
TFTPD32 также доступен в 64-битной версии. Это называется TFTPD64. Инструмент работает в операционной системе Windows от Windows 95 до Windows 10.
Инструмент не просто выступает в роли сервера TFTP, он также работает как клиент TFTP. Другие функции в приложении программа DNS-сервера, утилита DHCP, Управление системным журналом, и клиент SNTP. Утилита имеет интерфейс GUI и код с открытым исходным кодом, так что вы можете прочитать программу, чтобы увидеть, как она работает.
О TFTP
Тривиальный протокол передачи файлов это легкая система для перемещения небольших файлов по сети. Протокол не включает никаких служб шифрования, поэтому он не подходит для передачи файлов через Интернет. Основное использование этой системы было для распространение файлов конфигурации к сетевым устройствам, пока они запускаются. TFTP используется как часть BOOTP и предзагрузочной среды выполнения. Протокол определен в RFC 1350.
Поскольку BOOTP больше не используется широко, полезность TFTP уменьшается. Процесс DHCP становится все более популярным. тем не мение, TFTP все еще полезен для передачи снимков конфигурации в центральное хранилище и для возврата этих данных в случаях, когда необходимо откатить конфигурацию устройства. TFTP работает по UDP, и контакт также инициируется через порт 69.
TFTPD32 для TFTP
Полезность средства TFTPD32 для TFTP заключается в том, что у него есть несколько небольших дополнений, улучшающих стандарт TFTP. Условия передачи могут быть оптимизированы путем настройки опций TFTP (которые являются частью стандарта), таких как tsize, размер блока, и Тайм-аут.
TFTP не включает никаких функций каталога, и вы даже не можете просматривать файлы на удаленном компьютере. Тем не менее, TFTPD32 добавляет эти возможности. Дисплей включает в себя индикатор выполнения, это удобное дополнение, особенно если вы когда-либо используете его для передачи больших файлов.
TFTPD32 для DHCP
Если вы используете DHCP в своей сети, вам не нужно вкладывать деньги и вкладывать средства в причудливый инструмент DHCP-сервера, поскольку он встроен в TFTPD32. Модуль DHCP-сервера может распространять неограниченное количество IP-адресов и это может выделить статические адреса а также предоставление автоматическое распределение IP-адресов система.
При настройке службы DHCP вам просто нужно ввести начальный IP-адрес и размер пула. Вы также можете ввести имя домена по умолчанию, маску и маршрутизатор по умолчанию для процедур DHCP.
TFTPD32 для DNS
Вам не нужно запускать службу DNS на том же компьютере, что и сервер DHCP, но если у вас небольшая сеть, вы, вероятно, это сделаете. Интерфейс для TFTPD32 помещает обе эти службы в одном окне, но на разных вкладках. Переключение с одной вкладки на другую не закрывает службы на скрытых вкладках, все они будут работать независимо от того, смотрите вы их или нет.
Если вы решили разместить службу DNS на другом компьютере, вам просто нужно установить другую копию TFTPD32 на этот компьютер и использовать только вкладку DNS в его интерфейсе..
TFTPD32 для управления системным журналом
Вкладка Syslog в TFTP32 позволяет вам см. сообщения системного журнала как они циркулируют по сети. Вы также можете указать имя файла для хранения системного журнала. Интерфейс не предоставляет возможности анализа системного журнала, но вы можете управлять файлами системного журнала и можете загружать сообщения в средство просмотра интерфейса из файла.
Смотрите также: 15 лучших бесплатных серверов Syslog для Linux и Windows
TFTPD32 использует
Сочетание функций в TFTPD32 экономит много денег потому что это устраняет стоимость покупки системы DHCP, сервера DNS, сервера системного журнала и менеджера конфигурации. В каждом модуле TFTPD32 просто предоставляет базовые сервисы, необходимые для управления каждой из ваших сетевых задач. Например, нет никаких функций сверки DHCP / DNS, и там нет инструмента диспетчера IP-адресов, который бы проверял наличие потерянных адресов..
TFTPD32 является идеальным инструмент администрирования стартовой сети для небольших сетей. По мере роста вашей сети вы обнаружите, что вам нужно больше аналитических возможностей и больше автоматизации задач. Так, в конечном итоге вы перерастете TFTPD32. В небольшой сети предоставление базовых функций и отсутствие функций является преимуществом, потому что, если вы управляете своей сетью в одиночку, у вас, вероятно, все равно не будет времени использовать эти дополнительные функции. В более крупных системах ваши обязанности по управлению конфигурацией и управлению адресами быстро станут неуправляемыми без дополнительной автоматизации процессов и прогнозных предупреждений..
Используете ли вы TFTPD32 для вашей сети? Считаете ли вы, что он предоставляет все функции, которые вам необходимы для управления вашей сетью? Добавляете ли вы дополнительные инструменты, чтобы обеспечить все необходимые возможности для успешного управления сетью? Оставьте сообщение в разделе комментариев ниже и сообщите нам о своем опыте работы с TFTPD32..
Tftpd32 как пользоваться программой
Параметр IP pool starting address указывает, с какого IP адреса начать выдачу адресов. В моем примере выдача IP адресов начнется с 192.168.200.10.
Параметр Size of pool указывает количество IP адресов, которые будут динамически выделяться. Я установил значение в 10.
Параметр Boot File сообщает удаленному компьютеру имя файла, который необходимо использовать в качестве загрузчика. Я установил значение в pxeboot.n12 .
Параметр Mask, указывает маску сети. В нашем случае это 255.255.255.0. Остальные значения параметров оставляем по умолчанию.
Результат настроек изображен на рисунке 4.
Настройка TFTP сервера
Присваиваю параметру Base Directory значение с:\netboot\windows7 .Обязательно ставим галочку напротив параметра Option Negotiation.
Поднятие 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 с таким «уровнем безопасности» можно только на короткое время, для выполнения каких-то сервисных работ, а лучше вообще делать это в изолированной сети.
Восстановление прошивки роутера TP-Link через TFTP
Большинство роутеров фирмы TP-Link поддерживают возможность перепрошивки/восстановление прошивки с помощью программы tftpd32, которая работает через протокол TFTP. Далее мы рассмотрим процесс восстановление прошивки на роутере TP-Link TL-MR3220 V2.
Прежде всего нам необходима программа tftpd32. Скачать последнюю версию можно с официального сайта разработчика программы.
Еще нам необходима прошивка для нашего роутера. Скачать ее можно на официальном сайте TP-Link или по ссылке ниже.
Прошивка для восстановления не содержит в названии слово «boot»!
Имя файла прошивки должно иметь следующий вид «mr3220v2_tp_recovery.bin» для нашей модели. Для других моделей аналогичные названия «wr842ndv1_tp_recovery.bin», «wr1042nv1_tp_recovery.bin» и т.п.
Теперь у нас есть все для восстановления прошивки. Распаковываем архив с tftpd32. Копируем скаченную прошивку в папку с программой tftpd32.
Подключаем роутер к компьютеру с помощью кабеля. Теперь необходимо изменить настройки сетевого адаптера. Для этого идете в Панель управления — Сеть и Интернет — Сетевые подключения. В свойствах сетевого адаптера пишем следующие настройки:
- IP-адрес: 192.168.0.66
- Маска подсети: 255.255.255.0
Шлюз и DNS-сервера оставляем пустыми.
Запускаем программу Tftpd32 (можно от имени администратора). Проверяем сетевой интерфейс (должен быть 192.168.0.66) и наличие прошивки в папке с программой. Для этого нажимаем кнопку Show dir и смотрим в списке наличие нашей прошивки «mr3220v2_tp_recovery.bin».
Теперь включаем роутер. Если все правильно сделано до этого, то начнется загрузка прошивки в роутер. Остается только дождаться загрузки.
После окончания загрузки прошивки перезагрузите роутер, если это не произошло автоматически. Не забудьте изменить настройки сетевого адаптера на автоматическое получение IP-адреса.
Установка и настройка TFTP сервера
TFTP (англ. Trivial File Transfer Protocol — простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций. TFTP, в отличие от FTP, не содержит возможностей аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.
Основное назначение TFTP — обеспечение простоты реализации клиента. В связи с этим он используется для загрузки бездисковых рабочих станций, загрузки обновлений и конфигураций в «умные» сетевые устройства, записи статистики с мини-АТС (CDR) и аппаратных маршрутизаторов/файрволов.
Программа работает на порту 69 протоколы UDP и TCP.
Настраивать TFTP сервер мы будем для использования в процедуре обновления устройств.
Установка
В качестве программы, которая будет выполнять роль TFTP сервера будет небольшая программа, которую можно СКАЧАТЬ
Качаем portable edition версию т.к. лишняя возня с установкой нам не нужна. Выбираем исходя из ОС которая у вас установлена.
Распаковываем в удобное для нас место и запускаем tftpd64.exe или же tftpd32.exe если мы скачали 32 битную версию.
- 1 – здесь указывается корневой каталог куда/откуда будут качаться наши файлы, пу умолчанию это каталог где лежит наша программа.
- 2 – тут необходимо выбрать IP адрес на который будет отвечать наш TFTP сервер т.е. адрес на который мы будем обращаться внешними клиентами.
- 3 – настройки программы.
В принципе данных действий нам достаточно, чтоб начать работать с данным TFTP сервером. Данные загружаются и скачиваются из корневого каталога, который указан в пункте 1.
Дополнительные настройки
Функционал данной программы не ограничивается только TFTP сервером, но так же имеет дополнительный функционал. Мы рассмотрим лишь малую часть, что часто используется.
DHCP Server – необходим для выдачи динамических IP адресов для наших устройств.
Жмем на кнопку Setting — 3 , оставляем, как показано на картинке
Переходим на вкладку DHCP и вносим минимальные настройки
Настройки самого DHCP сервера
- 1 – начальные IP адрес, с которого будут выдаваться наши адреса
- 2 – количество адресов, которые будут выдаваться
Настройки для клиентов, что будут получать адреса
DHCP сервер работает в границах одного широковещательного домена т.е. если сервер находиться за маршрутизатором, то адреса мы не сможем получать. Возможность получать адреса находясь за маршрутизатором в данной статье не рассматривается.
Обзор TFTP-сервера TFTPD32 (простой протокол передачи файлов)
TFTPD32 — это удобная утилита для сбора и распространения системных файлов в небольшой сети. Инструмент был разработан французом Филиппом Жуном и доступен для бесплатного скачивания на его сайте.
TFTPD32 также доступен в 64-битной версии. Это называется TFTPD64. Инструмент работает в операционной системе Windows от Windows 95 до Windows 10.
Инструмент не просто выступает в роли сервера TFTP, он также работает как клиент TFTP. Другие функции в приложении программа DNS-сервера, утилита DHCP, Управление системным журналом, и клиент SNTP. Утилита имеет интерфейс GUI и код с открытым исходным кодом, так что вы можете прочитать программу, чтобы увидеть, как она работает.
О TFTP
Тривиальный протокол передачи файлов это легкая система для перемещения небольших файлов по сети. Протокол не включает никаких служб шифрования, поэтому он не подходит для передачи файлов через Интернет. Основное использование этой системы было для распространение файлов конфигурации к сетевым устройствам, пока они запускаются. TFTP используется как часть BOOTP и предзагрузочной среды выполнения. Протокол определен в RFC 1350.
Поскольку BOOTP больше не используется широко, полезность TFTP уменьшается. Процесс DHCP становится все более популярным. тем не мение, TFTP все еще полезен для передачи снимков конфигурации в центральное хранилище и для возврата этих данных в случаях, когда необходимо откатить конфигурацию устройства. TFTP работает по UDP, и контакт также инициируется через порт 69.
TFTPD32 для TFTP
Полезность средства TFTPD32 для TFTP заключается в том, что у него есть несколько небольших дополнений, улучшающих стандарт TFTP. Условия передачи могут быть оптимизированы путем настройки опций TFTP (которые являются частью стандарта), таких как tsize, размер блока, и Тайм-аут.
TFTP не включает никаких функций каталога, и вы даже не можете просматривать файлы на удаленном компьютере. Тем не менее, TFTPD32 добавляет эти возможности. Дисплей включает в себя индикатор выполнения, это удобное дополнение, особенно если вы когда-либо используете его для передачи больших файлов.
TFTPD32 для DHCP
Если вы используете DHCP в своей сети, вам не нужно вкладывать деньги и вкладывать средства в причудливый инструмент DHCP-сервера, поскольку он встроен в TFTPD32. Модуль DHCP-сервера может распространять неограниченное количество IP-адресов и это может выделить статические адреса а также предоставление автоматическое распределение IP-адресов система.
При настройке службы DHCP вам просто нужно ввести начальный IP-адрес и размер пула. Вы также можете ввести имя домена по умолчанию, маску и маршрутизатор по умолчанию для процедур DHCP.
TFTPD32 для DNS
Вам не нужно запускать службу DNS на том же компьютере, что и сервер DHCP, но если у вас небольшая сеть, вы, вероятно, это сделаете. Интерфейс для TFTPD32 помещает обе эти службы в одном окне, но на разных вкладках. Переключение с одной вкладки на другую не закрывает службы на скрытых вкладках, все они будут работать независимо от того, смотрите вы их или нет.
Если вы решили разместить службу DNS на другом компьютере, вам просто нужно установить другую копию TFTPD32 на этот компьютер и использовать только вкладку DNS в его интерфейсе..
TFTPD32 для управления системным журналом
Вкладка Syslog в TFTP32 позволяет вам см. сообщения системного журнала как они циркулируют по сети. Вы также можете указать имя файла для хранения системного журнала. Интерфейс не предоставляет возможности анализа системного журнала, но вы можете управлять файлами системного журнала и можете загружать сообщения в средство просмотра интерфейса из файла.
Смотрите также: 15 лучших бесплатных серверов Syslog для Linux и Windows
TFTPD32 использует
Сочетание функций в TFTPD32 экономит много денег потому что это устраняет стоимость покупки системы DHCP, сервера DNS, сервера системного журнала и менеджера конфигурации. В каждом модуле TFTPD32 просто предоставляет базовые сервисы, необходимые для управления каждой из ваших сетевых задач. Например, нет никаких функций сверки DHCP / DNS, и там нет инструмента диспетчера IP-адресов, который бы проверял наличие потерянных адресов..
TFTPD32 является идеальным инструмент администрирования стартовой сети для небольших сетей. По мере роста вашей сети вы обнаружите, что вам нужно больше аналитических возможностей и больше автоматизации задач. Так, в конечном итоге вы перерастете TFTPD32. В небольшой сети предоставление базовых функций и отсутствие функций является преимуществом, потому что, если вы управляете своей сетью в одиночку, у вас, вероятно, все равно не будет времени использовать эти дополнительные функции. В более крупных системах ваши обязанности по управлению конфигурацией и управлению адресами быстро станут неуправляемыми без дополнительной автоматизации процессов и прогнозных предупреждений..
Используете ли вы TFTPD32 для вашей сети? Считаете ли вы, что он предоставляет все функции, которые вам необходимы для управления вашей сетью? Добавляете ли вы дополнительные инструменты, чтобы обеспечить все необходимые возможности для успешного управления сетью? Оставьте сообщение в разделе комментариев ниже и сообщите нам о своем опыте работы с TFTPD32..
Поднятие 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 с таким «уровнем безопасности» можно только на короткое время, для выполнения каких-то сервисных работ, а лучше вообще делать это в изолированной сети.
Tftpd.ru
TFTP – это упрощенная версия протокола FTP (File Transfer Protocol). Она используется в основном для передачи файлов между устройствами в локальных сетях, таких как коммутаторы Cisco или маршрутизаторы. TFTP прост в использовании, однако не обеспечивает никакой безопасности или проверки целостности данных.
Описание программы
Программа Tftpd используется для передачи файлов между компьютерами по протоколу TFTP. TFTP является упрощенной версией протокола FTP и в основном используется в локальных сетях.
Tftpd может быть полезной при настройке сетевых устройств, таких как маршрутизаторы, коммутаторы, точки доступа Wi-Fi и другого оборудования, использующего TFTP для конфигурационных файлов.
Кроме того, Tftpd может использоваться для обновления прошивки на сетевых устройствах или для обмена данными в локальной сети, когда не требуется высокая скорость передачи.
Tftpd32 имеет простой и интуитивно понятный интерфейс. Он состоит из одного окна, в которое пользователь вводит основные данные сервера.
Главное преимущество утилиты – гибкость настроек. Пользователь может на свое усмотрение менять конфигурации сервера. Перед использованием программы необходимо убедиться, что у вас открыт порт 69. Он используется TFTP клиентами по умолчанию.
Настройка
Скачать TFTPD32 и TFTPD64 можно по ссылке внизу этой страницы. Программа имеет небольшой вес и может запускаться в Portable режиме.
При первом запуске программы пользователь попадает на стартовую страницу. В верхней панели расположена директория, в которую будут загружаться файлы. По стандарту там выставлен путь к корневой папке Tftpd.
На следующей строчке пользователь может ввести IP адрес, на который будет отвечать Tftp сервер.
В нижней части интерфейса находится кнопка настроек. Здесь пользователь может изменить параметры работы программы для разных протоколов – TFTP, DHCP, SYSLOG, DNS. Также есть параметр Global, устанавливающий настройки для всех протоколов.
Как установить Tftp сервер
- Для установки Tftp сервера необходимо перейти в настройки утилиты и выставить флажок рядом с TFTP Server. Другие параметры менять не нужно.
- Далее необходимо перейти в окно TFTP и кликнуть по кнопке Browse. Выберите директорию папки для сервера.
- После этого сервер начнет работать. Пользователи смогут подключиться к нему и работать с файлами.
- Чтобы передать файл по серверу необходимо открыть командную строку Windows и ввести «tftp [ip адрес] GET [имя файла]» без кавычек.
- Чтобы получить файл с сервера необходимо ввести в командную строку «tftp [ip адрес] PUT [имя файла]».
- Пользователи могут ограничить доступ к серверу и выставить возможность подключения только для определенных IP адресов.
TFTPD32
TFTPD32 – это 32-битная версия утилиты, предназначенная для систем с соответствующей разрядностью. Это стандартная версия программы, изначально разработанная под Windows XP для замены встроенной службы запуска Tftp сервера.
TFTPD64
TFTPD64 – более поздняя версия программы, предназначенная для Windows с разрядностью 64 бита. Ее функционал ничем не отличается от 32-битной версии.
Следует помнить, что протокол TFTP не имеет никакой защиты. Несмотря на возможность ограничения доступа к серверу, зайти на него с постороннего устройства через замену IP адреса не составляет труда. Поэтому рекомендуется использовать TFTP только для временных задач по типу небольших сервисных работ.