Назад | Перейти на главную страницу

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

У меня есть Linux-система с двумя сетевыми адаптерами, каждая из которых подключена к разной локальной сети:

Роутеры бывают:

Сетевые карты Linux:

Я хочу, чтобы все хосты в сети A могли пинговать все хосты в сети B и наоборот.

Что я уже сделал:

В коробке с Linux: sudo sysctl -w net.ipv4.ip_forward=1

На 192.168.1.1: route add 192.168.2.0 255.255.255.0 gw 192.168.1.2

На 192.168.2.1: route add 192.168.1.0 255.255.255.0 gw 192.168.2.2

Я пробовал это с двумя разными дистрибутивами Linux (Zentyal и Ubuntu), и ничего не работало.

Хосты в сети A могут только пинговать 192.168.2.2, но не может пинговать ни один из других хостов в сети B и наоборот. Что я делаю не так?

Вам следует настроить следующие статические маршруты:

На 192.168.1.1 роутер:

192.168.2.0/24 next hop 192.168.1.2

На 192.168.2.1 роутер:

192.168.1.0/24 next hop 192.168.2.2

Таким образом, другие компьютеры в этих сетях отправляют пакеты на свой шлюз по умолчанию (.1), который затем использует свою запись в статической таблице маршрутизации для пересылки пакета в ящик Linux, который затем пересылает пакет в другую сеть.

Если я правильно понял, у вас есть такая сеть:

+-------+       +----------+       +-----------+       +----------+       +-------+
| LAN A | <---> | Router A | <---> | Linux Box | <---> | Router B | <---> | LAN B |
+-------+       +----------+       +-----------+       +----------+       +-------+

Итак, это правда:

  • Для всех хостов в LAN A шлюз по умолчанию настроен на 192.168.1.1;
  • Для всех хостов в LAN B шлюз по умолчанию настроен на 192.168.2.1;

Дело в том, что ни хосты в LAN A, ни хосты в LAN B не знают о существовании другой сети, поэтому они отправят пакет на шлюз по умолчанию. Если шлюз по умолчанию знает это и имеет путь к нему, они воспользуются им. Итак, в основном, что вам нужно сделать, это создать эти маршруты в своих маршрутизаторах или изменить шлюз по умолчанию для ваших хостов на Linux Box. Вам следует перейти ко второму варианту, если на ваших маршрутизаторах нет возможности создавать статические маршруты или у вас просто нет к ним доступа.

Если я ошибся, уточните, пожалуйста, немного ...

Ця!

Вы должны установить маршруты для отдельных ящиков в других сетях. Так, например, на 192.168.1.14 вам нужно route add 192.168.2.0 255.255.255.0 gw 192.168.1.2.

Если две ваши сети предназначены для прямого подключения к Linux Box, вам следует добавить маршруты на каждом хосте (и при необходимости настроить шлюз по умолчанию).

Если сети подключены к маршрутизаторам, подключенным через Linux Box, вы должны настроить для каждого хоста его правильный шлюз (маршрутизатор 1 или 2) и настроить маршруты в каждом маршрутизаторе.

Вам следует проверить, блокирует ли Linux Box и ICMP-трафик.