- Сетевая загрузка PXE на основе TFTPD32
- Поднятие tftpd32 сервера на Windows
- Установка tftpd32 сервера на Windows
- Как проверить работу сервера tftpd32?
- Комментарии
- BootDev
- Страницы
- 2017-09-27
- Загрузка по сети: Установка и настройка DHCP, TFTP-сервера
- Загрузка по сети изнутри
- Tftp32(64)
- Установка Tftp32(64)
- Настройка Tftp32(64)
- Продолжение следует.
Сетевая загрузка PXE на основе TFTPD32
Описание настройки собственного PXE сервера на основе TFTPD32 для загрузки WinPE или BartPE.
PXE и процесс загрузки по сети
Стандарт PXE (Preboot Execution Environment) позволяет превратить сетевую карту в одно из устройств, с которого может загрузиться компьютер. Разработку данного стандарта начала компания Intel, еще 1999 году, а потом к разработке присоединились такие гиганты компьютерной индустрии, как 3Com, HP, Dell, Compaq. Стандарт прижился. И сейчас, пожалуй, не возможно, найти современной сетевой платы без поддержки PXE.
Конечно для того, чтобы компьютер смог загрузиться по сети одного PXE не достаточно. Нужно еще наличие в сети серверов TFTP и DHCP.
Процесс загрузки по сети можно упрощенно описать примерно так.
При включении компьютера, начинает работать PXE загрузчик, который находится в памяти (boot ROM) сетевого адаптера. Сетевая карта отправляет запрос к серверу DHCP для получения IP адреса. Получив запрос, DHCP сообщает сетевой плате IP адрес, маску сети, адрес TFTP сервера и имя загрузочного файла. После обработке полученных данных PXE обращается к серверу TFTP и загружает файл. Получив файл, PXE прекращает свою работу и передает управление загруженной программе.
Подготовка файлов
Создадим каталог для сетевой установки C:\PXE. Внутри создадим каталог, например WinPE.
Сетевая загрузка WinPE делится на два этапа. На первом этапе происходит загрузка файлов по протоколу TFTP. А на втором этапе файлы загружаются по протоколу CIFS (старое название SMB). Протокол CIFS более известен, как общий доступ к файлам и принтерам сети.
Поэтому для второго этапа загрузки нужно:
- Сделать каталог C:\PXE доступным по сети (расшарить) для группы «Everyone (Все)» с правами только чтения.
- Также необходимо убедиться, что учетная запись «Guest (Гость)» активирована.
Для этого нажимаем, правую клавишу мыши на «My Computer (Мой компьютер)» и выбираем «Manage (Управление)». Раскрываем «System Tools (Служебные программы)», «Local Users and Groups (Локальные пользователи и группы)». Выбираем «Users (Пользователи)». В правой части экрана нажимаем правую клавишу мыши на «Guest (Гость)» и выбираем «Properties (Свойства)». В появившемся окне убираем флажок с «Account is disabled (Отключить учетную запись)» и нажимаем кнопку OK
- Если директория C:\PXE\WinPE находится на разделе с файловой системой NTFS, то необходимо в свойствах этого каталога в «Security (Безопасность)» также добавить группу «Everyone (Все)». Этой группе необходимо разрешить чтение.
- Также следует убедиться, что не запрещен доступ пользователя «Guest (Гость)» по сети в групповой политике.
Для этого нажимаем «Start (Пуск)», выбираем «Control Panel (Панель управление)», «Administrative Tools (Администрирование)». В появившемся окне выбираем «Local Security Policy (Локальная политика безопасности)». После загрузки оснастки «Local Security Settings (Локальные параметры безопасности)», разворачиваем «Local Policies (Локальные политики)» и выбираем «User Rights Assignments (Назначение прав пользователя)». В правой части нажимаем дважды левую клавишу мыши на «Deny access to this computer from the network (Отказ в доступе к компьютеру по сети)». В появившемся списке отмечаем «Guest (Гость)» и нажимаем кнопку «Remove (Удалить)». Для подтверждения изменений нажимаем кнопку удалить.
Подготовка сборки WinPE для загрузки по сети
Копируем содержимое сборки(каталоги I386 и Programs) в каталог C:\PXE\WinPE
Копируем из каталога C:\PXE\WinPE\I386 файл ntdetect.com в каталог C:\PXE
Разархивируем файлы (из дистрибутива Windows XP/Windows 2003) setupldr.ex_ и startrom.n1_ в каталог C:\PXE. Сделать это можно с помощью архиватора 7-zip или команд:
expand D:\WINXP\I386\setupldr.ex_ С:\PXE\WinPE\ntldr
expand D:\WINXP\I386\startrom.n1_ С:\PXE\WinPE\startrom.n12
Следует переименовать startrom.n12 в startrom.0
При работе с локализированной сборкой рекомендуется копировать файл bootfont.bin из каталога C:\PXE\WinPE в C:\PXE.
Распаковываем каталоги tftpd32, infparser и файл binlsrv.exe в C:\PXE
Настройка TFTP сервера (TFTPD32)
Сначала для удобства следует отключить не нужные сервисы, оставив только «TFTP Server» и «DHCP Server». Затем следует указать каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр «Base Directory». В нашем случае это C:\PXE. Также следует включить «Option negotiation», «Allow ‘\’ As virtual root» и «Translate Unix file names». Остальные опции выключены.
Настройке DHCP сервера (TFTPD32)
Для загрузки по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла.
Предположим на компьютере, который выступает в роли PXE сервера, присвоен IP адрес 192.168.0.1 с маской сети 255.255.255.0. Параметр «IP Pool starting address» указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Установим значение в 192.168.0.10. Параметр «Size of pool» указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Установим значение в 10. Параметр «Boot File» указывает, какой файл необходимо загрузить. В нашем случае это startrom.0. Если на компьютере несколько сетевых подключений, тогда рекомендуется включить опцию «Bind DHCP to this address» и указать наш IP 192.168.0.1.
Настройка программы RIS-LINUX от Sherpya
Во время загрузки WinPE должна получить информацию, какой драйвер для сетевой платы она должна использовать. Эту информация предоставляет служба BINL. В качестве службы BINL будет использоватся программа ris-linux. Эта программа написана на языке Python, но мы будем использовать портированную под Windows версию.
Для работы BINL требуется создать базу данных сетевых драйверов следующей командой:
C:\PXE\infparser\infparser.exe C:\PXE\WinPE\I386\inf
Подготовка файла winnt.sif
Для загрузки WinPE также потребуется файл C:\PXE\winnt.sif такого содержимого:
[SetupData]
OsLoadOptions = «/noguiboot /fastdetect /minint»
SetupSourceDevice = «\Device\LanmanRedirector\192.168.0.1\PXE\WinPE»
[UserData]
ComputerName = *
Источник
Поднятие 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 ваще не хотел коннектить.
Включаем SSH на маршрутизаторе Cisco
Protocol major versions differ: 2 vs. 1
Как в Windows 10 MTU поменять?
Telnet и Windows 7
Сброс конфигурации на заводские настройки Cisco 2960
Драйвер для Cisco USB Console для 64 битной операционной системы
Как разбить жесткий диск на Win 7?
Проблема обновления CrunchBangLinux
Если Вы используете материал моего блога, то будьте добры поставьте ссылку.
Источник
BootDev
Создание загрузочных дисков и прочие полезные мелочи
Страницы
2017-09-27
Загрузка по сети: Установка и настройка DHCP, TFTP-сервера
Загрузка по сети изнутри
Сама сетевая загрузка выглядит следующим образом. В BIOS материнской платы активируется функция OnBoard LAN Boot ROM (данная функция как раз и включает исполнение кода PXE прошивки) и в качестве первого загрузочного устройства выбирается сетевая карта.
Во время загрузки, BIOS передает управление загрузочной микропрограмме сетевой карты. Цель данной программы, получить сетевые настройки (IP адрес, маску подсети, шлюз), адрес сервера с которого будет производится дальнейшая загрузка, и имя файла который следует загрузить с сервера и выполнить. Запрос, ожидание и принятие всех вышеописанных настроек осуществляется протоколом BOOTP.
Итак, микропрограмма сетевой карты запустилась. Что происходит дальше? А дальше, она посылает широковещательный запрос, с целью найти DHCP сервер, который предоставит все вышеописанные настройки. Это означает, что в сети должен присутствовать DHCP сервер. При наличии DHCP сервера, и получении от него ответа, микропрограмма сетевой карты примет переданные ей настройки. А именно установит сетевые параметры (IP адрес, маску подсети, шлюз), после чего попытается подключится к серверу загрузки по протоколу TFTP и загрузить с него указанный исполняемый файл. То есть, кроме DHCP сервера в сети еще должен присутствовать TFTP сервер.
При наличии TFTP сервера, и присутствии на нем указанного файла, микропрограмма сетевой карты загрузит и попытается его выполнить. Если данный файл действительно исполняемый, то дальнейшая загрузка будет продолжаться согласно инструкциям прописанным в данном файле. Обычно данным файлом является загрузчик (bootmgr, grub4dos, syslinux) которому будет передано дальнейшее управление.
Tftp32(64)
Ею мы и воспользуемся для дальнейших действий.
Установка Tftp32(64)
Скачать дистрибутив Tftp32(64) можно отсюда. На странице загрузки доступны несколько редакций программы Standart, Portable и Service Edition.
Первые две ничем не отличаются, разве что наличием установщика, и запускаются вручную. Третья же редакция, устанавливается в виде службы Windows. А это означает что, она может работать до входа пользователя в систему, сразу после загрузки Windows. Её мы и установим.
Так как у меня 64-битная версия ОС Windows, устанавливать я буду Tftp64. Актуальная версия на момент написания этих строк 4.60. Скачиваем установщик и запускаем.
Подтверждаем внесение изменений.
Соглашаемся с условиями лицензии нажатием кнопки I Agree.
На этапе выбора компонент для установки, ставим галочку напротив пункта Start service Tftpd32_svc и нажимаем на кнопку Next.
На данном этапе можно указать расположение для устанавливаемых файлов нажатием на кнопку Browse и выбора нового месторасположения. После жмем на кнопку Install, тем самым запуская процесс установки.
По окончании, установщик оповестит об успешности произведенной операции. Нажимаем OK.
В последнем окне, можно наблюдать отчет о проделанной работе установщиком. Если интересно, изучаем его, а затем закрываем установщик кнопкой Close. Установка на этом завершена.
Настройка Tftp32(64)
После установки Tftp64 на рабочем столе появится соответствующий значок.
Запускаем его двойным щелчком мыши. Откроется главное окно мониторинга запущенных служб программы. Представлены они в виде вкладок с информационными полями.
Перейдем к настройке нажатием на кнопку Settings (в нижней части окна по центру). Откроется окно настроек. Переходим в нем на вкладку GLOBAL.
В секции Start Services оставляем галочки на пунктах TFTP Server и DHCP Server. Так как нам нужны только эти службы.
Теперь настроим каждую службу по отдельности. Начнем с TFTP. Для этого перейдем на одноименную вкладку в окне настроек программы. По умолчанию настройки следующие.
В настройках TFTP сервера, в секции Base Directory, нам необходимо указать папку, которая будет являться корневой директорией для данного сервера. В данной директории будут располагаться все загрузочные файлы, поэтому позаботьтесь чтобы она располагалась на диске с достаточным свободным местом. В моем случае это будет директория D:\TFTP.
Вторым делом, нужно указать сетевой адрес к которому будет привязан TFTP сервер. Ставим галку на пункт Bind TFTP to this address, и выбираем из списка интерфейс, который смотрит в необходимую нам сеть. В моем случае это интерфейс с адресом 192.168.0.2.
И третье, включаем опцию Allow «\» As virtual root. Данный параметр делает каталог, выбранный в разделе Base Directory, корневым для TFTP сервера.
Все вышеописанное будет выглядеть так.
И последнее, настройка DHCP сервера. Переходим на вкладку DCHP. По умолчанию данный раздел выглядит следующим образом.
Небольшое отступление. Если в вашей сети уже есть DHCP сервер, то можно отказаться от встроенного в Tftpd32(64), при условии что в текущем можно прописать опции 66 — адрес TFTP сервера, и 67 — путь до загрузочного файла.
В моем случае, в сети DHCP сервер присутствует. Но настроить указанные выше опции в нем невозможно, так как запущен он на простеньком роутере D-Link DIR-615.
Выходов из данной ситуации два, либо полностью отказаться от DHCP сервера на роутере, но при этом постоянно нужно будет держать включенным компьютер с запущенной программой Tftpd32(64) с активным DHCP. Чтобы остальные клиенты сети, в частности мобильные устройства (планшеты, телефоны) могли работать. Либо использовать сразу оба DHCP сервера, при этом каждому выделить свой диапазон адресов.
Мне больше подходит второй вариант. Разделение сети следующее, диапазон адресов 192.168.0.2-199 отведен под раздачу для DHCP на роутере. А диапазон 192.168.0.200-250 отведен для Tftp32(64) DHCP.
Теперь вернемся к настройкам программы. В секции DHCP Pool Definition, в поле IP pool start address, вписываем начальный IP адрес диапазона адресов, в моем случае 192.168.0.200. В поле Size of pool прописываем размер диапазона адресов, в моем случае 50. Остальные параметры данной секции оставляем без измененеий.
В секции DHCP Options, в поле Def. router (Opt 3) прописываем IP адрес основного шлюза сети, в моем случае это адрес 192.168.0.1. В поле Mask (Opt 1) прописываем маску текущей сети, в моем случае маска следующая 255.255.255.0. В поле DNS servers (Opt 6) прописываем DNS сервер, в данном поле я указал сервер 8.8.8.8.
В секции DHCP Settings ставим галочку у пункта Double answer if relay detected, и галочку Bind DHCP to this address выбрав необходимый сетевой интерфейс к которому будет привязан DHCP сервер, в моем случае 192.168.0.2.
Итак, приведу итоговый скрин с проделанными изменениями.
На этом необходимые настройки программы выполнены. Нажимаем на кнопку OK, в нижней части окна, для сохранения внесенных изменений. Программа попросит перезапустить себя для применения настроек.
Нажимаем OK, после чего закрываем программу и снова ее открываем.
После рестарта, в окне программы видны внесенные нами изменения, а именно, прописана директория TFTP и выбран интерфейс сервера. Так же, пропадут вкладки неиспользуемых служб.
Продолжение следует.
В следующей статье будет рассмотрена тема установки загрузчиков на TFTP сервер, и их конфигурирование. А пока, на сегодня все.
Источник