Я рекомендую пробовать Tunnelier. Чертовски много легче настраивать/управлять.
Проблема заключается в следующем:
Если компьютер находится в подсети 1, я могу проверить связь с ним. Если компьютер находится в подсети 2, я не могу его пропинговать.
Как я могу заставить сервер искать на обоих интерфейсах одну и ту же ранжированную подсеть для определенного IP?
Это невозможно. Не на уровне ядра.
Вы не можете иметь два маршрута в таблице маршрутизации и ожидать, что ядро попробует оба, если вы не укажете что-либо еще, например, какой интерфейс или IP-адрес источника использовать.
Основное правило Практический опыт заключается в следующем: если хост недоступен через интерфейс, НЕ добавляйте маршрут для этого хоста на этом интерфейсе. Хосты не должны быть «умными» или волшебным образом угадывать, какой интерфейс использовать. Если есть маршрут, ядро всегда выбирает этот маршрут, даже если он не работает.
У вас может быть несколько таблиц маршрутизации в зависимости от IP-адреса источника, интерфейса вывода, указанного приложением, или метки, или tos, или многих других параметров, и даже несколько сетевых пространств имен, но в конце, если вы выполните простой "ping 192.168.1.3", ядро выберет только один маршрут в одной из ваших таблиц маршрутизации и будет использовать его.
Даже если Linux имеет техническую возможность циклического перебора маршрута, который следует использовать, он будет делать это для каждого пакета. Если вы используете это, у вас будет потеря 50% пакетов для достижения вашего хоста.
Если вам нужна эта несколько неработающая установка для работы, либо:
Traceroute отправляет последовательность из трех пакетов эхо-запроса протокола управляющих сообщений Интернета (ICMP), адресованных хосту назначения. Значение времени жизни (TTL), также известное как предел скачка, используется для определения промежуточных маршрутизаторов, которые проходят по направлению к месту назначения.