Маршрутизация между несколькими подсетями

Маршрутизация между несколькими подсетями

Допустим, я хочу создать внутреннюю сеть с 4 подсетями. Центрального маршрутизатора или коммутатора нет. У меня есть «подсеть управления», которая связывает шлюзы во всех четырех подсетях (192.168.0.0/24). Общая схема будет выглядеть так:

10.0.1.0/24 <-> 10.0.2.0/24 <-> 10.0.3.0/24 <-> 10.0.4.0/24

На словах я настраиваю один linux box в каждой подсети с 2 интерфейсами, 10.0.x.1 и 192.168.0.x. Они функционируют как шлюзовые устройства для каждой подсети. Будет несколько хостов для каждой подсети 10.x/24. Другие хосты будут иметь только 1 интерфейс, доступный как 10.0.xx

Я хочу, чтобы каждый хост мог пинговать друг друга в любой другой подсети. Мой вопрос, во-первых: возможно ли это. И во-вторых, если да, мне нужна помощь в настройке iptables и/или маршрутов. Я экспериментировал с этим, но смог придумать только решение, которое позволяет пинговать в одном направлении (пакеты icmp — это только пример, в конечном итоге мне нужны полные сетевые возможности между хостами, например ssh, telnet, ftp и т. д.).

решение1

Хорошо, у вас есть пять сетей 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24и 192.168.0.0/24, и четыре ящика маршрутизации между ними. Допустим, ящики маршрутизации имеют адреса 10.0.1.1/192.168.0.1, 10.0.2.1/192.168.0.2, 10.0.3.1/192.168.0.3, и 10.0.4.1/192.168.0.4.

Вам нужно будет добавить статические маршруты к другим 10.0.x.0/24сетям на каждом маршрутизаторе с помощью команд вроде этой (ОТРЕДАКТИРОВАНО!):

# on the 10.0.1.1 box
ip route add 10.0.2.0/24 via 192.168.0.2
ip route add 10.0.3.0/24 via 192.168.0.3
ip route add 10.0.4.0/24 via 192.168.0.4

и соответствующие маршруты на других маршрутизаторах. На немаршрутизирующих устройствах с одним интерфейсом установите маршрут по умолчанию, указывающий на 10.0.x.1. Конечно, вам также придется добавить статические адреса и маски сетей на всех интерфейсах.

Также обратите внимание, что Linux по умолчанию не работает как маршрутизатор, вам необходимо включить пересылку пакетов с помощью:

echo 1 > /proc/sys/net/ipv4/ip_forward

Приведенные выше команды ipне делают настройки постоянными, как это сделать, зависит от дистрибутива.

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

решение2

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

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

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

Связанный контент