LINUX.ORG.RU
ФорумAdmin

OpenWRT - Можно сделать бридж WiFi<->LAN ?


0

1

Приветтвую!

Есть машинка TL-WR941ND с OpenWRT на борту.
Сейчас раздает Интернет с WAN на WiFi и ETH1-ETH4
Хочется сделать бридж между WiFi и ETH при этом
WiFi должна быть в режиме клиента (т.е. хочу просто подключить её ethernet клиентов к WiFi)

Пробовал:
/etc/config/dhcp
config dhcp lan
option ignore 1
Для того чтобы отключить dhcp

/etc/config/network
Для lan просто выставил статический ip из своей WiFi сетки

/etc/config/wireless
Исправил секцию
config wifi-iface
option 'device' 'radio0'
option 'network' 'lan'
option 'mode' 'sta'
option 'ssid' '*****'
option 'encryption' 'psk2'
option 'key' '*****'

Наивно полагал что заработает, но даже lan не отвечал на сттический ip. Хорошо что wan не торгал, получил ip по dhcp и смог на него зайти.

Я вообще не понимаю почему в /etc/config/network в секции:
config interface 'lan'
option ifname 'lan1 lan2 lan3 lan4'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.100.254'
option netmask '255.255.255.0'
option ip6assign '60'

Отсутствует Wireless интерфейс но при этом:

# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.d85d4cf5331e no lan1
lan2
lan3
lan4
wlan0

Теоретически в /etc/config/wireless замена:
option 'mode' 'ap'
на
option 'mode' 'sta'
и отключение dhcp должны были превратить устройство в бридж между WiFi<->ETH но этого не произошло и даже eth не отвечал на свой адрес хотя br-lan именно его имел.

Где я мог накосячить? Готовых описаний бриджа WiFi<->ETH из командной строки для OpenWRT не нагуглил. Веб админка на эту железку не встает - слишком мало памяти. Экспериментировать страшно - уже получал из неё «кирпич», у OpenWRT к сожалению нет кнопки «Hardware Reset».

★★

Для начала запусти отдельно wlan0 чтоб в sta заработало. Некоторые wifi просто не умеют чисто sta и им надо делать что-то типа:

config wifi-iface
        option device           wl0
        option network          wifi1
        option mode             ap
        option ssid             AP_SSID
        option encryption       psk2
        option key              ap_password

config wifi-iface
        option device           wl0
        option network          lan
        option mode             sta
        option ssid             REMOTE_SSID
        option encryption       psk2
        option key              remote_password

Это конфиг который пришлось сгородить потому что вторая часть без первой просто не работала. Как только включаешь на wifi ap и sta одновременно - всё фурычит без проблем. Странно, но так вот есть. Хотя есть и плюс - типа ретранслятор появляется. Если правильно помню - это был tp-link wr703n, но не уверен.

В общем, надо просто вручную wifi понастраивать в разных режимах, выяснить в каком работает, а потом уже эти дурацкие конфиги писать.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Про 2 Wifi

Пробовал. Сначала описал ap потом sta но по ifconfig получил wlan0 и wlan0-1, при этом у wlan0 RX bytes,TX bytes растут а у wlan0-1 нет и при этом brctl show показывает что в br-lan входит именно wlan0-1. попробовал в конфиге первой сетью поставить sta а потом ap - результат тот же. Почему то в бридж ставится wlan0-1 статистика у которого по нулям. В эфире имя ap не появляется ни в первом ни во втором случае.

n0mad ★★ ()
Ответ на: комментарий от n0mad

Так а на уровне iwconfig или там iw что происходит-то? Все эти конфиги - мутотень, на самом деле, важно только как настраивается wlan0 низкоуровневыми тулзами. Попробуй, используя iwconfig iwlist iwpiv и iw настроить wlan0 вручную, а уж потом в конфиги лезь.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Так а на уровне iwconfig или там iw что происходит-то? Все эти >конфиги - мутотень, на самом деле, важно только как >настраивается wlan0 низкоуровневыми тулзами. Попробуй, >используя iwconfig iwlist iwpiv и iw настроить wlan0 вручную, >а уж потом в конфиги лезь.

#iwlist
-ash iwlist: not found

Вообще бриджа у меня не получилось. Сделал:
/etc/config/network добавил:
config interface 'wwan'
option proto 'dhcp'

config interface 'stabridge'
option proto 'relay'
option network 'lan wwan'

/etc/config/wireless:
config wifi-iface
option 'device' 'radio0'
option 'network' 'wwan'
option 'mode' 'sta'
option 'ssid' 'UPLINK'
option 'encryption' 'psk2'
option 'key' '*****'

config wifi-iface
option 'device' 'radio0'
option 'network' 'lan'
option 'mode' 'ap'
option 'ssid' 'MYAP'
option 'encryption' 'psk2'
option 'key' '*****'

в /etc/config/firewall везде wan переделал в wwan

После этого интернет виден - но не бриджем а роутером, а хочется сделать бридж.

n0mad ★★ ()
Ответ на: комментарий от n0mad

Не понимаю что такое wwan но помогло. После того как в /etc/config/firewall все wan поменял на wwan - маскарадинг заработал, хотя по #ifconfig так и остался wan.

n0mad ★★ ()
Ответ на: комментарий от n0mad

Сейчас сделал контрольную замену всех wwan на wan в /etc/config/firewall
Рестартанул firewall - сети не стало.
Вернул всё взад.
Рестартанул - сеть есть.

n0mad ★★ ()

В OpenWRT для включения в мост беспроводного интерфейса в режиме клиента должна быть включена опция «wds» на клиенте и на точке доступа.

точка доступа

config wifi-iface
        option device 'radio1'
        option network 'lan'
        option wds '1'
        option encryption 'psk2+ccmp'
        option ssid 'bridge5g'
        option mode 'ap'
        option key '********'

клиент

config wifi-iface
        option device 'radio1'
        option network 'lan'
        option ssid 'bridge5g'
        option mode 'sta'
        option wds '1'
        option encryption 'psk2+ccmp'
        option key '********'

inoremap ★★ ()
Ответ на: комментарий от inoremap

В OpenWRT для включения в мост беспроводного интерфейса в >режиме клиента должна быть включена опция «wds» на клиенте и >на точке доступа.

А как потом «правильно» включать беспроводные интерфейсы?

config interface 'lan'
option ifname 'lan1 lan2 lan3 lan4 wlan0 wlan0-1'

Или как еще?

n0mad ★★ ()
Ответ на: комментарий от n0mad

А как потом «правильно» включать беспроводные интерфейсы?

Беспроводные интерфейсы не перечисляются в параметре «option ifname», для них имя сети указывается в файле «/etc/config/wireless» в параметре «option network»

inoremap ★★ ()
Ответ на: комментарий от inoremap

Беспроводные интерфейсы не перечисляются в параметре «option >ifname», для них имя сети указывается в файле «/etc/config/wireless» в параметре «option network»

Спасибо за разъяснение - помогло но не заработало :(
Сейчас по #brctl show получаю:lan1 lan2 lan3 lan4 wlan0-1 wlan0
на br-lan статический ip из сети, битики по wlan0 текут битики а пинги до WiFi роутера не текут. При некотором рассмотрении заметил что lan имеет один IP а со стороны WiFi Роутера WiFi Клиент имел другой ip. При попытке отключить dhcp клиента на wifi - Получил кирпич не отвечающий ни на wan ни на lan ни на WiFi. Думаю что дальше с ним делать...

n0mad ★★ ()
Ответ на: комментарий от n0mad

Фуух... выяснил что просто сделал очепятку и ломился не на тот ip который начепятал.

n0mad ★★ ()
Ответ на: комментарий от n0mad

В общем в обоих wlan поставил:
option 'wds' '1' но бридж так и не заработал.
и ведь в brctl show они есть :(

n0mad ★★ ()
Ответ на: комментарий от n0mad

Попробуйте на маршрутизаторе, который будет подключаться в режиме клиента, сбросить настройки на значения по умолчанию, затем отключите DHCP для «lan»

/etc/config/dhcp

config dhcp 'lan'
        option interface 'lan'
        option ignore '1'

установите для «lan» статический адрес не совпадающий с адресом другого маршрутизатора

/etc/config/network

config interface 'lan'
        option ifname 'eth???'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.100.6'

(значение «option ifname » не изменяйте)

для беспроводного интерфейса установите режим «sta» и добавьте опцию «option wds '1'»

/etc/config/wireless

config wifi-iface
        option device 'radio0'
        option network 'lan'
        option ssid '*****'
        option mode 'sta'
        option wds '1'
        option encryption 'psk2+ccmp'
        option key '********'

(ssid и настройки защиты соединения должны совпадать с настройками на другом маршрутизаторе)

на маршрутизаторе «раздающем» wifi необходимо добавить только опцию «option wds '1'» в /etc/config/wireless

Этого должно быть достаточно для работы в режиме беспроводного моста.

Для диагностики подключите компьютер к LAN порту маршрутизатора-клиента, вручную установите ip-адрес, например, 192.168.100.5, подключитесь к адресу lan-интерфейсва маршрутизатора 192.168.100.6

inoremap ★★ ()
Ответ на: комментарий от inoremap

Попробуйте на маршрутизаторе, который будет подключаться в >режиме клиента, сбросить настройки на значения по умолчанию, >затем отключите DHCP для «lan»

«Настройки по умолчанию» в случае с OpenWRT где брать?
OpenWRT не предусматривает сброса к заводским настройкам.
Однако в принципе механизм можно сделать но я не знаю пока конкретную реализацию
Ведь можно дефолтные/рабочие конфиги забэкапить и переписывать из бэкапа при нажатии скажем на кнопку «QSS»

Спасибо за Ваше участие.
Предлагаю начать немного с другого:
Сейчас этот маршрутизатор работает в режиме роутера. Конфиги следующие:
/etc/config/dhcp:
.....
config dhcp lan
option interface lan
option start 100
option limit 150
option leasetime 12h
#option ignore 1

config dhcp wan
option interface wan
option ignore 1

/etc/config/network:
.....
config interface 'lan'
option ifname 'lan1 lan2 lan3 lan4'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.101.254'
option netmask '255.255.255.0'
option ip6assign '60'

config interface 'wan'
option ifname 'wan'
option proto 'dhcp'
# option ipaddr '192.168.0.243'
# option netmask '255.255.255.0'
# option gateway '192.168.0.254'

config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'

config interface 'wwan'
option proto 'dhcp'

config interface 'stabridge'
option proto 'relay'
option network 'lan wwan'

/etc/config/wireless:
.....
config wifi-iface
option 'device' 'radio0'
option 'network' 'wwan'
option 'mode' 'sta'
option 'ssid' 'UPLINK'
option 'encryption' 'psk2'
option 'key' 'UpPass'

config wifi-iface
option 'device' 'radio0'
option 'network' 'lan'
option 'mode' 'ap'
option 'ssid' 'DOWNLINK'
option 'encryption' 'psk2'
option 'key' 'DownPass'

Интерфейс stabridge в /etc/config/network взял из какой то ссылки. Не появилось такого интерфейса но и не мешает - так что пусть живет.

В таком варианте машинка живет, но сети DOWNLINK не вижу в WiFi.
Для начала помогите добиться работы 2 WiFi интерфейсов. Сейчас работает только клиентский (UPLINK) - нужно заставить работать еще DOWNLINK как ap к которой могу подключить машинки и они будут в бридже с ETH интерфейсами. Уже потом можно попробовать изменить бридж ETH с ap интерфейсом на бридж ETH с sta интерфейсом. В идеале вообще хочу добиться конфигурации: 2 wan интерфейса с разными MAC - в дефолте получается 2 интерфейса с 1 MAC и получают один ip от dhcp (WiFi/Eth) - Если включаю eth то в консоли вижу появление у wlan0 того же ip как и у wan.

Ну да ладно - сначала ндо добиться работы ap в моей конфигурации а потом только плясать дальше.

n0mad ★★ ()
Последнее исправление: n0mad (всего исправлений: 1)
Ответ на: комментарий от n0mad

Если нужно только

WiFi должна быть в режиме клиента (т.е. хочу просто подключить её ethernet клиентов к WiFi)

то для чего нужны «UPLINK» и «DOWNLINK»? Для исходной задачи достаточно одной беспроводной сети.

option ifname 'lan1 lan2 lan3 lan4'

что такое 'lan1 lan2 lan3 lan4'? Здесь должно быть указано только одно имя «физического» интерфейса LAN.

inoremap ★★ ()
Ответ на: комментарий от inoremap

Если нужно только

WiFi должна быть в режиме клиента (т.е. хочу просто подключить >её ethernet клиентов к WiFi)

Изначально да, но пока не добился и решил более универсальную конфигурацию сделать.

то для чего нужны «UPLINK» и «DOWNLINK»? Для исходной задачи >достаточно одной беспроводной сети.

Однако как рассказывали «знающие» если прописать лишь одну сеть таким образом - работать не будет, потому я и прописал обе сетки и хочу чтобы они еще и работали.

Исходная задача в итоге не решилась и надо идти маленькими шагами - сначала сделать 2 WiFi, затем сделать бридж LANWiFi с lan и потом уже бридж WANWifi с wwan

option ifname 'lan1 lan2 lan3 lan4'

что такое 'lan1 lan2 lan3 lan4'? Здесь должно быть указано >только одно имя «физического» интерфейса LAN.

Это было в дефолтном имидже OpenWRT для TL-WR941ND
Там есть br-lan в который включаются 4 lan порта.
eth это wan порт.

n0mad ★★ ()

Не до конца понял что ты хочешь, но видимо тебе нужно, тоже самое что мне
Т.е. добавляешь bridge в декларацию нужных интерфейсов, а потом просто их перечисляешь все для wifi.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от n0mad

Посмотрел wiki, в «ifname» все правильно, у wr941nd коммутатор отличается от тех TP-Link что я видел.

Второй беспроводной интерфейс имеет смысл только если нужна функциональность wifi-повторителя.

Попробуйте удалить «DOWNLINK», а для «UPLINK» замените «option 'network' 'wwan'» на «option 'network' 'lan'» и добавьте «option wds '1'». В /etc/config/network для «lan» установите ip-адрес из подсети маршрутизатора к которому происходит подключение. Интерфейсы «wwan» и «stabridge» не нужны, для L2-моста достаточно одного интерфеса «lan», «stabridge» нужен если подключение происходит не к OpenWRT точке доступа.

inoremap ★★ ()
Ответ на: комментарий от inoremap

Второй беспроводной интерфейс имеет смысл только если нужна >функциональность wifi-повторителя.

Хочется универсальности. Один интерфейс на вход и другой на выход а wan в зависимости от контекста выбирать или WiFi или ETH

Попробуйте удалить «DOWNLINK», а для «UPLINK» замените «option 'network' 'wwan'» на «option 'network' 'lan'» и добавьте «option wds '1'». В /etc/config/network для «lan» установите ip-адрес из подсети маршрутизатора к которому происходит подключение.

В общем то почти так и делал - но не заработало.
Я делал в /etc/config/wireless:
.....
config wifi-iface
option 'device' 'radio0'
option 'network' 'lan'
option 'mode' 'sta'
option 'ssid' 'UPLINK'
option 'encryption' 'psk2'
option 'key' 'UpPass'

Но при этом и второй WiFi тоже был в lan и #brсtl show
показывал что оба Wifi интерфейса в бридже с eth. Для br-lan я устанавливал ip из локальной сети но каким то образом WiFi интерфейс получал отдельный адрес со стороны WiFi вышестоящего роутера. OpenWRT приходил по WiFi с одним адресом а на lan имел другой из той же подсети. В итоге видимо запросы OpenWRT отсылал в WiFi с исходящим адресом от br-lan.
Я заходил на него через WAN подключенный к другому роутеру и не мог пинговать хост находящиеся в lan.
Впрочем я мог что то перепутать, у меня была и ситуация с 2 разными ip lan и wifi когда один из них назначался вручную и 2 одинаковыми ip когда оба получали его по dhcp.

Интерфейсы «wwan» и «stabridge» не нужны, для L2-моста >достаточно одного интерфеса «lan», «stabridge» нужен если >подключение происходит не к OpenWRT точке доступа.

Что значит «если подключение происходит не к OpenWRT точке доступа» ? У меня OpenWRT подключается к нативному ASUS NT-10U

Спасибо за советы. Как будет время - попробую совет с одним lan sta WiFi в конфиге. Но я не понимаю в каком месте WiFi sta получает ip и можно ли его поднять со статическим ip?

Если только попробовать в /etc/config/network:
config interface 'wan'
option ifname 'wan'
option proto 'static'

и такой же выдать lan интерфейсу. Ну или попробую включить WiFi в бридж и не получать ip, а то видимо был бридж но br-lan получил 1 ip а wlan0 другой ip и по настройкам он выпадал из бриджа хотя по brctl он там был.

В любом случае как придем к заветной работающей конфигурации попробую её описать отдельным SEO ориентированным тредом :)

n0mad ★★ ()
Последнее исправление: n0mad (всего исправлений: 1)
Ответ на: комментарий от inoremap

Кстати а случайно не владеете ли пруфлинком на готовый пример настройки аппаратной кнопки как «сброс до начальной конфигурации»?

Теоретически в OpenWRT нажатием кнопки девайса можно активировать скрипт который скопирует работающую конфигурацию.
Но экспериментировать с этим страшно - одно неверное движение и получаем «кирпич» - реанимация которого непроста.

n0mad ★★ ()
Ответ на: комментарий от n0mad

У меня OpenWRT подключается к нативному ASUS NT-10U

Режим «wds» работает если оба маршрутизатора с OpenWRT, в Вашем случае все мои предыдущие советы неприменимы.

Судя по файлам конфигураций Вы настраивали псевдомост - http://wiki.openwrt.org/doc/recipes/relayclient , но если необходимо переключать wan между wifi и проводом то правильней и проще вместо моста использовать маршрутизацию http://wiki.openwrt.org/doc/howto/clientmode#routed.client.mode

inoremap ★★ ()
Ответ на: комментарий от n0mad

пример настройки аппаратной кнопки как «сброс до начальной конфигурации»?

Должен работать стандартный для OpenWRT режим безопасной загрузки - http://wiki.openwrt.org/toh/tp-link/tl-wr941nd#failsafe.mode из которого можно сбросить настройки - http://wiki.openwrt.org/doc/howto/generic.failsafe#in.failsafe.mode

inoremap ★★ ()

Некропостинг - такой некропостинг. Но, мало ли кому пригодится - вот тут описано как полностью настроить бридж LAN-WLAN http://wiki.openwrt.org/doc/recipes/relayclient Нюанс в том, что нужно установить дополнительный пакет relayd

Tomatos ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.