Я не знаю, почему утилиты bridge -имеют это известное ограничение, которое вас кусает. Хотя некоторые могут предпочесть знакомый инструмент brctl, по крайней мере, в вашем случае я бы посоветовал попробовать более новые инструменты iproute2, задокументированные на той же вики-странице Arch , на которую вы ссылались. В вашем случае:
ip link add name br0 type bridge
ip link set br0 up
ip link set enp10s0 up
ip link set enp10s0 master br0
У меня нет более глубоких знаний, но я считаю, что по крайней мере некоторые из инструментов iproute2 используют более новые интерфейсы ядра, чем старые инструменты, такие как утилиты моста -. Если вышеизложенное работает для вас там, где brctl не работает, я подозреваю, что причина в этом.
Маршрут default
используется для машин, не входящих в вашу локальную сеть (, то есть для доступа в Интернет ).
У вас есть два default
маршрута, что немного сбивает с толку, потому что вы говорите, что у вас есть два разных способа доступа в Интернет.
Я предполагаю, что один из них неверен, и, возможно, 10.1.22.1
не действует как Интернет-шлюз, поэтому вы не можете получить доступ к Интернету.
Думаю, решение состоит в том, чтобы удалить этот маршрут и оставить только один маршрут по умолчанию со шлюзом, обеспечивающим доступ в Интернет.
Если вы по-прежнему хотите пинговать хосты на 10.0.0.0/8, но за пределами сегмента локальной сети (10.1.22.0/24 ), задайте в качестве адресата шлюза 10.0.0.0/8, а не default
, поэтому по этому маршруту проходит только трафик для сети 10.0.0.0/8 (, а не интернет-трафик ).
Вам следует удалить маршрут по умолчанию на интерфейсе eth0
или, по крайней мере, использовать более высокое значение метрики, чем на интерфейсе, который вы хотите использовать для выхода в Интернет. Теперь у вас есть два конкурирующих маршрута по умолчанию, и ваш RPi выбирает неправильный интерфейс для маршрутизации пакетов на локальные адреса, отличные от -.
Также в вашем вопросе :есть нестыковка, в тексте вы упоминаете локальную сеть 10.0.0.0/8
, но таблица маршрутизации имеет маску сети 255.255.255.0
, т.е. 10.0.0.0/24
.
Наконец-то я завершил настройку, добавив больше маршрутов в /lib/dhcpcd/dhcpcd -и добавив 40 -файлов маршрутов с содержимым
ip route add 10.0.0.0/8 via 10.1.22.1
и добавление дополнительных строк в /etc/dhcpcd.conf
interface wlan0
metric 100
interface eth0
metric 200
Теперь я могу пропинговать обе локальные сети. Еще один вопрос: на шлюзе 192.168.10.1 на самом деле также есть IP-адрес 10.0.0.0/8. Итак, как мы можем разделить, например, IP-адрес, начиная с 10.0.0.1 до 10.0.0.21, должен идти от шлюза 10.1.22.1, а начиная с 10.0.0.22 до 10.254.254.254 будет идти к шлюзу от 192.168.10.1. шлюз 192.168.10.1 также имеет доступ в интернет. но 10.1.22.1 нет интернета (просто используется для шлюза сервера voip ).