2

У меня есть 2 сервера, каждый из которых имеет 3 сетевых интерфейса. 1 интерфейс ("eno") используется для подключения к Интернету через шлюз, а 2 интерфейса ("ens0", "ens1") используются для непосредственного подключения обоих серверов к точке. Это выглядит как:

    |
   gw
 |    |
S1 == S2

Мне нужно отправить данные из "ens0" в "ens0" и из "ens1" в "ens1" независимо. Когда я пытался сделать это на сервере S2, я обнаружил, что весь трафик проходит через ens0, несмотря на то, что я связываю 2 сокета (C++) с различными интерфейсами. Когда я делаю это на S1, это работает хорошо. Поэтому я проверил «IP-таблицы». Они есть:

S1 (работает правильно):

default via 192.168.1.4 dev eno1 
192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.3 
192.168.2.0/24 dev ens3f0 proto kernel scope link src 192.168.2.1 
192.168.2.0/24 dev ens3f1 proto kernel scope link src 192.168.2.2 

S2 (работает неправильно):

default via 192.168.1.4 dev eno2 proto static metric 100 
default via 192.168.1.4 dev ens3f0 proto static metric 101 
default via 192.168.1.4 dev ens3f1 proto static metric 102 
192.168.1.0/24 dev eno2 proto kernel scope link src 192.168.1.2 metric 100 
192.168.1.4 dev ens3f0 proto static scope link metric 100 
192.168.1.4 dev ens3f1 proto static scope link metric 101 
192.168.2.0/24 dev ens3f0 proto kernel scope link src 192.168.2.3 metric 100 
192.168.2.0/24 dev ens3f1 proto kernel scope link src 192.168.2.4 metric 101 

Таблица для S2 была сгенерирована ОС.

Чтобы исправить проблему, я попытался изменить таблицу IP-адресов S2, как для S1. Я изменил это до состояния:

default via 192.168.1.4 dev eno2 proto static
192.168.1.0/24 dev eno2 proto kernel scope link src 192.168.1.2
192.168.2.0/24 dev ens3f0 proto kernel scope link src 192.168.2.3

Тогда, когда я пытаюсь сделать

sudo ip route add 192.168.2.0/24 dev ens3f1 src 192.168.2.4

Я получил ошибку

RTNETLINK answers: File exists


net.ipv4.ip_forward = 0 for both servers.

Мои вопросы:

1) Почему я не могу добавить последнюю сущность на S2, когда она на S1?

2) Как правильно настроить ip таблицы для того, чтобы оба интерфейса могли работать независимо друг от друга и пересылка трафика для них была невозможна? (Я хочу быть уверен, если я отправлю трафик на определенный интерфейс - он никогда не пройдет через другой).

0