Выбор пал на роутер Tp-Link TL-WR741ND v.4.25 (цена 1150 рублей), который я выбрал по следующим характеристикам:
1) Низкая цена
2) Достаточное количество памяти для заявленных требований
3) Возможность запиливания USB (для истинных ценителей поковырять железку)
4) Поддержка OpenWrt Barrier breaker
5) Поддержка vlan-ов
6) Поразительная живучесть (роутер невозможно убить неверной прошивкой, функция восстановления прошивки по tftpd работает как часы, и не раз выручала во время неудачных экспериментов). О методах восстановления напишу в конце статьи. Их
Стандартная прошивка для данного роутера от OpenWrt не устраивала. Причиной тому были лишние пакеты, которые занимали место в драгоценной памяти данного малыша.
Было решено выпилить: ppp, поддержку ipv6, opkg (ставить же не будем больше ничего).
Добавить: openvpn-polarssl (меньше занимает места), luci-mwan3 (очень понравилась визуальная настройки и индикация работы каналов)
Итак, начнем:
1) Подготовка устройства
Для начала, обновим наше устройство до последней версии стандартной прошивки tp-link. Смысла описывать подробно данное действо я не вижу, все достаточно понятно и просто.
2) Сбор прошивки
Нам понадобится мощный многопроцессорный компьютер для комфортного создания своей прошивки. Но и Core2Duo сойдет, разве что подольше собираться будет. OS обычная — Linux 3 3.19.0-15-generic #15-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux.
Установка необходимых пакетов:
sudo apt-get install subversion git g++ libncurses5-dev zlib1g-dev gawk
Отвечаем yes и ждем…
Все дальнейшие команды сборки делаются от обычного пользователя, не от рута!
Идем в «магазин» за исходниками. Я выбрал OpenWrt Bariier Breaker за удобство в настройке и отличную стабильность на предыдущем роутере (TP-LINK Archer C7).
svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker wrt
cd ~/wrt
svn update
В домашней папке у нас появится папка wrt, где мы и будем производить сборку.
Скачаем исходники дополнительных пакетов (типа Luci):
./scripts/feeds update -a
./scripts/feeds install -a
Выполним настройку платформы
make menuconfig
Появится псевдографическое меню, где мы выберем Target System, Subtarget и Target Profile:
Вся навигация свободится к выбору нужного пункта (стрелками) и нажатием enter, выбор компонента — также enter, выход из меню — стрелки вправо-влево — Exit. Не забудьте сохранить конфиг.
Применяем стандартные параметры для профиля:
make defconfig
Модифицируем набор пакетов:
make menuconfig
Удалил:
opkg из (base system)
убрал опцию сборки с поддержкой ipv6 (Global build settings)
ppp (Network).
Добавил:
Luci
luci-app-mwan3 (Luci-Applications)
openvpn-polarssl (Network-vpn).
Не забудьте сохранить конфигурацию!
Начинаем сборку:
make -j5 V=s
Параметр -j5 указывает на количество ядер +1 поток для быстрой сборки, а V=s — на вывод подробностей (если будут ошибки).
Процесс займет долгое время, 10-15 минут на i7 процессоре, после чего в директории /home/user/wrt/bin/ar71xx появятся наши прошивки для различных версий роутера. Если не появились — смотрим в логи сборки — наверняка, вы превысили размер прошивки и увидите строку: «firmware is too big». Придется делать make clean, make distclean и начинать все заново. (с шага ./scripts/feeds update -a )
Нас интересует:
openwrt-ar71xx-generic-tl-wr741nd-v4-squashfs-factory.bin — «заводская» прошивка.
Перекидываем её через WinSCP на компьютер с подключенным по ethernet-у роутером.
Заходим по адресу: 192.168.0.1 и прошиваем новоиспеченной прошивкой, ждем перезагрузки, затем заходим по адресу: 192.168.1.1
root без пароля (его назначим при первом входе — вверху будет висеть желтый баннер с предупреждением и ссылкой на смену пароля).
Ну наконец-то, самое сложное позади, теперь у нас современная прошивка и НАШ набор программ.
3) Настройка vlan:
Происходит в меню роутера: network — switch
Тут не обошлось без непоняток — нумерация портов в роутере и в конфигурации vlan не совпадает. На скриншоте я постарался объяснить как они изменены. Порт WAN в роутере не участвует в vlan-функционале.
Tagged — тэгированный трафик, сюда направляются пакеты от каждого vlan (101, 102, 103), которые затем распределяются по интерфейсам wan (основной провайдер), wan2 (резервный провайдер), eth0.103 (vlan для локальной сети).
Untagged — нетэгированный режим порта (точка входа ethernet-кабеля от нужного провайдера). Не перепутайте с каналами. Я подписал сзади роутера нужные названия, чтобы в будущем небыло путаницы (провайдер№1 101, провайдер№2 102, локалка 103).
Проще говоря, мы впускаем через 3 порта 3 разных сети, которые затем внутри устройства распределяются по полочкам.
После изменений нажмите Save, но не Apply! Мы ведь не хотим остаться без сети во время настройки?
Теперь, нужно создать нужные интерфейсы в Network — Interfaces:
Удалим wan6 интерфейс (мы не используем ipv6 в данном случае).
Изменим wan интерфейс для первого провайдера, укажем нужные данные для подключения (например, провайдер дает инет по dhcp), и укажем какой vlan использовать для этого интерфейса. Вот тут-то и идет сопоставление vlan: провод: интерфейс.
Для второго провайдера wan2 укажем eth0.102.
Для Lan укажем объединить интерфейсы в bridge eth0 и eth0.103:
В настройках интерфейсов wan и wan2 укажите метрику устройств (обязательно для работы mwan3):
Теперь смело можно жать на Save&Apply и проверить введенные настройки.
4) mwan3 или крутая выручалочка админа
Трудно недооценить данный пакет, ведь пользователи смогут получать сумму скорости двух интернет-каналов, интернет в офисе будет всегда, ведь маловероятно, что упадут оба канала.
Для админа пройдет головная боль по временному отключению какого-либо из каналов, и не нужно городить костыльные скрипты по переключению. Я забыл о проблемах в офисе с интернетом и не переживаю когда падает один из них (мне приходят sms по данным событиям).
Я точно знаю, что OpenVPN через 30 секунд переключится на резервный канал (слава параметру multihome), связь с главным офисом в г.Москва восстановится и некоторые пользователи и начальники не заметят данный инцидент.
Приступим:
Зайдем в network — load balancing — configuration:
И включим wan2 в работу:
Далее, настроим правила работы каналов:
1) Balance — Каналы складываются, скорость увеличивается, есть отказоустойчивость (переключение). Рекомендую.
2) wan_only — только провайдер№1
3) wan2_only — только провайдер№2
configuration — rules
Остальные rules можно удалить или оставить другое правило.
Подробно я останавливаться на mwan3 не буду — скажу только, что есть возможность пускать трафик до определенного ресурса через один из каналов, если есть привязка на данном ресурсе по IP.
5) Офисная дружба или openvpn
Отлично, интернет настроили, теперь нужно соединить 2 офиса вместе.
openvpn у нас уже установлен и мы начнем править конфиг в роутере. Для этого зайдем на роутер по ssh.
vi /etc/config/openvpn
В самом верху изменяем:
package openvpn
#################################################
# Sample to include a custom config file. #
#################################################
config openvpn custom_config
# Set to 1 to enable this instance:
option enabled 1
# Include OpenVPN configuration
option config /etc/openvpn/openvpn.conf
Cохраняем, выходим. Тут мы включили кастомный конфиг в /etc/openvpn/openvpn.conf — лично для меня это как-то привычнее.
Далее, сам конфиг:
mkdir /etc/openvpn mkdir /etc/openvpn/keys vi /etc/openvpn/openvpn.conf
На роутере у нас серверная сторона openvpn. Приводим конфиг к виду:
port 1194 #порт сервера
proto udp
dev tun-office2 #обзовем интерфейс
multihome #слушаем подключения на wan и wan2
ifconfig 10.0.0.2 10.0.0.3 #IP-шники окончания туннелей
secret /etc/openvpn/keys/office2.key #ключик
keepalive 5 30 #переподключение через 30 сек.
user nobody
group nogroup
persist-tun
persist-key
status /tmp/office2.status
log /tmp/office2.log #логи
verb 3
Сохраняем, затем:
/etc/init.d/openvpn restart
Теперь клиент:
Примерный конфиг выглядит так:
remote wan.office2.ru #стучимся сначала сюда
remote wan2.office2.ru #потом сюда (по очереди)
port 1194
proto udp
dev tun-office1
ifconfig 10.0.0.3 10.0.0.2 # наоборот как на сервере
route 192.168.30.0 255.255.255.0 #пропишем роут для включения офисной подсети роутера в главный офис
secret /etc/openvpn/keys/office2.key #клон ключа с сервера
keepalive 5 30 #передергиваем туннель при плохом поведении одного из каналов
user nobody
group nogroup
persist-tun
persist-key
status /var/log/openvpn/office.status
log /var/log/openvpn/office.log
verb 3
Сохраняем конфиг, применяем:
/etc/init.d/openvpn restart
Смотрим ifconfig, логи и радуемся надежному каналу.
Заключение:
Конечно же, вы не один раз убьете свой роутер неудачной прошивкой, позарившись на удаление нужных компонентов base system.
Но ничего страшного!
Самый простой способ реанимировать роутер — это fail safe в openwrt:
1) Назначьте сетевому адаптеру на компьютере IP адрес 192.168.1.2
2) Маска 255.255.255.0
3) Кабель ethernet — в порт LAN1
4) Выключите роутер
5) Включите и дождитесь пока загорится значок шестеренки
6) Зажмите на 1-2 секунды кнопку роутера QSS — шестеренка заморгает очень быстро
7) Запустите телнет-клиент и подсоединитесь по адресу 192.168.1.1
8) Залейте в tmp роутера дефолтную прошифку для вашей модели, например, через мини-веб-сервер tinyweb
9) Выполните:
mtd -r write /tmp/имяпрошивки.bin firmware
Роутер скушает прошивку и перезагрузится.
Шеф, всё пропало!
Да, именно так я подумал, когда убил роутер еще тяжелее. Шестеренка не горела, а роутер циклически ребутался без остановки.
Воспользуемся замечательной функцией в прошивке tp-link-а — загрузка прошивки через tftp:
1) Назначьте сетевому адаптеру на компьютере IP адрес 192.168.0.66
2) Маска 255.255.255.0
3) Кабель ethernet — в порт LAN1
4) Запустите tftp клиент с дефолтной прошивкой под названием «wr741ndv4_tp_recovery.bin» (нужно переименовать файл прошивки)
4) Выключите роутер
5) Возьмите остро-круглый предмет (ручка)
6) Возьмите роутер в руки, поверните его к лицу портами, ручку держите в свободной руке
7) Включите роутер и тут же зажмите QSS пальцем одной руки+reset ручкой в другой руке. Потренируйтесь и это получится.
8) Удерживайте зажатыми эти 2 кнопки 4-8 секунд, пока в tftp клиенте не пойдет загрузка прошивки в роутер. А она пойдет, не беспокойтесь.
Как только прошивка загрузилась (2-3 сек), отпустите кнопки. Выдохните, роутер спасен.
Использованы статьи:
http://ift.tt/1McQpjc
http://ift.tt/1OTfnlj
http://ift.tt/1OTfnll
http://ift.tt/1OTfmhs
http://ift.tt/1mR9lH9
http://ift.tt/1OTfnln
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий