Tftpd64 как пользоваться для прошивки ip телефона
Подскажите или ткните, где почитать - как можно передать в LIP с DHCP-сервера дополнительные настройки : адрес сервера, порт, логин, пароль и т.п. ?
Хотелось бы услышать про все что есть по этому вопросу, имеется ввиду DHCP.
гуру и создатель форума
Подскажите или ткните, где почитать - как можно передать в LIP с DHCP-сервера дополнительные настройки : адрес сервера, порт, логин, пароль и т.п. ?Хрен, положенный на мнение окружающих, обеспечивает спокойную и счастливую жизнь. (Ф.Г.Раневская)
Сама сетевая загрузка выглядит следующим образом. В BIOS материнской платы активируется функция OnBoard LAN Boot ROM (данная функция как раз и включает исполнение кода PXE прошивки) и в качестве первого загрузочного устройства выбирается сетевая карта.
Во время загрузки, BIOS передает управление загрузочной микропрограмме сетевой карты. Цель данной программы, получить сетевые настройки (IP адрес, маску подсети, шлюз), адрес сервера с которого будет производится дальнейшая загрузка, и имя файла который следует загрузить с сервера и выполнить. Запрос, ожидание и принятие всех вышеописанных настроек осуществляется протоколом BOOTP.
Итак, микропрограмма сетевой карты запустилась. Что происходит дальше? А дальше, она посылает широковещательный запрос, с целью найти DHCP сервер, который предоставит все вышеописанные настройки. Это означает, что в сети должен присутствовать DHCP сервер. При наличии DHCP сервера, и получении от него ответа, микропрограмма сетевой карты примет переданные ей настройки. А именно установит сетевые параметры (IP адрес, маску подсети, шлюз), после чего попытается подключится к серверу загрузки по протоколу TFTP и загрузить с него указанный исполняемый файл. То есть, кроме DHCP сервера в сети еще должен присутствовать TFTP сервер.
При наличии TFTP сервера, и присутствии на нем указанного файла, микропрограмма сетевой карты загрузит и попытается его выполнить. Если данный файл действительно исполняемый, то дальнейшая загрузка будет продолжаться согласно инструкциям прописанным в данном файле. Обычно данным файлом является загрузчик (bootmgr, grub4dos, syslinux) которому будет передано дальнейшее управление.
Tftp32(64)
Для операционной системы Windows, а организовывать сетевую загрузку мы будем именно на этой платформе, существует программа, именуемая Tftpd32 или Tftpd64, в зависимости от используемой разрядности ОС. Она сочетает в себе возможность запуска следующих сервисов: TFTP, SNTP, DHCP, DNS, Syslog. И все это при размере программы в
Ею мы и воспользуемся для дальнейших действий.
Установка Tftp32(64)
Первые две ничем не отличаются, разве что наличием установщика, и запускаются вручную. Третья же редакция, устанавливается в виде службы 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 сервер, и их конфигурирование. А пока, на сегодня все.
На работе имеются несколько не задействованных в работе телефонов Cisco 7962g. Данные телефоны работаю по двум протоколам SIP и SCCP. Сейчас мы рассмотрим вариант настройки по SCCP протоколу, это будет подготовительная работа перед подключение его к Asterisk 11 (который мы разворачивали по данной статье).
Вот так выглядит наш телефон Cisco 7962g
Перед тем как начать производить какие либо действия, нужно все подготовить. Первым делом нужно на нашем DHCP сервере задать опцию TFTP сервера.
[tip]Пояснение: Данный телефон подгружает прошивку с TFTP сервера и пока он ее не подгрузит никакие действия с телефоном произвести не удастся и на телефоне будет вот такая постоянная картина в поисках прошивки.
Как прописать DHCP опцию можно посмотреть в этой статье.
[tip]Информация: телефоны cisco 7962g и 7942g практически идентичны, поэтому в файлах прошивки можно наблюдать term42 и term62. В зависимости какой телефон настраиваете он тот term и подхватит.[/tip]
[note]Т.к. мне данные телефоны достались от прошлых системных администраторов, я буду делать полный сброс на телефоне, дабы быть уверенным что все сделано правильно и с нуля так сказать.[/note]
[warning]ВАЖНО: Перед тем как выполнять полный сброс, у вас должен быть поднят TFTP сервер с прошивкой для телефона Cisco 7962G. В противном случае, после выполнения команды полного сброса телефон не сможет подгрузить прошивку. Как поднять и настроить TFTP сервер, можно посмотреть тут [/warning]
Выполняем полный сброс на телефоне:
[tip]ВАЖНО ! Не отключайте кабель питания от телефона во время сброса, даже если вам кажется что телефон не подает никаких признаков жизни. Во время сброса так может показаться что телефон превратился в кирпич, но это не так, ЖДИТЕ ! Пока он не включится.[/tip]
После того как телефон сбросится, он начнет выкачивать с TFTP сервера имеющуюся там прошивку. Как прошивка установится, можно приступать к подключении телефона к Asterisk.
Проводятся технические работы по обновлению компонентов блога. Возможно некорректное отображение некоторых элементов. Приносим свои извинения за временные неудобства. Мы стараемся сделать блог лучше =)
четверг, апреля 04, 2013
Практика работы с TFTP
Всем доброго дня, сегодня мы с вами попробуем попрактиковаться в использование протокола TFTP . Для данной практики мы будем использовать 3 виртуальные машины, виртуально находящиеся в одной подсети. В моем случае это будут две машины, работающие под управлением Windows XP , и одна виртуальная машина с установленным на нее D ebian 6.0.7. На одну из виртуальных машин с Windows XP (виртуальная машина 1) мы установим популярный в определенных кругах Tftpd32, включающий в свой состав TFTP сервер и TFTP клиент. На второй виртуальной машине с XP мы попрактикуемся в использование штатного клиента TFTP встроенного в Windows . Ну а на машине с D ebian (виртуальная машина 3) мы познакомимся с азами TFTP в Linux . И так если вам все это интересно, то приступаем.
На первую виртуальную машину мы установим Tftpd32. Для этого скачайте его дистрибутив по ссылке, и произведите его установку. Думаю при этом у вас не должно возникнуть каких либо проблем. Далее в корне диска C создаем папку и помещаем в нее несколько файлов. В моем случае папка называется Public и в ней находятся файлы 1. bmp и 2. bmp . После этого запускаем Tftpd32 и нажав на кнопку Browse выбираем папку, файлы из которой мы будем раздавать при помощи TFTP , в моем случае это папка C :\ Public . В поле Server Interface выбираем сетевой интерфейс, на котором будет функционировать TFTP сервер, если на вашей виртуальной машине он всего один, то ничего не меняем. Про себя отмечаем что IP адрес первой виртуальной машины 192.168.1.41.
tftpd 32 сконфигурирован на раздачу файлов из папки Public по протоколу TFTP |
После того как все перечисленные выше пакеты будут установлены приступим к их конфигурированию. По умолчанию TFTP сервер сконфигурирован на использование директории /srv/tftp. Возможно это и удобно, то так как мы учимся работать с TFTP мы попробуем это изменить и сделаем так чтобы TFTP сервер для своей работы использовал директорию / TFTP _ server . Для начала создадим данную директорию выполнив команды:
Далее отредактируем файл / etc / inetd . conf . Для этого выполним команду (вместо nano можно использовать любой другой текстовый редактор):
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
Заменяем аргумент /srv/tftp на / TFTP _ server . В итоге у вас должно получится:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /TFTP_server
После чего сохраняем файл inetd.conf. Чтобы только что внесенные настройки вступили в силу необходимо перезапустить службу openbsd - inetd , для этого выполняем команду:
Теперь можно считать что данная виртуальная машина настроена для работы. И далее мы перейдем к практике.
Практика 1. Копируем файлы с TFTP сервера с помощью встроенного TFTP клиента Windows
Для начала запустим консоль на виртуальной машине 2. И попробуем скачать файл 1. bmp с TFTP сервера виртуальной машины 1 (192.168.1.41). Для этого в консоли выполним команду:
После этого на время копирования произойдет пауза, по окончание которой вы увидите результат выполнения операции.
Стоит отметить что копирование файла осуществляется в ту директорию, в которой при выполнении команды вы находились в консоле. Так в приведенном выше примере файлы были скопированы в папку пользователя с именем usero . Для того чтобы осуществить копирование файла в любую директорию можно воспользоваться следующим способом:
В данном случае вы меняете текущую директорию в консоли на C :\, а уже после этого осуществляете в нее копирование файлов с помощью TFTP.
Теперь если мы перейдем на виртуальную машину 1. И посмотрим на вкладку Log Viewer сервера tftpd 32, то мы сможем просмотреть статистику запросов поступающих от клиентов к данному TFTP серверу, в данном случае статистика содержит только два запроса на чтение файлов:
Статистика запросов поступающих на TFTP сервер виртуальной машины 1 |
Копирование файлов с TFTP сервера виртуальной машины 3 ( Debian ) осуществляется аналогичным образом, только потребуется выполнить команды:
Практика 2. Записываем файлы на TFTP сервер с помощью встроенного TFTP клиента Windows
Для того чтобы скопировать файлы находящиеся в папке C :\ Client (виртуальная машина 2) на TFTP сервера виртуальной машины 1 необходимо в консоли выполнить следующие команды:
Записанные файлы на виртуальной машине 1 появятся в директории C :\ Public .
Если мы попробуем выполнить копирование файлов аналогичным способом на виртуальную машину 3 с Linux, то получим ошибку Access Violation :
Ошибка Access Violation при попытки записи на tftpd |
Дело в том, что tftpd установленный на виртуальную машину 3, позволяет осуществлять запись только в уже существующие файлы. Поэтому на необходимо выполнить на виртуальной машине 3 следующие команды:
Первой командой мы переходи в директорию /TFTP_server. Второй командой мы создаем в ней пустой файл с именем 1.txt. Третьей командой мы даем полные права на доступ к директории /TFTP и всем имеющимся в ней файлам.
После этого можно выполнять на виртуальной машине 2 команду:
Практика 3. Копируем файлы с TFTP сервера с помощью Tftpd32
Давайте попробуем скачать файлы хранящиеся на TFTP сервере виртуальной машины 3. Для этого на виртуальной машине 1 перейдем к окну приложения tftpd 32. Откроем вкладку TFTP Client и укажем в ней адрес TFTP сервера с которого мы хотим скачать файл, имя файла который мы хотим скачать, а так же имя файла под которым мы хотим сохранить скачанный файл на нашем компьютере.
После того как все вышеперечисленные параметры заданы, нажимаем на кнопку GET . После чего будет выполнена загрузка файла.
Практика 4. Запись файлов на TFTP сервер с помощью Tftpd32
Теперь попробуем записать файлы на TFTP сервер виртуальной машины 3 ( Debian ) используя TFTP клиент встроенный в Tftpd 32. Как мы уже выяснили ранее, для того чтобы осуществлять запись файлов на tftpd сервер виртуальной машины 3, необходимо создать пустые файлы с таким же именем на данном сервере. Поэтому сначала выполняем следующие команды на виртуальной машине 3:
После этого возвращаемся к виртуальной машине 1. Опять же открываем вкладку TFTP Client и заполняем ее следующим образом:
После чего нажимаем на кнопку PUT . После чего будет произведена запись файлов на TFTP сервер виртуальной машины 3.
Практика 5 . Копируем файлы с TFTP сервера с помощью TFTP клиента в Linux
Теперь настало время поработать с Linux . Перейдем на виртуальную машину 3 и попробуем скачать с нее файлы хранящиеся на TFTP сервере виртуальной машины 1. Для этого в консоли введем:
Команда tftp позволяет перейти к управлению клиентом tftp. С помощью команды get мы отправляем к TFTP серверу запрос на чтение файла. В качестве параметров указываются адрес tftp сервера:имя запрашиваемого файла.
После чего файл 1. bmp будет скопирован с TFTP сервера виртуальной машины 1 и помещен в директорию / TFTP _ server виртуальной машины 3.
Практика 6. Записываем файлы на TFTP сервер с помощью TFTP клиента в Linux
В заключение попробуем записать файлы на TFTP сервер виртуальной машины 1 используя клиент виртуальной машины 3 с Debian . Для этого выполним на ней следующие команды:
Пока это все примеры использования TFTP. Надеюсь они пригодятся вам в вашей профессиональной практике.
Читайте также: