#!/bin/sh
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 1 set ports "0t 3 4 5"
swconfig dev eth0 vlan 3 set ports "0t 1"
swconfig dev eth0 set apply
vconfig add eth0 3
ifconfig vlan3 up
echo -e "plugin /usr/lib/rp-pppoe.so
Естественно верхняя часть скрипта на настройки портов у каждого своя и имена интерфейсов могут оличаться, но опять же повторюсь не забываем про переменные в nvram для WAN порта указать для примера в данном случае vlan3.
Даже если и не запуститься PPPoE, то есть сервис redial, который спустя 30сек возьмет контроль за ppp на себя по запуску pppd и контролем состояния ppp.
Много информации и почти ничего не понятно. Попробую по пунктам.
1.
vasek00 wrote:
Первое желательно чтоб неиспользуемый eth0 (старый WAN) не попадал в br0 (по умолчанию в WEB на нем будет bridge, которая включит его в br0, нужно проконтролировать)
Я выставил в Port Setup Network configuration eth0 - Unbridged. При старте системы eth0 попадёт в br0?
2.
vasek00 wrote:
не достаток только в том что вы как и многие пользователи наверное любите использовать dhcp, а ПК при настройках роутера у вас включен. Так вот при первоначальном запуске роутера и включенном кабеле провайдера в любой порт LAN на этапе загрузки весь сетевой мусор от провайдера попадает к вам в LAN сеть (так как все настройки пока по умолчание и все LAN порты в switch и ни какого VLAN нет), а так же и от серверов DHCP клиентов сети провайдера, которые например используют сеть провайдера для своих целей (ну просто играют), т.е. все это происходит до старта StartUp скрипта (который выше) и который перенастраивает порты.
Нет ли в dd-wrt команды вроде reset, чтобы очистить этот мусор после начала работы StartUp скрипта?
И это не может быть причиной в моём случае. Перед ковырянием роутера я подключаю к нему только патч-корд, потом сбрасываю настройки в дефолт через WEB-интерфейс, а потом настраиваю. Каждый раз с нуля. После всего, что описано здесь http://www.dd-wrt.com/phpBB2/viewtopic.php?p=945984#945984 я задал нужный MAC на WAN (LAN4), подключил кабель провайдера к WAN, проверил работу роутера. А уж потом изменил MAC сетевой карты на совпадающий с MAC WAN. Интернет сразу перестал пинговаться. Сменил MAC сетевой карты или подключился по wi-fi - интернет работает. Точно такую же картину наблюдал на OpenWRT, когда переназначил WAN на этом же роутере. Если проблема устраняема, прошу рассказать, как именно. Провайдер использует IPoE.
3.
vasek00 wrote:
настроек и запуска сервисов, то нужно было сказать системе, что ее WAN порт eth0 теперь будет eth1.2 это можно сделать через запись в nvram переменных или обязательно через WEB выбором в http://192.168.1.1/Networking.asp "Port Setup"->"WAN Port Assignment" установкой eth1.2
Ведь я же вроде бы так и сделал. Даже скриншот приложил:
4.
vasek00 wrote:
нажать SAVE и обязательно перезапуск и ни каких Apply Settings не допускается.
А вот это непонятно. Ведь если не применить изменения, то и протестировать нельзя, сработало или нет. А если применить, то оно сохраняется - то есть, SAVE срабатывает.
5.
vasek00 wrote:
Пример для PPPoE
Code:
#!/bin/sh
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 1 set ports "0t 3 4 5"
swconfig dev eth0 vlan 3 set ports "0t 1"
swconfig dev eth0 set apply
vconfig add eth0 3
ifconfig vlan3 up
echo -e "plugin /usr/lib/rp-pppoe.so
Естественно верхняя часть скрипта на настройки портов у каждого своя и имена интерфейсов могут оличаться, но опять же повторюсь не забываем про переменные в nvram для WAN порта указать для примера в данном случае vlan3.
Даже если и не запуститься PPPoE, то есть сервис redial, который спустя 30сек возьмет контроль за ppp на себя по запуску pppd и контролем состояния ppp.
Что делать с этим кодом? Запускать через через Command Shell в разделе Administration - Commands?
Хочется универсальный вариант. То есть, StartUp настраивает только переброс WAN на один из LAN, а остальное настраивается из WEB-интерфейса. Что-то вроде
Code:
#!/bin/sh
brctl delif br0 eth1
swconfig dev eth1 set enable_vlan 1
swconfig dev eth1 vlan 1 set ports "0t 2 3 4"
swconfig dev eth1 vlan 2 set ports "0t 1"
swconfig dev eth1 set apply
vconfig add eth1 1
vconfig add eth1 2
ifconfig eth1.1 up
brctl addif br0 eth1.1
ifconfig eth1.2 up
1. Я выставил в Port Setup Network configuration eth0 - Unbridged. При старте системы eth0 попадёт в br0?
Давайте уточним что и когда куда попадает и как вы это определяете? До старта StartUp скрипта в которому будут команды перенастройки switch так и будет.
Quote:
2. Нет ли в dd-wrt команды вроде reset, чтобы очистить этот мусор после начала работы StartUp скрипта?
При чем тут это, при подачи питания на роутер запускается uboot роутера, которая делает настройку портов и их конфигурацию по умолчанию для данного железа, далее управление от него перейдет самой прошивки которая будет загружена в память роутера и начнет свое выполнение и запуска служб, где потом уже будет запущен StartUp скрипт и т.д.
Quote:
И это не может быть причиной в моём случае. Перед ковырянием роутера я подключаю к нему только патч-корд, потом сбрасываю настройки в дефолт через WEB-интерфейс, а потом настраиваю.
Хорошо это понятно только сейчас стало, что на момент настроек у вас кабель провайдера отключен.
Quote:
Если проблема устраняема, прошу рассказать, как именно. Провайдер использует IPoE.
О какой проблеме вы пишите и про какие MAC.
Выше в постах был выложен скрипт до провайдера который дает интернет по PPPoE (можно и с VPN на стат IP, роли не играет), не нужно PPPoE тогда получаете от него IP по DHCP или по стат IP.
Используете обычные настройки через WEB панель http://192.168.1.1/index.asp и http://192.168.1.1/Networking.asp данные из этих настроек будут записаны в nvram такие как wan_iface, wan_ifname, wan_gateway, wan_ipaddr и т.д.
Например у вас в место eth0 должен быть eth1.2:
тут сразу стат IP на WAN порту.
При запуске прошивки точнее установки сетевых интерфейсов будут браться значения их этих переменных => мало того перестроить switch через StartUp скрипт нужно еще системе сказать что новый порт WAN это интерфейс с именем eth1.2 а не как ранее eth0 (проще через WEB).
Quote:
Даже скриншот приложил:
по нему все нормально. WAN=eth1.2 br0=eth1.1+ath0
Ранее в вашем посту был так же скрин в котором в br0 был eth0
Quote:
4. А вот это непонятно. Ведь если не применить изменения, то и протестировать нельзя, сработало или нет. А если применить, то оно сохраняется - то есть, SAVE срабатывает.
Потому что делаете через Command Shell - а надо через доступ telnet
Просто сделайте SAVE и перезапустить роутер. По данной команде происходит запись переменных которые присутствуют в WEB форме в память nvram роутера.
Quote:
5. Что делать с этим кодом? Запускать через через Command Shell в разделе Administration - Commands?
Хочется универсальный вариант. То есть, StartUp настраивает только переброс WAN на один из LAN, а остальное настраивается из WEB-интерфейса.
ДА, все свои команды пишите в StartUp скрипт, для любых настроек и проверок лучше использовать telnet вход на роутер, а не пользоваться Command Shell, в нем только чисто для быстроты что-то проверить.
Итак у вас должно получиться в StartUp :
Quote:
Code:
#!/bin/sh
brctl delif br0 eth1
swconfig dev eth1 set enable_vlan 1
swconfig dev eth1 vlan 1 set ports "0t 2 3 4"
swconfig dev eth1 vlan 2 set ports "0t 1"
swconfig dev eth1 set apply
vconfig add eth1 1
vconfig add eth1 2
ifconfig eth1.1 up
brctl addif br0 eth1.1
ifconfig eth1.2 up
Дальше что нужно с WAN портом дать ему IP или получить по DHCP?
Можете так же дописать его после строк
vconfig add eth1 2
например на подъем стат IP на WAN порту естественно нужный IP
Code:
ifconfig eth1.2 192.168.0.99 netmask 255.255.255.0 up
Возможно опции -O не пройдут, тогда просто без них (версия релиза)
После всего это через telnet вход проверяете все настройки:
- ifconfig
- ip ro и при необходимости маршрут default
- при не оходимости ping
Если идет привязка у провайдера к MAC то можно через nvram записать переменные :
У меня устройство Mercury MW300R v3.x. Atheros AR9341 (500 MHz). Допаял в него памяти до 32Мб и флешку до 8Мб, залил прошивку от TP-link TL-WR842ND v2 (как наиболее подходящего по железу), а затем перешил в dd-wrt.
Всё работает прекрасно, но есть одна странность, из-за которой я и обратился в эту тему - неправильно работают порты:
мало того, что они стали перепутаны (WAN теперь на Port4), так и клиенты, подключенные к новым LAN портам не видят друг друга. То есть, они спокойно заходят на роутер, спокойно ходят в интернет, но даже будучи подключены к соседним портам, не могут и пропинговать друг друга (даже в ARP таблице не появляются записи).
Подозреваю, что дело в VLAN. Подскажите, пожалуйста.
Sonya
Вы используете tun, не могли бы вы описать настройки данного интерфейса и для чего вы его используете, для многих пользователей было бы интересно.
А так же установленные чипы под память.
Вы используете tun, не могли бы вы описать настройки данного интерфейса и для чего вы его используете, для многих пользователей было бы интересно.
Собственно для этого всё и затевалось. Я использую OpenVPN, который присутствует в прошивке DD-WRT под 8-меговые роутеры, создаю туннель для подключения из дома к даче (там серый IP).
Quote:
А так же установленные чипы под память.
Память 32 MiB (WINBOND W9425G6JH-5I) снята со сгоревшего D-Link DIR-615 rev R1. Как пишут, подходят микросхемы с ноутбучнык планок DDR1. Флешка досталась в наследство из сгоревшей IP камеры. Думаю, подойдёт любая SPI флешка подходящего размера.
Инструкция с картинками.
Роутер TP-LINK TL-WR841ND v.8 (точнее - 8.1), с прошивкой DD-WRT v24-sp2 (12/22/14) std - build 25697.
В WAN переводить будем порт 1 из eth1. У меня это LAN4. Роутер лучше настраивать по воздуху. Если через кабель, то подключать в один из центральных портов: LAN2 или LAN3, чтобы уменьшить вероятность попасть в будущий WAN.
Для тех, кому не страшно, в приложении - файл настроек nvrambak.bin. Там для входа используется admin/admin.
Всё делается в WEB-интерфейсе. Рекомендую держать под рукой (в блокноте) ссылку http://192.168.1.1/Networking.asp и переходить по ней, если страница долго не хочет обновляться после Apply Settings.
1. Заходим в Administration - Commands. В Command Shell вставляем
Code:
stopservice wan
brctl delif br0 eth1
swconfig dev eth1 set enable_vlan 1
swconfig dev eth1 vlan 1 set ports "0t 2 3 4"
swconfig dev eth1 vlan 2 set ports "0t 1"
swconfig dev eth1 set apply
vconfig add eth1 1
vconfig add eth1 2
ifconfig eth1.1 up
brctl addif br0 eth1.1
ifconfig eth1.2 up
ifconfig eth0 down
startservice wan
и нажимаем Save Startup.
Если вместо первого порта WAN будет назначаться на другой порт, меняем местами единицу с нужным числом в строках 5 и 4.
2. Выключаем, включаем роутер.
Если по кабелю пропала связь с роутером, возможно, кабель подключен в будущий WAN. Тогда подключаемся к другому LAN.
3. Заходим в Setup - Networking. Должно быть так:
Current Bridging Table - Interface - eth1.1 ath0
WAN Port Assignment - eth0
Network Configuration - четыре строчки. По одной для eth1, eth1.1, eth1.2, ath0.
Если что-то не так, сбросить все настройки и вернуться к п. 1.
4. Assign to Bridge - кнопка Add.
Нажимаем. Появляется строчка. Заполняем. Assignment 0 - br0, Interface - eth1.1, Prio - без изменений.
5. WAN Port Asignment - выставляем eth1.2.
Отмечаем Unbridged для Network Configuration eth1.
6. Внизу страницы нажимаем Apply Settings.
7. Если на странице над Network Configuration eth1 не появился Network Configuration eth0, переходим туда-сюда по ссылкам в интерфейсе, потом возвращаемся. Отмечаем Unbridged для Network Configuration eth0, нажимаем Apply Settings.
8. Проверяем правильность настроек. Потом выключаем, включаем роутер.
9. Проверяем положение нового WAN, последовательно подключаясь к каждому LAN. На новом WAN компьютер не получит адрес автоматически и роутер не откликнется на ping 192.168.1.1.
Всё, роутером можно пользоваться почти как обычно. Единственная проблема, которую мне пока не удалось решить, это то, что MAC-адрес на новом WAN не должен совпадать с MAC-адресом любого из подключенных клиентов. Это может случиться при клонировании MAC. Если клонируем MAC, то сразу же меняем MAC на компьютере. Иначе интернета не будет.
Last edited by snhih on Sat Feb 14, 2015 19:25; edited 1 time in total
По поводу MAC берем реальное значение, которое на шильдике от роутера и выполняем команду которая ниже, под MAC понимается значения вида ххx:xx:xx:xx:xx в место xx цифры двухзначные
Code:
nvram set wan_hwaddr="MAC"
nvram set et0macaddr="MAC"
nvram set et0macaddr_safe="MAC"
nvram commit
reboot
Заходим в Administration - Commands. В Command Shell прописываем строки, которые выше и потом нажимаем - Run Commands роутер должен перегрузиться. По поводу двух переменных et0macaddr_safe и et0macaddr_safe какая-то из них не нужна, так как она все равно не измениться. Можно потом проверить командой
По поводу MAC берем реальное значение, которое на шильдике от роутера
Боюсь, меня неправильно поняли. Нужен MAC не роутера, а компьютера, подключенного к роутеру.
vasek00 wrote:
и выполняем команду которая ниже, под MAC понимается значения вида ххx:xx:xx:xx:xx в место xx цифры двухзначные
Code:
nvram set wan_hwaddr="MAC"
nvram set et0macaddr="MAC"
nvram set et0macaddr_safe="MAC"
nvram commit
reboot
Заходим в Administration - Commands. В Command Shell прописываем строки, которые выше и потом нажимаем - Run Commands роутер должен перегрузиться. По поводу двух переменных et0macaddr_safe и et0macaddr_safe какая-то из них не нужна, так как она все равно не измениться. Можно потом проверить командой
Code:
nvram show | grep et0macaddr
Сделал как написано. Добавил команды в свой список (за исключением reboot, иначе роутер уйдёт в вечную перезагрузку). После перезагрузки проверил. Переменные et0macaddr и et0macaddr_safe приняли нужные значения. Но проблема осталась. Если тот же адрес, что прописан в wan_hwaddr назначить сетевой карте компьютера, на этом компьютере интернет не работает.
Попутно заметил, что если просто присвоить et0macaddr и et0macaddr_safe, а потом выполнить commit, но не присваивать их при загрузке, то переменные сбрасываются.
Posted: Sun Feb 08, 2015 16:04 Post subject: TP-Link TL-WR841ND v8 переназначить WAN
snhih, спасибо за подробное описание и скриншоты, всё отлично работает на версии роутера 8.4. Остаётся добавить - нужно настроить сетевую карту ПК на автоматическое получение IP-адреса, вместо стандартного 192.168.1.2
Боюсь, меня неправильно поняли. Нужен MAC не роутера, а компьютера, подключенного к роутеру.
Сделал как написано. Добавил команды в свой список (за исключением reboot, иначе роутер уйдёт в вечную перезагрузку). После перезагрузки проверил. Переменные et0macaddr и et0macaddr_safe приняли нужные значения. Но проблема осталась. Если тот же адрес, что прописан в wan_hwaddr назначить сетевой карте компьютера, на этом компьютере интернет не работает.
ifconfig
Code:
wan_hwaddr=xx:xx:xx:xx:46:40
ath0 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
vlan1 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
vlan2 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:40
ifconfig после клонирования
Code:
wan_hwaddr=xx:xx:xx:xx:86:0E
ath0 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
vlan1 Link encap:Ethernet HWaddr xx:xx:xx:xx:46:3F
vlan2 Link encap:Ethernet HWaddr xx:xx:xx:xx:86:0E
где xx:xx:xx:xx:86:0E MAC от ПК подключенный к LAN порту роутера.
Или еще пример
Code:
wan_hwaddr=xx:xx:xx:xx:54:78
ra0 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:79
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:77
eth2 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:77
vlan1 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:77
vlan2 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:78
ifconfig после клонирования
Code:
wan_hwaddr=xx:xx:xx:xx:86:0E
ra0 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:79
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:77
eth2 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:77
vlan1 Link encap:Ethernet HWaddr xx:xx:xx:xx:54:77
vlan2 Link encap:Ethernet HWaddr xx:xx:xx:xx:86:0E
Все работает, на ПК по второму варианту имеем "arp -a"
Code:
...
192.168.1.1 ---- xx:xx:xx:xx:54:77
...
На сетевой карте ПК состояние->сведения МАС-"xx:xx:xx:xx:86:0E". Всегда будет MAC адрес на WAN порту и на LAN отличные.
------- MAC1-WAN (роутер) LAN-MAC2 ------- MAC (ПК).
Quote:
Попутно заметил, что если просто присвоить et0macaddr и et0macaddr_safe, а потом выполнить commit, но не присваивать их при загрузке, то переменные сбрасываются.
Не понятно?
Одна из этих переменных меняться не будет, с другой будет все в порядке, выполняется один раз в жизни записью через "commit"
Posted: Mon Feb 09, 2015 15:46 Post subject: Re: TP-Link TL-WR841ND v8 переназначить WAN
Лёха wrote:
Хотелось бы узнать у форумчан:
Как у вас работает под DD-WRT выключатель на WiFi? У меня он работает только через Панель управления. Аппаратный почему-то безразличен.
Заранее благодарю за помощь!
Posted: Mon Feb 09, 2015 16:03 Post subject: Re: TP-Link TL-WR841ND v8 переназначить WAN
Лёха wrote:
1) Сделал всё по пунктам на прошивке от 22-12-2014 г., начиная с настроек по умолчанию. С данного роутера (на AR9341) интернет по WiFi уже бегает, но на ПК по кабелю не идёт. У меня PPPoE-провайдер, привязки к MAC-адресу нет (не включал клонирование).
Пытался сам разобраться - пока безрезультатно, что посоветуете?
После всех настроек по командам swconfig dev eth1 show и swconfig dev eth0 show результат один и тот же:
Code:
Global attributes:
enable_vlan: 1
Port 0:
pvid: 1
link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
pvid: 2
link: port:1 link:up speed:100baseT full-duplex auto
Port 2:
pvid: 1
link: port:2 link:down
Port 3:
pvid: 1
link: port:3 link:down
Port 4:
pvid: 1
link: port:4 link:up speed:100baseT full-duplex auto
VLAN 1:
vid: 1
ports: 0t 2 3 4
VLAN 2:
vid: 2
ports: 0t 1
Хотя, по команде ifconfig можно увидеть в наличии только ath0 (WiFi), br0 (мост), br0:0, eth1, eth1.1, eth1.2 и lo.
У вас на eth1 сидят все LAN порты, следовательно на eth1 нужно поднимать vlan. В br0 должен быть только eth1.1 и ath0 если eth1.1 у вас vlan для локальной сети LAN порты роутера. Если он у вас в bridge то в WEB GUI убрать галку на "bridge" параметре на eth1.2.