Осторожнее с термином «совместный доступ к Интернету», обычно он включает трансляцию сетевых адресов (в некотором роде NAT ). Я предполагаю, что это не относится к вашей установке.
Вы упоминаете DNS-прокси с адресом 172.16.248.254, но непонятно, как он подключен к сети. Я предполагаю, что сетевая диаграмма подобна этой (, пожалуйста, исправьте, если моя интерпретация неверна):
192.168.1.0/24 172.16.248.0/24 10.0.1.0/24
| | |
Router | | |
192.168.1.1 --| 172.16.248.248 --|-- 172.16.248.223 |
| PC | Device 1 |
|-- 192.168.1.128 | 10.0.1.1 --|
| | |-- 10.0.1.2
| 172.16.248.254 --| | Device 2
| DNS proxy | |
| | |
(Рекомендуется организовывать диаграмму по подсетям ). В частности, DNS-прокси не подключен к маршрутизатору.
Это означает, что вам нужны следующие маршруты:
На ПК:
default via 192.168.1.1 dev eno1
10.0.1.0/24 via 172.16.248.233 dev usb0 # NOT.248 !!
172.16.248.0/24 dev usb0
192.168.1.0/24 dev eno1
На устройстве 1:
default via 172.16.248.248 dev eth1 # NOT.254 !!
10.0.1.0/24 dev usb1
172.16.248.0/24 dev eth1
На устройстве 2:
default via 10.0.1.1 dev usb0
10.0.1.0/24 dev usb0
Вам также необходимо включить переадресацию IP-адресов как на ПК, так и на Устройстве 1 (через echo 1 > /proc/sys/net/ipv4/ip_forward
от имени пользователя root, можно сделать постоянным с помощью sysctl
и т. д., google ).
На данный момент я проигнорирую проблему с macvlan, первый шаг — заставить маршрутизацию работать.
При такой настройке вы сможете отправлять эхо-запросы между ПК, устройством 1 и устройством 2 в любом направлении. Проверьте это. Для отладки запустите tcpdump -ni usb0
и т. д. в новом xterm на всех интересных интерфейсах (, так что четыре из них на всех трех устройствах ). Тогда вы сможете увидеть, куда пропадают ваши пакеты, если что-то не работает. ip route get 1.2.3.4
также может быть полезно узнать, куда, по мнению ядра, должна идти маршрутизация для 1.2.3.4
.