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

записывать в интерфейс tun и перенаправлять трафик на другой компьютер

У меня следующая установка. Приложение на машине A создает IP пакет, который захватывается tun1 интерфейс. Я добавил маршрут с помощью команды:

sudo route add -host 10.129.131.220 tun1.

Затем я прочитал пакеты из tun1 файл-дескриптор и записать в другой UDP клиентский сокет с адресом назначения B. Я могу читать пакеты на B машина. Я проверил с tshark на машине B где tshark показывает следующие типы выходов.

1 0.000000000 10.129.131.170 → 10.129.131.220 UDP 51 34611 → 8080 Len=23 и другие похожие строки.

Теперь я хочу направить эти IP пакетов на машину C (фактическая машина назначения). Я создал tun1 интерфейс в машине B и записываем полученные пакеты на машину B. Пишет удачно и watch -n 1 "ifconfig tun1" показывает RX packets значения увеличиваются.

У меня есть возможность пересылки пакетов в машине B установив

echo 1 > /proc/sys/net/ipv4/ip_forward

Мой вопрос: как правильно добавить правило переадресации на машине? B так что IP packets направляются к машине C без добавления еще IP заголовок. Я думаю писать в tun1 устройство (на B) снова может сделать свою работу. Но как проехать от tun1 к eth0?

Обновить :

Один из способов переадресации - работа с rp_filter выключено.

Теперь, как маршрутизировать пакеты нисходящего канала с машины C к A через B?

Спасибо!