February 21st, 2008

nepal

Linksys WRT-54GL как домашний роутер

Сегодня ночью не спалось (привет, Лос-Анджелес!), поэтому я решил разобраться с роутером Linksys WRT-54GL, который по случаю недавно закупил.

Разобраться я с ним решил в том смысле, чтобы переехать на него в качестве домашнего роутера. До сего дня у меня роутером работал старый десктоп от Compaq, имеющий 4-port Ethernet карточку и Wi-Fi от Atheros. Там стояла Gentoo, и всё работало себе и работало. Девайс выжил несколько переездов с квартиры на квартиру, несколько смен провайдеров и т.п. Соответственно, всё меня в нём устраивало, пока там не накрылся винт. Кстати, 10 лет проработал ровно.

Gentoo снова ставить долго, особенно на таком старинном железе, поэтому я решил туда что-то специализированное воткнуть, желательно мини-дистр, заточенный под роутер. Опробовал разнообразных с десяток, более всего мне понравился pfSense (он FreeBSD-based). Увы, ни один из них не подошёл, так как наш мега-провайдер МФТИ-телеком требует просто-таки чудовищный сетевой сетап: Ethernet, DHCP, десяток статических маршрутов (правда, они их выдают по DHCP, но половина dhcp-клиентов их не понимают), потом поверх этого PPTP в интересной конфигурации. Соответственно, и pptp, и LAN надо потом NATить.

Разочаровавшись в специализированных дистрибутивах, я поставил на роутер CentOS 5 (надёжность, знакомость) -- тоже долго мучился [1], [2], [3]), всё заработало, но, в общем, тоже счастья не настало. Конфигурация сети там какая-то убогая, нельзя сказать, что оно "заработало из коробки".

А теперь вот решил не выпендриваться и поставить LinkSys. Что бы вы думали? Он тоже не умеет PPTP "поверх". Точнее, умеет, но не "поверх". Ну и я туда влил DD-WRT. Он умеет. Но тоже как-то не совсем так. Чтобы всё получилось, пришлось редактировать файл /tmp/pptp_client/options.vpn -- убрать отттуда с десяток опций. Пока ещё не знаю, какая опция "виновата". Проблема в том, что там дебага никакого ни pptp, ни pppd не выводят, видимо, откромсали там всё это. Вторая проблема в том, что /tmp в ramfs, а остальная файловая система read-only, параметры все хранятся в nvram, оттуда их при старте черпают и нужные файлики создают. Таким образом, если в веб-морде нету таких настроек, то никак их не сделать persistent. Разве что образ dd-wrt пересобрать. Update: как я и предполагал, там есть кастомные команды, которыми можно всё поредактировать.

Буду думать, что делать дальше. Может, багу к ним зафайлю.
nepal

dd-wrt second glance

Какие есть ещё вещи, которые мне не нравятся в DD-WRT?

1. Дурацкий интерфейс добавления маршрутов: вместо того, чтобы в одно поле вписать 10.0.0.0/8 via 172.16.0.1, а рядом в выпадающем списке выбрать девайс, приходится писать каждый байт айпи-адреса в отдельном поле ввода, потом каждый байт маски, потом каждый байт адреса роутера. И ещё зачем-то давать каждому маршруту имя.

2. Отсутствие утилиты ip. Я уже прям с ней сроднился.

3. Отсутствие "пакетов", то есть неких дополнительных опциональных софтин, как в OpenWRT. Правда, как я понял, dd-wrt делается по принципу "всё включено".

4. Иногда после применения некоторых опций эта штука зачем-то перегружает dropbear (то бишь sshd). Неудобно.

Надо признать, что по моим меркам список весьма короткий. Или там действительно всё так хорошо, или я ещё не освоился.