Представьте себе: у вас в руках старенький ADSL-модем, который вроде бы уже отработал своё, но вдруг вы решаете – а почему бы не сделать из него Ethernet-роутер? Казалось бы, слишком амбициозно для железки, заточенной под ADSL, но на деле — вполне реально! В этой статье мы подробно разберём, как преобразовать модем, какие подводные камни вас ждут, и как решить типичные проблемы. Спойлер: понадобится немного волшебства с прошивками, пара команд iptables и программа suart, которая станет вашим лучшим другом.


Можно ли из ADSL-модема сделать Ethernet-роутер?

Короткий ответ: да, если очень сильно захотеть и если аппаратная начинка позволяет.
Длинный ответ – сложнее. В общем, ADSL-модемы изначально не предназначены для работы в Ethernet-сетях, так как они оптимизированы для DSL-соединения через телефонную линию. Но есть умельцы, которые успешно превращают их в Ethernet-шилды — устройства, которые могут «переводить» данные из последовательного порта в сетевой трафик.

Из реальных примеров: модемы TP-Link TD-W8151N, TD-W8951ND и TD-W8901G пытались превратить в Ethernet-роутеры. Однако тут важен чип свича — если он позволяет переназначать порты, шанс на успех есть. Если нет — можно спасти ситуацию покупкой более дешёвых роутеров для Ethernet.


Какие прошивки помогут в этом деле?

Если вы мечтаете о волшебстве, то в качестве заклинаний подойдут прошивки типа OpenWRT или DD-WRT. К сожалению, не для всех моделей доступны готовые решения, особенно для старых ADSL-модемов. Для них часто приходится собирать прошивку вручную из исходников, если они доступны (помните о GPL-законе — производители должны предоставлять исходники). Если исходников нет — есть риск, что проект окажется мёртвым с точки зрения перепрошивки.

Например, прошивка для D-Link DSL-2500U позволяет запустить на модеме программу suart, которая слушает TCP-порт и передаёт данные в последовательный порт.


Что такое программа suart и зачем она нужна?

Это программа-прокси, позволяющая туннелировать последовательный порт модема через TCP/IP сеть. Она слушает определённый порт (например, 3000) и «перебрасывает» байты между последовательным портом и сетью.

Проще говоря, suart превращает ваш модем в Ethernet-шилд, который можно использовать для управления внешними устройствами типа Arduino через Ethernet. Если в вас проснулся инженер-изобретатель — suart станет вашим лучшим напарником.


Как модифицировать прошивку и файловую систему модема?

Чтобы внедрить suart, нужно:

  • Распаковать файловую систему (rootfs) из прошивки модема.
  • Скопировать программу suart и вспомогательную утилиту sleep в каталог /usr/bin/.
  • Очистить место, например, удалить ненужные gif-изображения в веб-интерфейсе (это почти как «сесть на диету» для прошивки).
  • Собрать прошивку обратно и загрузить её через веб-интерфейс модема.

Если не хотите разбираться с каждым байтом, можно ограничиться отключением DHCP-сервера и работой с модемом как с «тупым хабом» — но это уже совсем другая история.


Зачем заморачиваться с iptables и открытием портов?

Вот тут начинается веселье. По умолчанию на модеме стоит firewall, который может блокировать нужные TCP-порты (например, 3000), на которых работает suart. Это как поставить невидимую стену между вашим компьютером и модемом.

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

Команда Описание
/bin/iptables -D INPUT 11 Удаляет 11-е правило (DROP all)
/bin/iptables -A OUTPUT -p tcp --dport 3000 -j ACCEPT Разрешает исходящий TCP-трафик на порт 3000
/bin/iptables -A INPUT -p tcp --sport 3000 -j ACCEPT Разрешает входящий TCP-трафик с порта 3000

Без этого, хоть и порт будет казаться открытым (проверено через nmap), подключения не будет.


Как сделать так, чтобы настройки iptables применялись автоматически?

Настройка iptables — вещь временная, и при перезагрузке она пропадает, если не прописать их в автозагрузку. Здесь пригодятся скрипты в /etc/init.d/ или переименование системных файлов и замена их на свои с задержками запуска.

Один из рабочих методов — создать скрипт, который:

  • Удалит DROP правило
  • Добавит нужные правила ACCEPT
  • Запустит suart

И прописать вызов этого скрипта с задержкой после загрузки основных системных компонентов. Впрочем, с этим предстоит повозиться и следить за логом загрузки через последовательный порт, чтобы не пропустить момент старта suart.


Практические советы и подводные камни

  • Производительность. Старые ADSL-модемы с процессором на 40 Мбит/с могут просто не справиться с нагрузкой Ethernet-роутера. Возможно, вы получите тормоза и задержки.
  • Аппаратные ограничения. В некоторых моделях LAN-порты жёстко «привязаны» к функциям, и переназначить их на WAN или наоборот можно только с поддержкой прошивки и соответствующего аппаратного свича.
  • Если не хотите заморачиваться — проще купить недорогой Ethernet-роутер с поддержкой OpenWRT или DD-WRT. Это сэкономит вам массу нервов.
  • Авторизация клиентов. В сетях с несколькими абонентами часто используется VLAN для разделения клиентов и авторизация происходит в рамках VLAN. Отключение DHCP-сервера на ADSL-модеме и использование его как "прозрачного" устройства также возможно, но требует внимательного управления.

Таблица сравнения подходов

Подход Плюсы Минусы
Перепрошивка ADSL-модема Использует старое оборудование Сложность, нестабильность, ограничение по скорости
Использование suart на модеме Возможность Ethernet-шилда Нужно настраивать iptables, сложность запуска
Покупка дешёвого Ethernet-роутера Надёжность, простота Дополнительные расходы
Использование VLAN и DHCP-сервера Безопасность и изоляция клиентов Требует настройки и опыта

FAQ

Можно ли сделать из любого ADSL-модема Ethernet-роутер?
Не всегда. Всё зависит от аппаратных возможностей модема и наличия исходников прошивки.

Что делать, если нет исходников?
Попробуйте поискать альтернативные прошивки или рассмотрите покупку специализированного устройства.

Что такое suart и зачем он нужен?
Это программа для туннелирования последовательного порта в сеть через TCP.

Почему не удаётся подключиться к suart, если порт открыт?
Вероятнее всего, модем блокирует порт через iptables.

Как исправить проблему с iptables?
Удалите правила DROP и добавьте разрешающие правила для нужных портов. Можно автоматизировать через скрипты.


Чек-лист для превращения ADSL-модема в Ethernet-устройство

  • [ ] Узнать модель и проверить аппаратные возможности модема (наличие Ethernet портов, переключаемые LAN/WAN порты)
  • [ ] Поискать прошивки OpenWRT, DD-WRT или исходники производителя
  • [ ] Скомпилировать и подготовить программу suart (или аналог)
  • [ ] Распаковать файловую систему прошивки, добавить suart и очистить место
  • [ ] Настроить iptables для открытия нужного TCP-порта
  • [ ] Прописать скрипты автозагрузки
  • [ ] Перепаковать и прошить модем
  • [ ] Проверить подключение (telnet или nmap)
  • [ ] Тестировать и устранять проблемы с производительностью

Советы в стиле «магии и технической алхимии»

Если ваша попытка превратить ADSL-модем в Ethernet-роутер напоминает борьбу с драконом — помните, что иногда проще обзавестись новым мечом, то есть роутером. Но если вы готовы играть роль мастера волшебства — погружайтесь в прошивки, разгадывайте iptables, управляйте портами и открывайте возможности своего железного коня.

И да, Ethernet-шилд из модема — это остальное — вопрос настроек».


Пусть ваши порты будут открыты, а пакеты летят быстро!