Яндекс.Метрика
    Поиск по тегу

    MultiWAN


    Найдено: 1 запись

    Песочница

    MultiWAN на DIR-320

    Многие мои знакомые, работающие в сети, выражают недовольство своим провайдером. Как показывает практика, от провайдера это мало зависит. Сбои бывают у всех и случаются они в самый неподходящий момент. Лично меня всегда удивляло, почему не подключить сразу несколько провайдеров? При современных-то ценах на интернет. Когда же решил сам подключить резервный канал, то столкнулся с проблемой. Как раздавать дома интернет при минимальных финансовых вложениях?

    Давно хотел себе DIR-320, ибо он с новой прошивкой может авторизовываться в сети моего первого провайдера по протоколу 802.1X. Кроме того, на него можно залить прошивки dd-wrt или «прошивку от Олега», которые по сути основаны на Linux. Возможно с их помощью можно будет из 1 WAN-порта по умолчанию сделать 2? Оказалось можно.

    image
    Решение под катом.

    1. Меняем прошивку


    Для начала нужно залить прошивку. Я выбрал прошивку от Олега. Прошивка от Олега в принципе для ASUS WL-500. Данный роутер является аналогом роутера Asus WL-500gP V2 c уменьшенной с 8 Мб до 4 Мб флэш памятью и без второго порта USB. Выполнен роутер на процессоре BCM5354, объем ОЗУ — 32 Мб, флэш — 4 мегабайта, 1 порт USB, 1 внутренний COM порт. Цена данного роутера меньше чем роутеров Asus при той же функциональности. Прошивку берем тут: http://code.google.com/p/wl500g/downloads/list?can=2&q=wl-500gpv2. Выбираем WL500gpv2-1.9.2.7-d-r2624.trx ибо другая больше по объему и попросту не влезет на DIR. В Windows 7 включаем клиент tftp: Пуск->Панель управления->Программы->Включение или отключение компонентов Windows-> Ставим галочку рядом с пунктом «Клиент TFTP»->ОК. Для Linux устанавливаем клиент tftp штатными средствами дистрибутива, например для семейства Ubuntu командой в терминале:

    sudo apt-get install tftp

    Создаем файл flashing.cmd в любом текстовом редакторе и сохраняем этот файл в папку c:\bin, в эту же папку кладем прошивку, переименованную в firmware.bin. Содержимое файла flashing.cmd:

    @Echo Off
    :BEGIN
    ping -n 1 -w 1 192.168.0.1
    If errorlevel 1 Goto BEGIN
    If errorlevel 0 Goto FLASH
    Goto END

    :FLASH
    Echo *** Start Flashing ****
    tftp -i 192.168.0.1 put c:\bin\firmware.bin

    :END


    Устанавливаем адрес сетевой карты компьютера 192.168.0.2, маска 255.255.255.0, шлюз и DNS прописывать не надо. Подключаем к сетевой карте компьютера сетевой кабель, а второй конец сетевого кабеля вставляем в любой порт LAN роутера, питание роутера не включаем. Запускаем командную строку ПУСК->Выполнить-> cmd, и выполнем команду перехода к папке C\:bin

    C:\>cd c:\bin

    Нажимаем и удерживаем кнопку Reset нажатой ну например спичкой, включаем питание роутера, загорятся все индикаторы и как только они погаснут индикаторы, кроме индикатора того порта LAN, к которому подключен кабель, кнопку Reset отпускаем и сразу же выполняем в ранее запущенной командной строке предварительно набранную команду:

    C:\bin>flashing.cmd

    Наблюдаем процесс прошивки.

    Обмен пакетами с 192.168.0.1 по 32 байт:

    Превышен интервал ожидания для запроса.

    Статистика Ping для 192.168.0.1:
    Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь),
    <<>> <<>> <<>> <<>>
    Обмен пакетами с 192.168.0.1 по 32 байт:

    Ответ от 192.168.0.1: число байт=32 время=4мс TTL=100

    Статистика Ping для 192.168.0.1:
    Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь),
    Приблизительное время приема-передачи в мс:
    Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек
    *** Start Flashing ****
    Успешная передача: 3592480 байт за 11 сs, 281134 байт/с
    C:\bin>

    После того, как загорится индикатор статуса (~1-2 мин) производим сброс настроек роутера по умолчанию. Для этого нажимаем и удерживаем кнопку Reset нажатой, пока не замигает индикатор статуса. Отпускаем Reset. Роутер перезагрузится. Адрес роутера по умолчанию сменился теперь на 192.168.1.1. После этого необходимо изменить IP адрес сетевой карты компьютера(по кабелю или WiFi) на получение адреса автоматически по DHCP.

    2. Делаем второй WAN


    Тот WAN, который уже имеется в системе выделен в vlan1, локальные порты в vlan0. Мы же 1 порт из группы LAN выделим в vlan2.

    nvram set vlan0ports="2 3 4 5*"
    nvram set vlan2ports="1 5"
    nvram set vlan2hwname=et0
    nvram set wan1_ifname=vlan1
    nvram set wan2_ifname=vlan2
    nvram commit
    reboot


    Тут можно выделить еще парочку WAN.

    3. Настраиваем 1 WAN


    Первый WAN порт будет PPPoE. В принципе все равно какой. У меня он предполагается основным. Провод подключается в порт, который подписан WAN. Создаем файл и вносим в него параметры подключения.

    vi /tmp/local/root/options.wan0

    Нажимаем кнопку i и вписываем:

    noauth refuse-eap
    user 'Login_PPPoE'
    password 'Pass_PPPoE'
    nomppe nomppc
    plugin rp-pppoe.so nic-vlan1
    mru 1492 mtu 1492
    maxfail 0
    usepeerdns
    persist
    ipcp-accept-remote ipcp-accept-local noipdefault
    ktune
    default-asyncmap nopcomp noaccomp
    novj nobsdcomp nodeflate
    lcp-echo-interval 10
    lcp-echo-failure 6
    unit 0


    Для выхода из редактора нажимаем Esc и пишем :wq (двоеточие, w, q). Вместо Login_PPPoE и Pass_PPPoE нужно вписать логин и пароль выданный провайдером. Для проверки запускаем:

    pppd file /tmp/local/root/options.wan0 && sleep 15 && /sbin/udhcpc -b -i vlan1

    И смотрим вывод ifconfig.

    4. Настраиваем 2 WAN


    Как говорилось выше, на втором WAN необходима 802.1x авторизация. Для нее необходимо скачать wpa_supplicant скомпилированный с драйвером roboswitch. После удачного выполнения 3 пункта, интернет на самом устройстве должен быть. Тогда достаточно выполнить следующие команды:

    wgеt wl500g.googlecode.com/files/wpa_supplicant-0.6.9-mipsel.tgz -P /tmp/local/tmp/
    tar -xzf /tmp/local/tmp/wpa_supplicant-0.6.9-mipsel.tgz -O opt/bin/wpa_supplicant.sh > /tmp/local/bin/wpa_supplicant.sh
    chmod +x /tmp/local/bin/wpa_supplicant.sh
    tar -xzf /tmp/local/tmp/wpa_supplicant-0.6.9-mipsel.tgz -O opt/sbin/wpa_supplicant > /tmp/local/sbin/wpa_supplicant
    chmod +x /tmp/local/sbin/wpa_supplicant
    vi /tmp/local/bin/wpa_supplicant.sh


    По старой доброй традиции в коде wgеt написан с русской е. Нажимаем i для внесения изменений. В строке VLAN=$(nvram get wan_ifname); export VLAN меняем wan_ifname на wan2_ifname. Вписываем свои значения identity и password. В строке /opt/sbin/wpa_supplicant -i${IFNAME} -Droboswitch -c${CONF} -dd
    меняем путь с /opt/sbin/wpa_supplicant на /usr/local/sbin/wpa_supplicant и в конце строки дописываем -B для запуска суппликанта в фоне. Выходим Esc и :wq. Записываем изменения:

    flashfs save && flashfs commit && flashfs enable

    После этого пути /tmp/local/ сменяться на /usr/local/. Для проверки подключения по второму WAN запускаем:

    /usr/local/bin/wpa_supplicant.sh && sleep 15 && /sbin/udhcpc -b -i vlan2

    И смотрим вывод ifconfig.

    5. Настройки роутинга


    В моем случае предполагалось, что 2 подключение будет использоваться только для внутренней сети. Для это достаточно выполнить 2 команды:

    ip r add 10.152.1.0/24 dev vlan2
    ip r add 31.29.0.0/16 dev vlan2


    Если же вы хотите Load Balancing, тогда:

    ip route del default
    ip route add default dev vlan1
    ip route add default dev vlan2


    6. Сохраняем все настройки


    vi /tmp/local/sbin/post-boot

    Нажимаем i.

    #!/bin/sh
    ifconfig vlan2 up
    /usr/sbin/pppd file /tmp/ppp/options.wan0
    sleep 15 && /sbin/udhcpc -b -i vlan1
    /usr/local/bin/wpa_supplicant.sh
    sleep 15 && /sbin/udhcpc -b -i vlan2
    ip r add 10.152.1.0/24 dev vlan2
    ip r add 31.29.0.0/16 dev vlan2


    Выходим Esc и :wq.

    chmod +x /tmp/local/sbin/post-boot

    Бинго!


    P.S. В процессе обсуждения мануала стало понятно, что многим непонятно что и как делать. В DIR-320 есть usb-порт. Этим и воспользуемся. Качаем с компьютера MultiWAN.tar. Распаковываем на флешку. Вносим свои данные в файлах options.wan0 и wpa_supplicant.sh как говорилось выше, но уже более привычным каждому текстовым редактором. Вставляем флешку в порт DIR-320 и запускаем start.sh. Скрипт все сделает сам.