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

Маршрутизация в linux с двумя сетевыми адаптерами

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

принципиальная схема

У меня проблема с выполнением этой задачи. Я не могу пинговать из linux box 10.0.1.2 на хост, подключенный к сети 192.168.0.0

Я могу пинговать с маршрутизатора linux хост в сети 192.168.0.0, пример 192.168.0.200 или 192.168.0.1

Я могу пинговать с маршрутизатора linux хост в сети 10.0.1.0, пример 10.0.1.2 и, конечно же, 10.0.1.1

Из окна Linux я могу пинговать маршрутизатор Linux 10.0.1.1 и 192.168.0.204 (обе сетевые карты в одном ящике), но я не могу пинговать, например, 192.168.0.200 или 192.168.0.1

Маршрутизатор Linux имеет две сетевые карты enp0s3 -> 192.168.0.204 IP назначается с интернет-маршрутизатора через dhcp, вторая карта enp0s8 имеет статический IP 10.0.1.1/24

маршрутизатор linux:

1: enp0s3: 
    inet 192.168.0.209/24 brd 192.168.0.255 scope global dynamic enp0s3
 
2: enp0s8:
    inet 10.0.1.1/24 scope global enp0s8

список IP-маршрутов:

default via 192.168.0.1 dev enp0s3 
10.0.1.0/24 dev enp0s8 proto kernel scope link src 10.0.1.1 
169.254.0.0/16 dev enp0s3 scope link metric 1000 
192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.209 

В Linux-боксе сетевая карта enp0s3 -> статический IP 10.0.1.2/24

коробка linux:

1: enp0s3:
    inet 10.0.1.2/24 scope global enp0s3

список IP-маршрутов:

10.0.1.0/24 dev enp0s3 proto kernel scope link src 10.0.1.2 
192.168.0.0/24 via 10.0.1.1 dev enp0s3 

ПРИМЕЧАНИЕ. Я сделал это как в маршрутизаторе Linux, так и в Linux.

vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

Я хотел бы добиться этого с помощью маршрутизации, а не с помощью nat iptables или чего-то еще.

Если вы не хотите использовать NAT для этого, тогда все устройства должны иметь записи маршрутизации для всех остальных. Скорее всего, проблема в вашем случае заключается в том, что компьютеры в 192.168.0.0 в подсети нет записи маршрутизации для 10.0.1.0/24. Я предполагаю, что компьютер с IP-адресом 192.168.0.200 имеет две записи в таблице маршрутизации:

  1. Запись по ссылке для 192.168.0.0/24 подсеть
  2. И маршрут по умолчанию через 192.168.0.1

Итак, когда вы пингуете 192.168.0.200 из 10.0.1.2, пакеты могут достигать целевого сервера, но когда он пытается ответить, он направляет ответ в другом направлении - через 192.168.0.1, единственный маршрут, который он знает для адресов, не связанных с подключением, которые, конечно, никогда не достигают пункта назначения.

Если вы добавите маршрут для 10.0.1.0/24 к серверам в 192.168.0.0/24 подсеть, наверное, заработает.