Как настроить 2 шлюза в ОС Debian или Linux?

Я не знаю, почему утилиты 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 не работает, я подозреваю, что причина в этом.

1
18.01.2021, 03:59
3 ответа

Маршрут 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 (, а не интернет-трафик ).

0
18.03.2021, 22:36

Вам следует удалить маршрут по умолчанию на интерфейсе eth0или, по крайней мере, использовать более высокое значение метрики, чем на интерфейсе, который вы хотите использовать для выхода в Интернет. Теперь у вас есть два конкурирующих маршрута по умолчанию, и ваш RPi выбирает неправильный интерфейс для маршрутизации пакетов на локальные адреса, отличные от -.

Также в вашем вопросе :есть нестыковка, в тексте вы упоминаете локальную сеть 10.0.0.0/8, но таблица маршрутизации имеет маску сети 255.255.255.0, т.е. 10.0.0.0/24.

0
18.03.2021, 22:36

Наконец-то я завершил настройку, добавив больше маршрутов в /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 ).

0
18.03.2021, 22:36

Теги

Похожие вопросы