LINUX.ORG.RU
решено ФорумAdmin

Сделать из OpenWrt неуправляемый свитч + Wi-Fi

 , ,


0

3

DHCP, DNS и все-все-все на основном маршрутизаторе, роутер на OpenWrt нужен только для расширения количества Ethernet-портов и для раздачи Wi-Fi (из пула DHCP с основного маршрутизатора). Соответственно трафик должен ходить не только с роутера, но и на него и на клиенты, подключенные через него, как по проводу, так и по беспроводу.

  • Как отключить NAT на WAN?
  • Как совсем отключить файерволл?
  • Как сделать DHCP Relay?
  • Что ещё я забыл/упустил?

Всё это нужно сделать средствами OpenWrt (Web/luci или CLI/uci), чтобы были возможны штатные бэкап/восстановление и обновления/перезагрузки ничего не ломали.


Решение.

★★★★★

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

Так и знал что первым советом будет «купи рандомную херню».

ВНИМАТЕЛЬНО прочитай пост. Несколько раз, если с первого не дойдёт.

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

Нафиг хаб, если можно взять неуправляемый свитч?

Вот только Wi-Fi всё равно придётся через роутер на OpenWrt (по крайней мере пока) организовывать, так что наличие тупого свитча задачу никак не меняет.

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

мост из вайфая в ethernet это какие-то проблемы

# ifconfig | awk '/^[^ ]/{print $1}' | xargs
br-lan eth0 eth0.1 eth0.2 lo phy0-ap0 phy1-ap0
# brctl show
bridge name	bridge id		STP enabled	interfaces
br-lan		7fff.b0957588867e	no		phy0-ap0
							phy1-ap0
							eth0.1

Не верь слухам, оно просто работает.

mord0d ★★★★★
() автор топика

https://openwrt.org/docs/guide-user/network/wifi/wifiextenders/bridgedap

На вкладке firewall можно отключить masquerade между зон. Но это не нужно, так как wan зону и интерфейс нужно удалить.

На вкладке startup можно отключать службы. Или привычным путём линуксоида /etc/init.d/firewall disable

А зачем нужен dhcp relay?

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

Удаляешь всё

Если я что-то сделаю не так, это можно будет как-то откатить (в любое рабочее состояние, хотя бы в OpenWrt-шный дефолт, чтобы можно было подключиться и развернуть бэкап настроек)?

создаешь мост, добавляешь в него WAN, LAN и WiFi

Я не особо понимаю как это делается именно в OpenWrt (да и в современном Linux в целом).

В Network→Switch не вижу беспроводных интерфейсов phy0-ap0, phy1-ap0, а в Network→Interfaces вообще всё какое-то инопланетянское.

mord0d ★★★★★
() автор топика

Поищи в сети. Это типовая задача. Просто отключаешь сервер DHCP на роутере и он превращается в хаб. Только в настройках роутера самому роутеру нужно настроить статический IP и не забыть его, иначе потом не сможешь достучаться до самого роутера.

Я так из своего старого D-Link DIR-615 сделал хаб. Правда IP его забыл и достучаться теперь до него никак, поэтому напоминаю.

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

Если добавишь на WAN статический адрес заранее, то всегда сможешь по нему подключиться. Ну и обычно у роутеров есть кнопка ресета (но не всегда адекватно работающая на кастомных прошивках)

Какие конкретно кнопки жать мне подсмотреть негде.

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

На вкладке firewall можно отключить masquerade между зон. Но это не нужно, так как wan зону и интерфейс нужно удалить.

Так-то VLAN вообще не нужен в режиме неуправляемого свитча. Судя по всему, это делается в Network→Interfaces.

На вкладке startup можно отключать службы.

Я ковырнул бэкап, но не нашёл где там службы отключенные указываются (я даже не знаю что искать). Мне лишь бы оно не включило ничего "лишнего" и не отрубило меня после обновления или ребута.

А зачем нужен dhcp relay?

Управлять пулом адресов из одного места удобнее.

А делегировать пул по кусочкам на кучу устройств, где эти кусочки будут раздаваться, не очень практично, особенно если их больше одного и количество клиентов на каждой точке может варьироваться в зависимости от сезона, погодных условий, и прочих не особо предсказуемых факторов. Ну и конечно же это умножает на ноль все static leases на DHCP-сервере.

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

Вроде да, но это только(?) про wifi.

Но остаётся сделать из роутера неуправляемый свитч. У меня 1WAN+4LAN (физически одна сетевая), и три (потому что минус один на основном маршрутизаторе, куда будет подключен этот) порта Ethernet мне явно лишними не будут.

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

Это типовая задача.

I see.

Поищи в сети.

Нашёл два или три РАЗНЫХ руководства и чот зассал экспериментировать. (=

статический IP

А быть одновременно DHCP-клиентом и DHCP-релеем оно не может? (=

Я так из своего старого D-Link DIR-615 сделал хаб. Правда IP его забыл и достучаться теперь до него никак, поэтому напоминаю.

Разве нельзя сбросить в дефолт как-то не заходя на сам девайс? На моём Archer C7 какая-то магическая комбинация физических кнопок точно имеется, и я её даже пару раз пользовался, когда жиденько обосрался с настройкой (OpenWrt крайне неочевиден местами).

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

Нашёл два или три РАЗНЫХ руководства и чот зассал экспериментировать. (=

Я тоже в своё время нашёл их кучу. Не ссы - сохрани настройки роутера, заранее узнай, как бросить его на дефолт и экспериментируй сколько душе влезет.

А быть одновременно DHCP-клиентом и DHCP-релеем оно не может? (=

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

Разве нельзя сбросить в дефолт как-то не заходя на сам девайс?

Можно, но я забыл как, а искать лень. Да и смысла особого нет. Там вроде как ресет на 30 секунд надо зажать или что-то вроде того. Я это написал больше для тебя, чтоб ты имел в виду, что лучше бы сразу записать IP куда-нибудь. Например, маркером на корпусе самого роутера.

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

Ну и обычно у роутеров есть кнопка ресета (но не всегда адекватно работающая на кастомных прошивках)

Если сброс в дефолт сбросит в том числе настройку интерфейсов (), то вопросов нет. Я свою комбинацию не помню, но если приспичит — быстро нагуглю.

Какие конкретно кнопки жать мне подсмотреть негде.

На разных устройствах может быть по-разному, вроде.

Хочется максимально минимизировать даунтайм, потому я предпочту задать несколько лишних (и возможно глупых) вопросов, чем меня заклюют юзеры, что у них в праздники нет интернетов. (=

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

экспериментируй сколько душе влезет

Точнее пока не начнут клевать юзеры на тему куда подевался интернет и когда он снова появится. (=

лучше бы сразу записать IP куда-нибудь. Например, маркером на корпусе самого роутера.

У меня список всех MAC-адресов (как прошитых в сетевухи, так и назначенных виртуальным интерфейсам) всех устройств и IP-адресов, привязанных к этим MAC-адресам, записан как в конфигах DHCP- и DNS-серверов, так ещё и продублирован в текстовом виде, когда я ещё только планировал устройство сети.

лекарство от скуки

Надо всего лишь перебрать 592’708’865 адресов. (%

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

Точнее пока не начнут клевать юзеры на тему куда подевался интернет и когда он снова появится. (=

На боевой железке хочешь сразу настраивать? А ты рисковый. Я полагаю, что всё новое всегда нужно обкатывать на тестовом полигоне.

Надо всего лишь перебрать 592’708’865 адресов.

Можно for-ами про-for-ить. Это не так долго, как может показаться xD

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

Вся разница между нами в том, что мне тогда это нужно было как лекарство от скуки, а тебе для дела ;)

Нет разницы, ему тоже от скуки надо. Было бы для дела - уже давно бы купил обычный свитч и как минимум половину задачи бы решил.

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

На боевой железке хочешь сразу настраивать? А ты рисковый. Я полагаю, что всё новое всегда нужно обкатывать на тестовом полигоне.

У меня нет даже близко подходящих железок, на которые можно натянуть OpenWrt и обкатать. Но совет дельный.

Надо всего лишь перебрать 592’708’865 адресов.

Можно for-ами про-for-ить. Это не так долго, как может показаться xD

Ага, пингом пройтись, чтобы уж наверняка. xD

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

уже давно бы купил обычный свитч и как минимум половину задачи бы решил

Свитч уже есть, и он никак не изменил задачу. Вообще никак.

Если ты хочешь предложить отказаться от беспровода, дай свой номер телефона, я на тебя переадресую юзеров, будешь их сам убеждать, а они тебя будут долбить 24/7 почему у них нет интернетов (особенно без беспровода).

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

Я не особо понимаю как это делается именно в OpenWrt (да и в современном Linux в целом).

Вместо WAN воткнуть кабель в 1-4LAN.

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

Тем, что свитч в этой задаче обязателен, чтобы не только клиенты за этим устройством могли куда-то ходить, но и из внутренней сети к клиентам, подключенным к нему можно было ходить.

Об этом написано в стартовом посте, но чукча, видимо, не читатель.

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

Ты то ли чего-то капитально не договариваешь, то ли не понимаешь как работает сеть. Если у тебя мост между двумя сегментами локалки, то все её участники по обе стороны моста видят друг друга по умолчанию, для этого ничего дополнительно не надо настраивать. И dhcp от роутера тоже будет автоматом работать со всеми.

Есть ещё вариант что кто-то выше наврал о том что мост из вайфая в ethernet якобы легко сделать. Но если так то это уже к нему вопросы.

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

Все порты нужны, лишних нет.

Тогда без вариантов. Вам придётся WAN добавить в мост br-lan.

Но если

Свитч уже есть, и он никак не изменил задачу.

То ведь в один из LAN портов можно подключить этот свитч. И всё-таки НЕ добавлять WAN в мост br-lan. Или все порты это порты роутера +порты и этого свитча тоже?

sinaps
()
Последнее исправление: sinaps (всего исправлений: 1)

Элементарно же, просто физический wan port посадите на lan интерфейс. Ну и dhcp для lan отключить, да.

Как правило, wan порт выделен через vlan (достаточно просто удалить vlan на нем), но бывает и физически отдельный порт (в таком случае, надо будет делать bridge), тут от железки зависит.

anonymous
()
Ответ на: комментарий от mord0d

Ну мало ли, кто их, этих наркоманов, знает. Линуксы вообще для инопланетян

Это не так. Обычно такое мнение высказывают люди без базовых знаний в области. Найимите it-шника, он вам за 2 минуты накликает, если есть опыт openwrt, если нет - за 5-10 минут разберется.

anonymous
()
Ответ на: комментарий от firkax

для этого ничего дополнительно не надо настраивать

Это ты, видимо, никогда OpenWrt в глаза не видел, и не понятно зачем пришёл в этот тред. Всё уже настроено, по дефолту. Нужно сделать наоборот.

И dhcp от роутера тоже будет автоматом работать со всеми.

С голым мостом вообще ничего работать не будет. Нужен как минимум дефолтный маршрут.

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

Или все порты это порты роутера +порты и этого свитча тоже?

Порты свитча тоже. А ещё он 100Mbps, в нём торчит то, чему не нужен широкий канал (юзеры такую скорость явно не оценят).

Тогда без вариантов. Вам придётся WAN добавить в мост br-lan.

Получается, нужно удалить VLAN на eth0 и просто кинуть этот eth0 в br-lan как есть. Осталось понять как это делается средствами OpenWrt (и не отстрелить себе ничего в процессе ☺).

mord0d ★★★★★
() автор топика

На домашних роутерах обычно на CPU один eth0, подключённый в 6-портовый свитч. По умолчанию два vlan-а, lan-порты без тегирования в vlan1, wan-порт без тегирования в vlan2, cpu-порт с тегирования в обоих vlan-ах. В линуксе поверх eth0 созданы два 802.1q интерфейса, скажем, eth0.1 и eth0.2. Интерфейс eth0.1 собран в бридж br-lan в wlan0.

Тебе же надо все порты свича (lan, wan, и cpu) без тегирования в vlan1. 802.1q интерфейсы не нужны. В бридж br-lan надо объединить eth0 и wlan0. Wan интерфейс не нужен, wan зона файервола не нужна.

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

Это ты, видимо, никогда OpenWrt в глаза не видел

Ты прав, не видел. Но давай вернёмся по нити беседы чуть назад, вот на этот мой коммент: Сделать из OpenWrt неуправляемый свитч + Wi-Fi (комментарий)

Нет разницы, ему тоже от скуки надо. Было бы для дела - уже давно бы купил обычный свитч и как минимум половину задачи бы решил.

Собственно речь была о том, что если б тебе нужно было решение - то ты бы купил обычный неуправляемый свитч на нужное кол-во портов и обычную точку доступа с режимом моста, а не красноглазил с костыльным переделыванием роутера в свитч.

С голым мостом вообще ничего работать не будет. Нужен как минимум дефолтный маршрут.

У кого маршрут? У клиентов дефолтный маршрут должен быть до роутера, про мост им вообще знать не нужно. Мост это по сути тот же свитч, но с всего двумя портами и чуть более высокоуровневой прошивкой внутри. Ну и, в отличие от свитча, может объединять сети на разной физической основе.

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

На домашних роутерах обычно на CPU один eth0, подключённый в 6-портовый свитч.

В целом верно описано, но для полноты картины - часто два свича ставят в целях удешевления (т.к. встроенный в SoC полноценный гигабитный свич выходит дороже). Т.о. встроенный в SoC свич одним гигабитным портом цепляется к CPU, а вторым гигабитным портом через RGMII к гигабитному свичу (примеры - RTL8367 или AR8327). У гигабитного свича уже соответственно 5 гигабитных портов, которые и видит пользователь.

zent
()
Ответ на: комментарий от mord0d

Осталось понять как это делается средствами OpenWrt (и не отстрелить себе ничего в процессе ☺).

Зачем вообще openwrt то понадобился? Описанный выше режим бриджа/AP сейчас обычно в любом домашнем роутере есть и переключается парой кликов мыши с режима роутера.

zent
()
Ответ на: комментарий от mord0d

Получается, нужно удалить VLAN на eth0 и просто кинуть этот eth0 в br-lan как есть. Осталось понять как это делается средствами OpenWrt (и не отстрелить себе ничего в процессе ☺).

А что пишут в /etc/config/network ? Вроде бы там нужно поудалять config interface 'wan' и config interface 'wan6' А потом добавить eth0 в config interface 'lan' в option ifname 'eth1' как-то так option ifname 'eth0 eth1' но это не точно.

Или Сеть, Интерфейсы (Удалить WAN и WAN6) потом Устройства, br-lan, Настроить, Порты моста. Поставить галочку в бывшем WAN интерфейсе.

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

включить dhcp клиент на lan интерфейсе

Зачем? На LAN только DHCP релей, клиент DHCP на WAN.

в админку можно было попасть

Скорее всего надо будет покрутить яйца uHTTPd, чтобы он слушал на WAN, но так как я хочу избавиться от логического разделения WAN|LAN, то в этом необходимости быть не должно.

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

На домашних роутерах обычно на CPU один eth0

Так и есть.

подключённый в 6-портовый свитч

У меня 4, но не суть.

По умолчанию два vlan-а, lan-порты без тегирования в vlan1, wan-порт без тегирования в vlan2, cpu-порт с тегирования в обоих vlan-ах. В линуксе поверх eth0 созданы два 802.1q интерфейса, скажем, eth0.1 и eth0.2. Интерфейс eth0.1 собран в бридж br-lan в wlan0.

У меня так (дефолт):

VLAN IDCPU (eth0)LAN 1LAN 2LAN 3LAN 4WAN
1taggeduntaggeduntaggeduntaggeduntaggedoff
2taggedoffoffoffoffuntagged

eth0.1, phy0-ap0 и phy1-ap0 (последние два — wlan, 2.4GHz и 5GHz) в br-lan;
eth0.2 это WAN.

802.1q интерфейсы не нужны.

802.1Q это и есть VLAN, разве нет? Под термином VLAN понимаются сразу две вещи, но контекстно — ==.

Тебе же надо все порты свича (lan, wan, и cpu) без тегирования в vlan1.

То есть в br-lan кидаем eth0.1, от eth0.2 избавляемся полностью?

В бридж br-lan надо объединить eth0 и wlan0.

Или eth0.1 тоже убрать? Но ведь без 802.1Q порты вообще работать не будут, разве нет?

wan зона файервола не нужна

Текущий сетап (дефолт):

Zone → ForwardingsInputOutputForwardMasquerading
lanwanacceptacceptaccept
wanREJECTrejectacceptreject

В последней разрешить всё и убрать masquerading. Так?


За краткое и ёмкое изложение отдельное спасибо. (=

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

давай вернёмся по нити беседы чуть назад

Не вижу смысла.

если б тебе нужно было

А давай ты не будешь мне рассказывать что я должен делать. Если мне понадобится мнение диванного аналитика, я обязательно тебя позову (когда рак на горе свистнет).

У клиентов дефолтный маршрут должен быть до роутера

Он конечно же появится магическим образом, ага. xD

mord0d ★★★★★
() автор топика