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

Как перенаправить трафик, отправленный на тап, на определенный IP-адрес

Я создал устройство для крана, используя следующие команды:

sudo ip tuntap add mode tap tap7
sudo ip link set tap7 up
sudo ip addr add 77.0.0.1/24 dev tap7

Теперь я использую программирование сокетов C ++ для записи пакетов в tap7 и я могу захватывать их с помощью wirehark, когда он слушает tap7 интерфейс.
Мне нужно создать правило, чтобы любой пакет, записанный в tap7 должен быть перенаправлен на ip 127.0.0.1.

Я пробовал следующие команды:

sudo iptables -A PREROUTING -t nat -i tap7 -j DNAT --to 127.0.0.1
sudo iptables -A INPUT -i tap7 -j ACCEPT

Однако, когда я слушаю wirehark, я все еще вижу, что пакеты захватываются на tap7 и не захвачен из lo устройство. Кто-нибудь знает почему?

Вам необходимо включить route_localnet sysctl для tap7 интерфейс. Вы сможете сделать это с помощью sysctl -w net.ipv4.conf.tap7.route_localnet=1 команда, в зависимости от вашего дистрибутива.

route_localnet - BOOLEAN
    Do not consider loopback addresses as martian source or destination
    while routing. This enables the use of 127/8 for local routing purposes.
    default FALSE

Дополнительная (краткая) информация о последствиях для безопасности route_localnet можно найти в эта тема

Надеюсь это поможет