У меня следующая установка. Приложение на машине 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
?
Спасибо!