D link tftp server обновление прошивка маршрутизатора

Стал у бедного админа виснуть роутер от D-Link, модель DIR-400.
И стал админ искать пути решения проблемы.
Погуглив полчаса наткнулся на прошивку от dd-wrt.com.
Поглядел на её возможности, обрадовался, и стал искать мануалов — как же всё таки эту прошивку залить (ибо стандартный прошивальщик, ребятами из D-Link писаный, не годится).

Нашёл мануал по заливке прошивки через DBG-console. Но вот беда — мануал на виндовых юзеров рассчитан, а винды под рукой нету, только Линукс праведный…
Ну, да ладно. Разобрался админ. Детали — под катом.

DBG-console

Есть у продутов от D-Link такая интересная фича — при включении железки в электросеть загрузчик на 2 секунды (значение по-умолчанию) поднимает сервер telnet на порту 9000.
Если за 2 секунды успеть залогиниться и послать железяке ‘^C’ — процесс загрузки остановится и мы получим доступ в инженерную консоль, в которой можно всякие интересные штуки делать — например, залить неофициальную похаченую linux-based прошивку. Приступим.

Подготовка

Немного теории:

Оговорюсь сразу — я дёргал питание роутера раз 20, с паузами 10-20 секунд, пока смог таки заставить железяку отдать мне инженерную консоль. В принципе это безопасно — достаточно дождаться полной загрузки роутера, и питание можно снова выдёргивать.
Ещё нюанс — линуховая версия telnet напрочь отказывается слать ‘^C’ по нажатию Ctrl-C вв момент подключения, пришлось включать моск — слать не один символ, а два, примерно так: при нажатом Ctrl жмём сначала V, потом C, отпускаем Ctrl.
И ещё — не бойтесь опечататься в инженерной консоли, все команды проходят валидацию, консоль просто не даст вам опечататься.

Приступим к практике:

Во-первых нам понадобится tftp сервер.
Ставим, кто как умеет (я юзал yum):

По-умолчанию tftp дёргается из xinetd, посему нужно немного подредактировать /etc/xinetd.d/tftp: выставить параметр disable = no и по вкусу отредактировать корневую директорию сервера (по-умолчанию — /tftpboot/, я её не менял).

Не забываем рестартануть xinetd.

Далее, идём сюда: dd-wrt.com/dd-wrtv3/dd-wrt/downloads.html
Там внизу — нечто вроде файлового менеджера, идём в директорию /stable/dd-wrt.v24 SP1/Consumer/Dlink/DIR-400 и качаем файлы linux.bin и dir400-firmware.bin в директорию /tftpboot/ (ну или на что вы там её изменили в конфиге).

Выдёргиваем из подопытного роутера все Ethernet-кабеля, отключаем всех WiFi-клиентов, втыкаемся в один из LAN-портов железки.
Назначаем своей машине статический IP 192.168.0.2, роутеру — 192.168.0.1.

Начинаем веселье

Дальнейшие действия требуют сосредоточенности.
Набираем в консоли

telnet 192.168.0.1 9000 (Enter пока не жмём, просто набираем для экономии времени — помните про 2 секунды?)

Читайте также:  Оптико волоконный интернет роутер

Выдёргиваем питание из роутера, ждём пару секунд, втыкаем питание, считаем до трёх, жмём Enter…
Далее идёт мой telnet session transcript, жирным выделено то, что я вводил в консоли, курсивом — мои комментарии.

[root@localhost ~]# telnet 192.168.0.1 9000
Trying 192.168.0.1. (после появления этой надписи я нажал Ctrl и начал попеременно жать V и C, это видно далее)
^C
Connected to 192.168.0.1.
Escape character is ‘^]’.
^C (всё ещё Ctrl-V-C)
RedBoot> RedBoot> ^C
^C (это уже по инерции)
RedBoot>(тут уже чудом начал работать полноценный Ctrl-C, нажал два раза. )
RedBoot>
RedBoot> ip_address -l 192.168.0.1/24 -h 192.168.0.2 (назначаем роутеру локальный IP и говорим, что tftp-сервер живёт на 0.2)
IP: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.2
RedBoot> fis init (инициализируем прошивальщик)
About to initialize [format] FLASH image system — continue (y/n)? y (после нажатия y — ждём, пока появится приглашение консоли)
*** Initialize FLASH Image System
And a descriptor for the configuration data size = 10000
. Erase from 0xbffe0000-0xbfff0000: .
. Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> load -r -b 0x80041000 linux.bin (после этой команды где-то с минуту ждём, пока бинарь зальётся по tftp на железку)
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x803bafff, assumed entry at 0x80041000
RedBoot> fis create linux (снова ждём 🙂 )
. Erase from 0xbfc40000-0xbffba000: .
. Program from 0x80041000-0x803bb000 at 0xbfc40000: .
prog_ok
flash_addr = 0xbfc40000
mem_addr = 0x80041000
entry_addr = 0x80041000
length = 0x37a000
img_size = 0x37a000
. Erase from 0xbffe0000-0xbfff0000: .
. Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> fconfig (прошивка установлена, поздравляю. Теперь проведём базовую конфигурацию.)
Run script at boot: true (Enter)
Boot script:
.. fis load -l vmlinux.bin.l7
.. go
Enter script, terminate with empty line
>> fis load -l linux
>> exec
>> (Enter)
Boot script timeout (1000ms resolution): 2 (тут можно задать значение побольше — тогда не нужны будут танцы с telnet и ^C при последующих издевательтвах 🙂 Просто будет больше времени на то, чтоб прервать процесс загрузки)
Use BOOTP for network configuration: false (Enter)
Gateway IP address: (Enter, пока оставляем пустым, потом в веб-морде его всё равно ещё раз прописывать)
Local IP address: 192.168.0.1 (Enter)
Local IP address mask: 255.255.255.0 (Enter)
Default server IP address: 192.168.0.100 (Enter)
Console baud rate: 9600 (Enter)
GDB connection port: 9000 (Enter)
Force console for special debug messages: false (Enter)
Network debug at boot time: false (Enter)
Update RedBoot non-volatile configuration — continue (y/n)? y
. Erase from 0xbffe0000-0xbfff0000: .
. Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> reset (после этой команды роутер уйдёт в ребут)
Всё, после ребута роутер будет доступен по IP 192.168.1.1 через http и telnet (потом можно будет SSH включить) с полноценным Linux унутре 🙂
Маленький нюанс: сначала нужно зайти на роутер через http и задать имя пользователя и пароль — только потом можно будет попасть на роутер через telnet.

Читайте также:  Домашний вай фай роутер подключить

Источник

Вопрос: Как сохранять и заливать конфигурацию на/с tftp-сервер(а) и обновлять прошивку по SNMP (для серий DES-35XX, DES-38XX). Ответ:

1) Расположение в дереве параметров OID сохранения/заливки конфигурации и обновления прошивки.

Файл MIB: DLINK-AGENT-MIB
OID: 1.3.6.1.4.1.171.12.1.2.1.1

2) Описание и настройка параметров:

Показать индекс файла:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.1


Показать описание файла прошивки:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.2


Показать IP-адрес tftp-сервера, с которого/на который будет заливаться/сохраняться конфигурация:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3


Показать тип передачи файла:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.4


Показать имя файла, который будет залит/сохранён с/на TFTP-сервер:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.5

Показать тип файла (FW, лог-файл или конфиг файл):

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.6

Показать тип операции с файлом (upload/download):

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.7

Показать статус файла прошивки (загрузочный, незагрузочный и т.д.):

snmpwalk v2c c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.8

Показать правильная ли предыдущая конфигурация:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.9

Показать ID файла прошивки при использовании двух прошивок:

snmpwalk -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.10


Показать версию Firmware:

snmpget -v2c -c public 192.168.0.1 1.3.6.1.4.1.171.12.11.1.9.4.1.8.1

Загрузка конфигурационного файла на TFTP-сервер (192.168.0.10):

Шаг 1. Задать IP-адрес TFTP-сервера:

snmpset –v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3. 3 a 192.168.0.10

3 -> Конфигурационный файл (config file)
192.168.0.10 -> IP-адрес TFTP-сервера

Шаг 2. Выбрать тип передачи файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.4. 3 i 2

2 -> Загрузка по сети

Шаг 3. Задать имя конфигурационного файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.5. 3 s DES3526.cfg

DES3526.cfg -> Имя файла

Шаг 4. Выбрать либо загрузку файла на коммутатор, либо на TFTP-сервер (download или upload):

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.7. 3 i 2

Шаг 5. Начать передачу файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.8. 3 i 3

3 -> Начать операцию

Загрузка конфигурационного файла на коммутатор с TFTP-сервера (192.168.0.10):

Шаг 1. Задать IP-адрес TFTP-сервера:

snmpset v2c c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3. 3 a 192.168.0.10

3 -> Конфигурационный файл (config file)
192.168.0.10 -> IP-адрес TFTP-сервера

Шаг 2. Выбрать тип передачи файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.4. 3 i 2

2 -> Загрузка по сети

Шаг 3. Задать имя конфигурационного файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.5. 3 s DES3526.cfg

DES3526.cfg -> Имя файла (файл должен быть создан на TFTP-сервере)

Шаг 4. Выбрать либо загрузку файла на коммутатор, либо на TFTP-сервер (download или upload):

Читайте также:  Настройка интернета роутера zyxel keenetic lite

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.7. 3 i 3

3 -> Download

Шаг 5. Начать передачу файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.8. 3 i 3

3 -> Начать операцию

Обновление Firmware на коммутаторе с TFTP-сервера (192.168.0.10):

Шаг 1. Задать IP-адрес TFTP-сервера:

snmpset v2c c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3. 1 a 192.168.0.10

1 -> Файл Firmware (загрузочный файл)
192.168.0.10 -> IP-адрес TFTP-сервера

Шаг 2. Выбрать тип передачи файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.4. 1 i 2

2 -> Загрузка по сети

Шаг 3. Задать имя файла прошивки:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.5. 1 s DES3526.had

DES3526.had -> Имя файла (файл должен быть создан на TFTP-сервере)

Шаг 4. Выбрать либо загрузку файла на коммутатор, либо на TFTP-сервер (download или upload):

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.7. 1 i 3

3 -> Download

Шаг 5. Начать передачу файла:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.8. 1 i 3

Шаг 6. Выбрать ID прошивки в качестве загрузочной:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.1.1.10. 1 i 1

1 -> ID прошивки

Сохранение конфигурации:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.1.2.6.0 i 3

3 -> Сохранить

Источник

1 способ, через Web-интерфейс.

Для того, чтобы выгрузить конфигурационный файл, нужно зайти в раздел Tools — Upload Configuration. Затем нужно выбрать Upload Configuration To HTTP и ввести имя файла источника, который будет выгружен с коммутора(по умолчанию config.cfg). (Рисунок 1)

Посмотреть имя текущего файла конфигурации можно в разделе Network Application — Flash File System Settings (Рисунок 2)

Затем нажимаем кнопку Upload, и конфигурационный файл выгрузится с коммутатора в папку «Загрузки» на вашем компьютере.

Для того, чтобы загрузить полученный файл на коммутатор, нужно зайти в раздел Tools — Download Configuration. Затем нужно выбрать Download Configuration From HTTP, выбрать нужный файл у себя на компьютере, указать файл назначения в памяти коммутатора, в который будет загружена конфигурация (по умолчанию config.cfg). И затем нужно нажать кнопку Download.

2 способ, через Telnet.

Сначала нужно запустить TFTP Server на своем ПК, для этого можно использовать утилиту TFTPD32. Адрес корневого каталога TFTP сервера можно задать вручную(Рисунок 3)

Затем нужно подключиться к коммутатору по telnet и ввести команду:

Command: upload cfg_toTFTP 10.90.90.179 dest_file conf.cfg

Connecting to server. Done.
Upload configuration. Done.
Success.

Где 10.90.90.179 — адрес вашего ПК,
conf.cfg — название создаваемого файла.

После этого, выгруженный файл конфигурации появится в корневом каталоге TFTP сервера.
Чтобы загрузить полученный файл на коммутатор, нужно выполнить следующую команду:

Command: download cfg_fromTFTP 10.90.90.179 src_file conf.cfg

Connecting to server. Done.
Download configuration. Done.
Success.

При этом конфигурационный файл должен лежать в корневом каталоге TFTP сервера.

Источник

Оцените статью
Adblock
detector