Восстановление прошивки на коммутаторах d link
Управляющие железки у меня уже есть, и не выбрасывать же DES-3200 Так пусть послужит, как устройство обеспечивающее питание для устройств которые могут работать через PoE.
Внимательный осмотр показал, что данные коммутаторы оснащены консольным портом, на помощь пришла заметка опубликованная у меня на блоге касательно утилиты minicom, но меня почему-то ждал облом — ни в какую соединение не происходило. А потому в этой я покажу другой способ, как подключиться к консольному порту и исполнить цель этой заметки, так сказать на будущее.
Итак моя основная система вокруг которой будут крутится все дальнейшие действия — Ubuntu 12.04.5 Desktop amd64, на компьютере установлен слот для подключения консольного кабеля, консольный кабель от Cisco устройств (его фото ниже, светло-голубой провод с разъемами RS-232 и RJ-45)
Далее устанавливаю в систему всем известный клиент putty (за основу беру заметку). Дело в том, что в этом клиенте уже есть возможность подключения к консольному порту.
Подключаемая схема следующая:
- Мой Компьютер (+плата на выход COM портов), утилита putty → консольный кабель от CISCO → оборудование: D-Link DES-3280-28/ME
Ставлю утилиту putty в систему:
$ sudo apt-get install putty -y
Проверяю, как система видит консольное подключение:
$ sudo apt-get install setserial -y
$ sudo setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
Теперь запускаю утилиту putty и настраиваю подключение к оборудованию:
Gnome Classic — Приложения — Интернет — PuTTY SSH Client или же Alt + F2 и набираю putty
перехожу в категорию (Category) — Serial и привожу поля к следующему виду: (так хочу обратить внимание, что параметры подключения берутся из документации к данному оборудованию D-Link DES-3200-28/ME)
Serial line to connect to: /dev/ttyS0
Speed (baud): 115200
Data bits: 8
Stop bits: 1
Parity: None
Flow control: XON/XOFF
после переходу в категорию Session и:
Connection type: отмечаю Serial, в полях
Speed: должно стать — 115200
после на будущее использование сохраняю настройки подключения:
Saved Session: ввожу название настроек, как des3200_28ME для удобства вспоминания и нажимаю на кнопку Save. Теперь когда настройки подключения заданы можно посредством клиента putty произвести подключение к консоли оборудования D-Link — нажимаю кнопку Open
и получаю ошибку:
«Unable to open connection to :»
«Unable to open serial port»
Внимательно проанализировав пришел к выводу, что клиент putty нужно запускать с правами суперпользователя:
Запускаю консоль командной строки: Ctrl + Alt + T и набираю:
загружаю сохраненную ранее конфигурацию на подключение:
категория Session — выбираю des3200_28me и нажимаю Load, а после Open — открывается окно, почему то с черным фоном и ничего более:
Не знаю что и делать, но вот когда все выше перечисленное проделал но на системе Windows соединение к консоли устройства (Dlink DWS-3160-24PC) прошло удачно. Меня приветствовала надпись:
Ладно, раз моя система (Ubuntu 12.04.5 Desktop amd64) Не хочет работать с консольным кабелем, то задействую на этот случай специализированный конвертер который по этому случаю я специально приобрел, а именно: RS232 to USB (Trendnet TU-S9)
Смотрю теперь, как система опознала подключение к устройству (D-Link DES-3200-28/ME) через него:
$ dmesg | grep usb
[ 9989.108291] usb 5-4: new full-speed USB device number 3 using ohci-pci
[ 9989.275257] usb 5-4: New USB device found, idVendor=067b, idProduct=2303
[ 9989.275265] usb 5-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 9989.275271] usb 5-4: Product: USB-Serial Controller D
[ 9989.275275] usb 5-4: Manufacturer: Prolific Technology Inc.
[ 9989.360748] usbserial: USB Serial support registered for generic
[ 9989.377068] usbserial: USB Serial support registered for pl2303
[ 9989.377145] pl2303 5-4:1.0: pl2303 converter detected
[ 9989.398381] usb 5-4: pl2303 converter now attached to ttyUSB0
А теперь на какое устройство система определило подключение:
$ sudo setserial -g /dev/ttyUSB[0123]
/dev/ttyUSB0, UART: 16654, Port: 0x0000, IRQ: 0
Отлично, снова запускаю консоль командной строки и утилиту putty с правами суперпользователя, загружаю профиль соединения, но теперь переправляю порт подключения:
категория Session — выбираю des3200_28me, после перехожу в категорию Serial и привожу к виду:
Serial line to connect to: /dev/ttyUSB0
а после снова перехожу в категорию: Session и сохраняю внесенные изменения нажатием на кнопку Save. Пробую подключиться нажатием кнопки Open (предварительно вытащив кабель питания от устройства (D-Link DES-3200-28/ME) и вставив его снова дабы увидеть весь процесс того, как загружается устройство) и
через некоторое время на черном фоне меня ожидает приятный сюрприз — я подключился к консоли, информация об устройстве (D-Link DES-3200-28/ME) выводится мне на консоль открытого сеанса putty:
По документации вход на устройство (D-Link DES-3200-28/ME), как через Web-интерфейс, так и через консоль это пустые значения на полях аутентификации:
UserName: по дефолту значения нет
Password: по дефолту значения нет
Если все сделано правильно то коммутатор (D-Link DES-3200-28/ME) прекратит загрузку и перебросит в режим восстановления, приглашение вида есть тому подтверждение:
Password Recovery Mode
В данном режиме доступны всего лишь три команд:
> help
reboot reset show
делаю полный ресет всех настроек приводящих к обнулению настроек на дефолтные значения:
> reset config
Command: reset config
Are you sure want to reset current configuration?(y/n) Y
А после отправляю устройство в перезагрузку:
> reboot
Save current settings before system restart?(y/n) Y
Через некоторое время устройство (D-Link DES-3200-28/ME) загрузилось и на запрос в консоли:
и в поля UserName & Password просто нажав клавишу Enter попадаю в устройство с административными правами:
Username: нажимаю клавишу Enter
Password: нажимаю клавишу Enter
И после загрузки получаем дефолтную конфигурацию, где уже посредством кабеля вида кроссовер:
Конец №1:
- бело-зеленый/зеленый/бело-оранжевый/синий/бело-синий/оранжевый/бело-коричневый/коричневый
Конец №2:
- бело-оранжевый/оранжевый/бело-зеленый/синий/бело-синий/зеленый/бело-коричневый/коричневый
подключаемся с ноутбука или компьютера (выставляем принудительно статический адрес: 10.90.90.91) и подключаемся через Web -интерфейс к Dlink ’у (его IP адрес: 10.90.90.90), а в качестве аутентификационных данных пустые значения и что самое необходимое мне устройство работает в режиме простого свитча, что мне и требуется.
Перевожу устройство использования IP адреса с дефолтного значения статики на динамическое подключение к DHCP сервера в локальной сети:
А все также находясь в консоли через клиент putty вывожу командой, а какой же все таки IP адрес получило устройство от DHCP сервера когда подключил к нему кабель из розетки:
Show ipif
Пример от другого устройства: DWS-3160-24PC
IPv4 Address – равен 10.7.8.89/24
Теперь когда устройство готово к нему можно успешно подключать точки доступа D-Link DWL-6600AP для питания через PoE. Итого задача выполнена, заметка расписана в шагах и больше здесь нечего добавить, пора прощаться, до встречи, с уважением автор блога – Олло Александр.
Обновление программного обеспечения (его иногда называют "прошивкой" коммутатора) может быть необходимо, когда доступна новая функциональность или требуется коррекция ошибок. Сохранять конфигурацию коммутатора необходимо при изменении его настроек, а также для упрощения восстановления функционирования коммутатора в результате сбоя его работы или поломки. Основным протоколом, применяемым для этих целей, служит протокол TFTP (Trivial File Transfer Protocol , простейший протокол передачи данных ). Для передачи/загрузки программного обеспечения/конфигурации необходимо наличие в сети TFTP -сервера. Коммутаторы D-Link поддерживают возможность хранения на коммутаторе двух версий программного обеспечения и конфигурации, причем любая из них может быть настроена в качестве основной, т.е. используемой при загрузке коммутатора. Это позволяет обеспечить отказоустойчивость оборудования при переходе на новое программное обеспечение или изменении конфигурации. Для анализа работы коммутатора имеется возможность выгрузки через протокол TFTP Log-файла .
Цель: Изучить процесс обновления программного обеспечения и сохранения/восстановления конфигурации.
Оборудование:
Рабочая станция (с TFTP -сервером) 1 шт.
Консольный кабель 1 шт.
Кабель Ethernet 1 шт.
Перед выполнением задания необходимо сбросить настройки коммутатора к заводским настройкам по умолчанию командой
Настройка DES-3200-28
Подготовка к режиму обновления и сохранения программного обеспечения коммутатора
Настройте TFTP-сервер (на примере Tftpd32 by Ph.Jounin)
- В настройках необходимо установить директорию приема файлов.
- Отключить все другие сервисы, кроме TFTP server.
Подготовьте файл программного обеспечения
- Найдите необходимый файл "прошивки" на сайте ftp://ftp.dlink.ru.
- Скачайте файл и перенесите его в указанную директорию TFTP -сервера.
- Прочитайте файл сопровождения к "прошивке".
Загрузка файла программного обеспечения в память коммутатора
Настройте IP-адрес интерфейса управления коммутатора
Настройте TFTP-сервер
Задать IP-адрес рабочей станции с установленным TFTP-сервером: 10.1.1.250/8
Существуют множество альтернативных прошивок для маршрутизаторов Dlink. После перехода на них могут возникнуть проблемы, а именно: дивайс не эффективно начнет работать или просто умрет. Если все таки прошили его не удачно. Это инструкция для вас и только для тех dir-620, которые не до конца сдохли. То есть он загружается, сетевая плата ПК не может с ним связаться по Ethernet интерфейсу.
Ну что ж приступим!
По мима софта и полуживого дивайса, нам понадобиться USB-UART (кстати очень нужная вещь в хозяйстве). Заходим на easyelectronics и делаем. Можно было конечно и купить, но у моего друга лежала без дела.
Незабываем что нужно вывести COM на самом роуторе.
(сразу предупреждаю нет возможности сфотографировать свой)
- адрес 10.10.10.3.
- маска 255.255.255.0
- шлюз 10.10.10.123
И так рассмотрим два варианта.
Вариант 1
Этот вариант очень распространённ им многие пользуются.
Сожалению я как не старался так не смог с помощью его восстановить dir-620.
для этого качаем putty, tftpd32. Что касается tftpd32, то я качал tftpd64 (битность системы не забываем).
Шаг 1
Кидаем прошивку в папку tftpd64.
Запускаем tftpd64, вкладка Tftp Server, нажимаем Browes выбираем папку где лежит программа.
Шаг 2
запускаем putty, заходим в Serial. Тут COM3 (у вас может быть другой, в диспетчере устройств посмотрите), Speed 57600, Flow control: None
Переходим в Session, жмем open.
Шаг 3
Подключаем USB-UART к COM на самом роуторе. Хочу предупредить после включения у вас есть 5 секунд что бы выбрать нужный пункт, вам нужно нажать 2.
и включаем роутер.
U-Boot 1.1.3 (Feb 9 2010 — 10:44:20)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb0000
flash_protect ON: from 0xBF000000 to 0xBF01D3F3
flash_protect ON: from 0xBF030000 to 0xBF030FFF
============================================
Ralink UBoot Version: 3.3
— ASIC 3052_MP2 (Port5<->None)
DRAM component: 128 Mbits SDR
DRAM bus: 32 bit
Total memory: 32 MBytes
Flash component: NOR Flash
Date:Feb 9 2010 Time:10:44:20
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384
SDRAM bus set to 32 bit
SDRAM size =32 Mbytes
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
9: Load Boot Loader code then write to Flash via TFTP.
после выбора 2: Load system code then write to Flash via TFTP появится:
2: System Load Linux Kernel then write to Flash via TFTP.
Warning. Erase Linux in Flash then burn new one. Are you sure?(Y/N)
Please Input new ones /or Ctrl-C to discard
Input device IP (10.10.10.123) ==:10.10.10.123
Input server IP (10.10.10.3) ==:10.10.10.3
Input Linux Kernel filename () ==:
после чего должна качаться прошивка, дивайс перезагрузится уже в рабочем состоянии.
но что делать если putty просто напросто отказывается заходить на ком, и tftpd32 не работает.
на понадобится Terminal v1.9b by Bray и WinAgents TFTP Server Manager(с офф сайта 30 дней триалка нам хватит этого срока)
Шаг 1
кидаем прошивку C:\ProgramData\WinAgents\TFTP Server 4\TFTPRoot. Видем появился файл на сервере.
Шаг 2
настраиваем Terminal v1.9b by Bray (port:COM3, Baud rate: 57600) жмем конект. Включаем роутер и видем Terminal v1.9b by Bray. НЕЗАБЫВАЕМ ЧТО ЕСТЬ 5 СЕКУНД ЧТОБЫ НАЖАТЬ ЦИФРУ ДВА(2)
U-Boot 1.1.3 (Feb 9 2010 — 10:44:20)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb0000
flash_protect ON: from 0xBF000000 to 0xBF01D3F3
flash_protect ON: from 0xBF030000 to 0xBF030FFF
============================================
Ralink UBoot Version: 3.3
— ASIC 3052_MP2 (Port5<->None)
DRAM component: 128 Mbits SDR
DRAM bus: 32 bit
Total memory: 32 MBytes
Flash component: NOR Flash
Date:Feb 9 2010 Time:10:44:20
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384
SDRAM bus set to 32 bit
SDRAM size =32 Mbytes
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
9: Load Boot Loader code then write to Flash via TFTP.
после выбора 2: Load system code then write to Flash via TFTP появиться:
2: System Load Linux Kernel then write to Flash via TFTP.
Warning. Erase Linux in Flash then burn new one. Are you sure?(Y/N)
Please Input new ones /or Ctrl-C to discard
Input device IP (10.10.10.123) ==:10.10.10.123
Input server IP (10.10.10.3) ==:10.10.10.3
Input Linux Kernel filename () ==:
пишем habr.bin — имя файла и жмем ENTER
netboot_common, argc= 3
NetLoop,call eth_init!
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start… done
Header Payload scatter function is Disable.
ETH_STATE_ACTIVE.
Using Eth0 (10/100-M) device
TFTP from server 10.10.10.3; our IP address is 10.10.10.123
Filename 'habr.bin'.
erase sector = 12
sect = 12,s_last = 102,erase poll = 1008817
erase sector = 13
sect = 13,s_last = 102,erase poll = 984201
erase sector = 14
*sect = 14,s_last = 102,erase poll = 1007174
erase sector = 15
sect = 15,s_last = 102,erase poll = 998828
erase sector = 16
бла бла бла
он ребут
бла бла бла
start urlfilter
init wans
Intialize wan…
[17179582.684000] eth2.5: Setting MAC address to 00 0c 43 30 52 89.
Set mac 00:0C:43:30:52:89 on iface eth2.5 — OK
Set mtu 1500 on iface eth2.5 — OK
start_wan_link_on_l2 — Up iface eth2.5
start_ip: dhcp ipv4
start_wan_link_on_l2 — Iface eth2.5 is up
start_wan_link_on_l2 — Up iface br0
start_wan_link_on_l2 — iface br0 is not wan, pass it
start ddns
info, udhcp client (v0.9.8) started (iface: eth2.5, connect: 1)
udhcp client (v0.9.8) started (iface: eth2.5, connect: 1)
debug, interface eth2.5 index 9
debug, interface eth2.5 hwaddr 00:0c:43:30:52:89
debug, interface eth2.5 mtu is 1500
debug, execle'ing /tmp/udhcpc with name deconfig
start services
start_telnet…
start_printserver…
init_sysusers…
debug, Opening raw socket on ifindex 9
Out init_device
init_device: pid_status(WEXITSTATUS) = 0
Done.
Welcome to
_______ ___ __ ____ _ _ ___
| ___ \ | | |__|| \ | || | / /
| | | || ___ | |__ __ | \| || |/ /
| |___| || |___| | || || |\ || \
|_______/ |______||__||_| \____||_|\___\
= Building Networks for People =
Продолжим наше знакомство с свитчами D-Link серии xStack DES 3200. В предыдущей статье шла речь о подключении и базовой настройке свитча DES 3200-26 A1. Было создано нового юзера, настроено ssh и ssl доступ для удаленного администрирования и немного описано синтаксис команд. Теперь хочу показать, как можно перепрошивать данную линейку свитчей.
1.1 Резервное копирование конфигураций свитча
Для начала нам нужно сделать резервные копии всех конфигураций (и если нужно – логов). Для этого нужен tftp сервер на который мы будем сохранять данные. Не долго думая, скачал SolarWinds TFTP server под Windows – простенький и удобненький. Теперь запускаем TFTP сервер. Также, если включен firewall – отключите или добавьте исключение для передачи по TFTP (69 порт на IN/OUT).
По умолчанию, SolarWinds создает TFTP папку по пути C:\TFTP-Root и шарит ее для всех юзеров на read/write.
Теперь можно делать бекап. Логинимся на наш свитч по ssh и запускаем бекап конфигурационных файлов.
Здесь 192.168.1.249 – IP адрес TFTP сервера, а config.txt – название конфигурационного файла.
Теперь делаем бекап общей информации нужной для поддержки устройства со стороны админов. Т.е. Basic System information, system log, Running configuration, Layer 1/2/3 information, Application, OS status.
Теперь можно сделать бекап логов.
Если вы уже настраивали SIM (single IP management), то можно также и его забекапить.
Теперь посмотрим логи TFTP.
Как видно, было успешно передано три файла и у нас в папке C:\TFTP-Root теперь есть бекапы.
1.2 Восстановление конфигураций свитча
Для восстановления конфигураций нужно использовать Serial подключение или Веб-морду. Не пробуйте восстанавливать конфигурации через SSH – сессия слетит и можете нанести вред свитчу. Как подключиться через консоль читайте здесь. После подключения, запускаем команду.
После этого, вы будете наблюдать тучу команд на выполнении. После того, как все команды с конфиг-файла исполнятся – проверяем или все подхватилось и если да, то смело сохраняем все в nv-ram.
Все конфигурации мы сохранили на отдельный сервер, теперь можно браться за обновление firmware. Для этого нужно перейти по ссылке и скачать последнюю версию прошивки под ваш тип устройства.
Качаем ее и кидаем в TFTP директорию к нашим конфигам. Теперь подключаемся все через тот же консольный Serial порт и качаем ее на свитч.
После этой команды у нас установиться новая firmware с image_id = 2. В image_id = 1 находиться старая прошивка. Теперь нужно сказать коммутатору, чтобы при следующей загрузке он брал новую прошивку.
Теперь посмотрим какие у нас есть прошивки в системе.
Как видим, свежая версия установлена с флагом boot up. Осталось перезагрузить коммутатор.
Если все прошло успешно, после ребута нужно залогинится и проверить нашу прошивку.
Читайте также: