Здравствуйте
Весь интернет обыскан безрезультатно, провайдер отказывается помогать, надежда только на ЛОР.
Прошу совета по маршрутизации в домашней сети. Сеть устроена так:
Роутер провайдера
|
|
|
Мой свич
/\
/ \
| \
Комп \
+ \
вайфай \
. Гаджет 2
.
.
Гаджет 1
Своего роутера нет, его функции выполняет компьютер с линуксом, раздавая DHCP-адреса в локалке (dnsmasq) и в беспроводной сети (hostapd и тоже dnsmasq). Сетевая карта в компьютере одна.
Всё работало до тех пор, пока не возникла необходимость сделать так, чтобы проводные и беспроводные гаджеты были в единой локальной сети. Насколько я понимаю, для этого нужен мост (bridge).
Проблема в том, что сетевая карта одна, и я не понимаю, как организовать, чтобы она одновременно была и частью моста со статическим IP и независимым устройством, получающим адрес по dhcp от провайдера.
Пока у меня вот такое в /etc/network/interfaces
iface eno1 inet manual
iface wlp3s0 inet manual
iface br0 inet static
bridge_ports eno1 wlp3s0
address 172.16.6.1
netmask 255.255.255.0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -A FORWARD -s 172.16.6.0/24 -j ACCEPT
post-up iptables -A FORWARD -d 172.16.6.0/24 -j ACCEPT
post-up iptables -t nat -A POSTROUTING -s 172.16.6.0/24 -j MASQUERADE
iface eno1 inet dhcp
Обратите внимание на два интерфейса на eno1.
Если я поднимаю сначала eno1, а затем br0, поначалу всё работает прекрасно: все устройства видят друг друга и не имеют затруднений с интернетом. Через какое-то время по неизвестной причине интернет пропадает (отовсюду, включая компьютер-роутер), пакеты не ходят за пределы локалки. Сама локалка продолжает работать. В логах никаких особых сообщений не видно.
Если я поднимаю сначала br0, а затем eno1, то попадаю сразу во вторую часть: интернета нет, а локалка работает.
Я читал что-то про vlan, но, кажется, это не то, что мне поможет.
Я пробовал использовать алиасы (eno:0, eno:1), но, по-моему, с ними всё работает так же, как без них.
Что происходит и как это починить?