есть узел R1 с ip 17.12.1.1; он соединен с узлом R2 через интерфейс с ip 17.12.1.2; узел R2 соединяется с узлами R3 (ip 17.12.2.2) и R4 (17.12.3.2) через интерфейсы с ip 17.12.2.1 и 17.12.3.1 соответственно. У узла R3 есть выход в другую сеть, интерфейс этого выхода имеет ip 17.12.4.1; Аналогичный интерфейс есть и у R4, его ip 17.12.5.1; Как мне подсказали, описанная выше топология похожа на топологию сети с двумя провайдерами. Необходимо на 1 узле пинговать 17.12.5.1 (это 4 узел), до 4 узла request должен дойти, а вот reply должен вернуться в 3 узел. Причем первый узел от 3 (от ip 17.12.2.2) должен получить ttl exceeded. Уже третий день не могу настроить перенаправление пакетов согласно требованиям. в R2 добавлял:
ip ro add default via 17.12.2.2 table 103
ip rule add from 17.12.5.1 table 103
по идее все пакеты, приходящие с IP 17.12.5.1 должны идти по этому правилу на 3 узел. Но почему-то они вообще не доходят до 4 узла. После 2 узла их не видно в tcpdump. если же делать перенаправление на 2 узле всех пакетов которые идут на 17.12.1.1:
ip ro add 17.12.1.1 via 17.12.2.2
то тогда с 3 узла не смогу передать ttl exceeded на 1 узел. пробовал с iptables на 2 узле (через enp0s8 соединяется 2 узел с 3):
iptables -t nat -A PREROUTING -s 17.12.5.1 -d 17.12.1.1 -j DNAT —to-destination 17.12.2.2
iptables -A FORWARD -i enp0s8 -j ACCEPT
Ничего не помогает. Возможно, здесь можно обойтись и без iptables, но идей, как это сделать, больше нет.