Pull to refresh

DSL роутер D-link D2650u для не-DSL провайдера

Configuring Linux *
imageВ наличии: Роутер D-link DSL2650U, который имеет встроенный DSL модем, 4-портовый коммутатор и один USB вход и не-DSL провайдер ( обычная витая пара и DHCP на том конце провода ). Ревизия роутера: D, Board ID: 96358VW2.
Проблема: Некуда вставлять витую пару провайдера, поскольку нет Ethernet WAN порта, а просто свич не работает с провайдером.
Решение: Перенастроить один из LAN портов как WAN.
Статья будет в формате пошаговой инструкции, как решить эту задачу. Поскольку времени на поиск и вкуривания информации я потратил относительно много, решил написать об этом пост, чтобы систематизировать и помочь людям решить подобную проблему.

Собираем прошивку


В стандартной прошивке ничего подобного об Ethernet WAN порте нет, поэтому интернет был исследован на наличие кастомных прошивок. Из поддерживаемых нашлась OpenWRT ( DD-WRT не поддерживает ), однако официальной поддержки нет. Это значит, что готовых сборок нет и нужно патчить и собирать из исходников самому.
На странице вики есть страница с описанием роутера и патчем для исходников. Вся суть патча состоит в том, чтобы добавить новую платформу для сборки в Makefile, при том, что описание платформы уже состоит в trunk версии.
  • cтягиваем исходники с SVN svn co svn.openwrt.org/openwrt/branches/backfire backfire
  • добавляем две строчки c нашем роутером
    # D-Link DSL-2650U
    $(call Image/Build/CFE,$(1),96358VW2,6358,DSL2650U)

    после
    # D-Link DSL-2740B
    $(call Image/Build/CFE,$(1),96358GW,6358,DSL2740B)

    в файл target/linux/brcm63xx/image/Makefile
  • делаем make menuconfig для настройки сборки ( возможно, необязательный пункт, но я его делал ), и заменяем созданный файл .config на файл с релиза: downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/config ( нужно cкачать файл config и переименовать его в .config )
  • После этого просто make и ждем завершения сборки.
Компилировать оно будет долго, поскольку автоматически собирается toolchain, все зависимости и необходимые утилиты. После сборки появится папка bin/brcm63xx с образами для всех поддерживаемых роутеров. Нам нужен файл openwrt-DSL2650U-squashfs-cfe.bin.

Прошиваем роутер


Первая попытка скормить этот файл для обновления прошивки через веб-интерфейс роутера провалилась — веб-интерфейс возвращал не информативную ошибку о том, что этот образ нельзя прошить.
Еще была попытка прошить через tftp. Принцип прост, состоит в том, что при загрузке, bootloader запускает tftp сервер, и если поймать момент, можно залить прошивку. Сколько раз я не игрался с перезагрузкой роутера, результата не было. Почитать можно здесь.
На этом этапе у меня уже опустились руки и я смирился с покупкой нового роутера, как вдруг нашел на просторах интернета, что есть режим прошивки без проверки правильности прошивки.
Чтобы вызвать этот режим, нужно зажав кнопку ресет, включить/перегрузить роутер и держать кнопку ( ресета ) 10 секунд. После этого, при заходе в веб-интерфейс роутер предложит загрузить прошивку. Решившись рискнуть ( есть возможность сделать из роутера кирпич ), загружаем туда прошивку, ждем две минуты и о чудо, на нашем роутере OpenWRT.



Настройка


У нас есть роутер с OpenWRT, без веб-интерфейса, хотя веб-сервер работает и показывает пустоту.
Для начала нужно зайти на роутер через telnet, и, выполнив команду passwd, назначить пароль рута. После этого, мы можем общаться с роутером по ssh: ssh root@192.168.1.1.
Как оказалось, прошить роутер не было самой большой проблемой, поскольку нужно еще по-умному настроить сеть. Перерыв много документации, понимаем, что нужно делать через VLAN — виртуальные сети. Нужно разбить порты свича на отдельные подсети, и настроить forwarding. Следуя этой странице вики, редактируем файл /etc/config/network.
У нас интерфейс свича совпадает с предполагаемым в руководстве — это eth1, и мы хотим вынести четвертый LAN порт в отдельную подсеть, поэтому мы большую часть конфига можем скопировать из документации. Единственное отличие в том, что у нас нет актуального WAN порта ( он есть, но не выведен железно ), поэтому мы не создаем отдельную extranet, а редактируем wan секцию, изменив ifname eth0 на ifname eth1.1. Плюс этого изменения состоит в том, что в роутере все изначально настроено на раздачу интернета из wan в lan.
Полный конфиг:

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.1
option netmask 255.255.255.0
option nat 1

config interface wan
option ifname eth1.1
option proto dhcp

Перезапускаем службу сети, выполнив команду /etc/init.d/network restart
Опытным путем было выявлено, что port 3 в конфиге соответствует реальному первому порту. Поскольку меня такой вариант удовлетворял, я не стал пробовать еще, но подозреваю, что port 0 будет реальным четвертым портом.
Втыкаем интернет провод в первый провод, и радуемся раздачи интернета. Если нужно подключаться через VPN, прошивка и такое может.

Последние штрихи


Для настройки Wifi нужно править файл /etc/config/wireless. Настройка вайфая описана тут.
Самый распространенный веб-интерфейс это Luci. Для установки, при подключенном интернете нужно выполнить:
opkg update
opkg install luci


В итоге мы имеем полноценный linux на роутере, на котором можно поднять торент-клиенты, всяческие кеширующие службы, прокси и т.п. А поскольку есть разьем USB, можно сделать сетевое хранилище или интернет-качалку.
Минус OpenWRT в том, что мы теряем функцию DSL модема, но поскольку отсутствие DSL и подвигло на такое решение, то это не критично.

Полезные ссылки:
Tags:
Hubs:
Total votes 64: ↑60 and ↓4 +56
Views 69K
Comments Comments 38