D-Link DSL-2650u на не DSL-евском интернет провайдере

Итак, недавно у меня случилось такое неприятное дело, как скачек напряжения в электро-сети, да и еще несколько раз электричество вовсе пропало, и после этого мой роутер (D-LINK DIR-825), прошитий OpenWRT перестал работать. Горели просто только два светодиода, с логотипом компании (D-Link, ярко-синий цвет) и светодиод питания (оранжевый цвет). Правда иногда моргали и светодиоды-индикаторы сетевых интерфесов, видимо в попытке расчехлиться, но…

В общем, было принято временное решение (но как уже всем давно известно, что нет ничего постоянней чем временное :)) отыскать старый WIFI маршрутизатор с DSL модемом и попытаться его настроить так, чтобы он заработал с не DSL-евским интернет-провайдером. Раньше у меня этот роутер работал с ОГО (Укртелеком) ADSL2 подключенным интернетом, теперь же, телефонной линии у меня нет от Укртелекома, но есть витая пара (с коннектором на конце RJ45), которую любезно предоставляет мой интернет-провайдер. Итого, что у нас есть:

  1. Старый маршрутизатор D-Link DSL-2650U (версия железа D1, что как раз подходит для кастомной прошивки ПО – OpenWRT)
  2. Витая пара от интернет-провайдера (RJ45)
  3. Прошивка OpenWRT

Что нужно сделать:

  1. Залить прошивку на маршрутизатор
  2. Настроить внутренний свитч так, чтобы первый порт LAN был WAN (принимал интернет от провайдера и раздавал его на локальную сеть)
  3. Настроить WAN порт на статический IP, чтобы он не принимал DHCP (хотя и DHCP вариант в этой статье тоже будет)

Приступим.

Скачиваем новую прошивку OpenWRT из транка (SVN репозиторий) – здесь

Десятки раз, я пытался скормить этому девайсу новую прошивку, но все без успеха (в итоге все таки скормил :)). Не могу утверждать почему, но есть подозрение на то, что до этого он уже был перепрошит одной из прошивок OpenWRT, правда более старшей версией (которая, кстати, уже не поддерживается, потому как версия эта была какая-то там ….rc5).

В общем, на всякий случай, скачиваем еще и официальную свежую прошивку от D-Link – здесь .

Как прошиваем:

  1. В выключенном состоянии, зажимаем кнопку ресет (reset) и включаем кнопку питания, держим ресет 10 секунд, отпускаем
  2. Перенастраиваем свой Ethernet интерфейс на компьютере (в простонароде – сетевую карту) на статический адрес – 192.168.1.2, маска подсети 255.255.255.0, шлюз (gateway), в принципе не играет роли, но инструкция гласит, что надо установить в 192.168.1.1, и подключаем кабелем к маршрутзатору (желательно не в 1-й LAN порт, так как на нем в итоге будет настроен WAN, и мы не сможем зайти на него после всех настроек)
  3. Заходим в браузере (желательно, как гласит инструкция, в ИЕ не выше 7) по адресу 192.168.1.1
  4. Видим примитивную форму дла загрузки прошивки, выбираем прошивку OpenWRT, закачиваем
  5. Видим сообщение о том, что весь процес перепрошивки может занять около 2 минут, а после устройство будет само перезагружено. Правда, честно говоря, сложно определить, когда именно оно будет перезагружено :). Я наблюдал за индикатором сетевого интерфейса в своем компе, либо же можно пытаться посылать пинги из консоли:
    ping 192.168.1.1 -t

    но я не уверен, что этот метод поможет, но все же попытаться стоит.

  6. Когда устройство перезагрузилось – заходим по telnet (не буду объяснять что это, если не в курсе – поищите в гугле) опять таки по адресу 192.168.1.1. Тут возможна такая вот проблема, иногда первый раз устройство загружается дольше обычного, поэтому, если сразу после перезагрузки вам не удалось зайти по телнет на адрес 192.168.1.1 – не отчаивайтесь, попробуйте чуть позже (через минуту), но не более 3-4 раз. Если в итоге все равно не получается зайти на указанный адрес, значит устройство нормально не перепрошилось, и есть вероятность, что надо повторить пункты 1-6 еще раз.
  7. Если по каким либо причинам перепрошивка не увенчалась успехом (вы не можете зайти по телнет на адрес 192.168.1.1), есть три вероятные причины этому:
    а) Вы не правильно настроили сетевой интерфейс на вашем компьютере (ip: 192.168.1.2, mask: 255.255.255.0, gateway: 192.168.1.1)
    b) Вы пытаетесь залить не подходящую прошивку, этот вариант самый страшный, так как в итоге можно превратить девайс в кирпич
    c) Ваше устройство сломано (то есть уже кирпич)
    В таком случае, пытаемся прошить родную прошивку, повторяем пункты 1-5, только в качестве файла прошивки выбираем не OpenWRT, а родную D-Link, скачанную по ссылке, указанной выше.
    Когда устройство перезагрузится, пытаемся войти в браузере по адресу 192.168.1.1, если удалось, значит все ОК, устройство еще не кирпич :), повторяем пункты с 1 по 6, еще раз, теперь уже с прошивкой OpenWRT.
  8. Если все же удалось зайти по телнет на адрес 192.168.1.1 (а вы должны увидеть окно приветствия от OpenWRT), меняем пароль для root, вводим команду: passwd
    Вводим пароль дважды, закрываем телнет
  9. Пытаемся зайти на адрес 192.168.1.1 с помощью любого SSH клиента (у меня Putty), в качестве логина (login as) вводим root, в качестве пароля – ваш пароль, видим такое окно приветствия:
    openwrt
  10. Приступаем к настройке

Вся настройка из командной строки заключается в следующем:

  1. Конфигурация сетевых интерфейсов устройства так, чтобы один из портов свитча выступил в роли WAN порта, все остальные – как обычно
  2. Установка и настройка luci – веб-UI для управления устройством

Приступаем к настройке сетевых интерфейсов:

  1. Открываем файл /etc/config/network для редактирования. Для удобства, я использовал клиент SCP (WinSCP, можно скачать в интернете бесплатно, так же как и Putty)
  2. Вставляем в этот файл содержимое:
    # Custom network for DSL-2650U without DLS WAN
    config 'switch' 'eth1'
    option 'enable' '1'
    option 'enable_vlan' '1'
    option 'reset' '1'
    config 'switch_vlan'
    option 'vlan' '0'
    option 'device' 'eth1'
    option 'ports' '0 1 2 5t'
    config 'switch_vlan'
    option 'vlan' '1'
    option 'device' 'eth1'
    option 'ports' '3 5t'
    config 'switch_port'
    option 'port' '3'
    option 'pvid' '1'
    config interface loopback
    option ifname lo
    option proto static
    option ipaddr 127.0.0.1
    option netmask 255.0.0.0
    config interface lan
    option type bridge
    option ifname eth1.0
    option proto static
    option ipaddr 192.168.***.1
    option netmask 255.255.255.0
    option nat 1
    config interface wan
    option ifname eth1.1
    option proto dhcp

    В этом варианте, у нас WAN порт будет слушать DHCP от провайдера и принимать от него IP, GATEWAY, MASK, DNS и т.д.
    Мне же нужно, чтобы WAN порт был уже настроен на статический IP и т.д. Для этого, нужно немного отредактировать config interface wan секцию:

    config interface wan
    option ifname eth1.1
    option proto static
    option ipaddr '95.158.***.***'
    option netmask '255.255.255.240'
    option gateway '95.158.***.***'
    option dns '8.8.8.8 4.4.4.4'
    option macaddr '14:FE:B5:A9:**:**'

    Конечно же, звездочки (***) ВЕЗДЕ вы должны заменить на свои значения.

  3. применяем изменения без перезагрузки: /etc/init.d/network reload или же /etc/init.d/network restart
  4. Дабы проверить, что у нас все заработало правильно, сделаем пинг на гугл из консоли openWRT:
    ping google.com

После того, как мы настроили сетевые интерфейсы, надо установить и настроить (попытаться запустить) люси (luci):

opkg update
opkg install luci
opkg install luci-i18n-russian
/etc/init.d/uhttpd start
/etc/init.d/uhttpd enable

Теперь, зайдя по адресу 192.168.1.1 в вашем браузере, вы должны увидеть НОВЫЙ веб-интерфейс люси (кстати, мне очень понравился, удобный, понятный, и довольно таки приятный, что не мало важно :), я бы сказал, куда лучше штатных на некоторых девайсах)

Для дальнейших настроек будем использовать именно LuCI web-UI, по адресу 192.168.1.1 в адресной строке вашего браузера.

На этом в принципе и все, по крайней мере у меня все заработало. При всем при этом, мне не понадобилось компилить свой дистрибутив OpenWRT, как об этом описано в одной из статей на хабре, все изменения заключаются только в правильной настройке vlan (виртуальная сеть), более подробней об этом – здесь, здесь и здесь

Использованные материалы:
OpenWRT dsl-2650u
OpenWRT HOWTOs
OpenWRT LuCI Essentials
OpenWRT Configuration
OpenWRT Internet Connection
OpenWRT Network configuration
OpenWRT Switch Documentation
OpenWRT Linux Network Interfaces
OpenWRT TRUNK for brcm63xx chipset

Leave a Reply