2

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

eth1
inet адрес:192.168.10.253
Bcast:192.168.255.255
Маска:255.255.0.0

eth2
inet адрес:10.10.10.253
Bcast:10.10.10.255
Маска:255.255.255.0

Иметь одну внутреннюю рабочую машину с шлюзом 192.168.10.253 и ip из этой подсети, а другую - с шлюзом 10.10.10.253 и ip из его подсети. Мне нужно иметь возможность доступа между этими машинами.

На коробке Linux у меня есть следующая таблица маршрутизации:

default via * dev eth0
10.10.10.0/24 dev eth2  proto kernel  scope link  src 10.10.10.253
* dev eth0  proto kernel  scope link  src *
192.168.10.0/16 dev eth1  proto kernel  scope link  src 192.168.10.253

Я добавил статический маршрут:

добавление маршрута -net 10.10.10.0 маска сети 255.255.255.0 gw 192.168.10.253

и результат

10.10.10.0/24 через 192.168.10.253 dev eth1 scope link

но когда я пытаюсь пропинговать из eth1 работающий интерфейс 10.10.10.2, он всегда делает целевой хост недоступным. Что мне не хватает в конфигурации?

Базовая настройка показана здесь:

Когда я пинг от eth1

ping 10.10.10.2 -I eth1
PING 10.10.10.2 (10.10.10.2) from 192.168.10.253 eth1: 56(84) bytes of data.
From 192.168.10.253 icmp_seq=1 Destination Host Unreachable

и когда я пинг с eth2:

ping 10.10.10.2 -I eth2
PING 10.10.10.2 (10.10.10.2) from 10.10.10.253 eth2: 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=0.547 ms

2 ответа2

1

Согласно диаграмме вашей сети, нет физического соединения между устройством 192.168.10.253 и сетью 10.10.10.0/24 поэтому на Земле нет никакого способа получить ответ, когда вы пропингуете 10.10.10.2 из eth1 . Единственный способ успешно выполнить ping 10.10.10.2 - это запрос ping выйти из eth2 .

Если вам действительно нужно это для работы, решение состоит в том, чтобы подключить 192.168.10.253 к 10.10.10.2 и создать маршрут. Как вы это сделаете, зависит от характера двух коробок. Если они являются серверами, у них может быть второй сетевой порт, который вы можете подключить (и настроить соответствующим образом). Если у них нет второго сетевого интерфейса, то вам, вероятно, не повезло, если вы полностью не изменили свою сетевую конфигурацию. Мое предложение, поскольку у вас, вероятно, есть небольшая проблема XY, это опубликовать новый вопрос, описывающий то, что вам нужно достичь, а не то, как вы пытаетесь достичь этого.

0

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

iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

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

Это все.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .