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


10

Скажімо, я хочу створити внутрішню мережу з 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 коробці для кожної підмережі з двома інтерфейсами, 10.0.x.1 та 192.168.0.x. Вони функціонують як пристрої шлюзу для кожної підмережі. Буде кілька хостів для кожної підсети 10.x / 24. Інші хости матимуть лише 1 інтерфейс, доступний як 10.0.xx

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

Відповіді:


8

Отже, у вас є п'ять мереж 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вище команди не роблять налаштування стійкими, як це зробити, залежить від розподілу.

Як я вже говорив, я цього не перевіряв і, можливо, щось забув.


Дякуємо за допомогу тут. Те, що ви порадили, працює, коли я пингую маршрутизатор до маршрутизатора (10.0.1.1 - 10.0.2.1), але не тоді, коли я пингую іншого хоста. Наприклад, pinging від 10.0.1.1 до 10.0.2.2 призводить до відсутності трафіку на хост 10.0.2.2. Ви б запропонували якось зробити маніпуляції з iptables? Я експериментував з цим пару днів, але безрезультатно.
сіра лінія

Стандартних методик маршрутизації повинно бути достатньо. Ось контрольний список: 1. усі адреси повинні бути встановлені на хостах (наприклад, ip addr add 10.0.2.2/24 dev eth0), 2. маршрути повинні бути встановлені на чотирьох полях маршрутизатора, як зазначено вище, 3. маршрут за замовчуванням на полях без маршрутизатора слід встановити так, щоб вказувати на поле маршрутизації в мережі (наприклад, ip route додати за замовчуванням через 10.0.1.1), 4. cat / proc / sys / net / ipv4 / ip_forward на чотири поля маршрутизатора повинні друк "1".
Йохан Мірен

Я виправив помилку в командах ip route вище. Я також перевірив цю установку, хоча лише з чотирма машинами: двома полями маршрутизації та двома хостами на сторонах 10.0.x.0. Це працює!
Йохан Мірен

Йохан, дякую за ваш додатковий внесок. Ця установка працює. Виявляється, зображення, яке я використовував, мали правила iptables за замовчуванням, які були проблематичними. Дякую, що допомогли мені дізнатися про це.
greyline
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.