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

Пересылать IP-пакеты на туннельное устройство

Я создал туннельное устройство, используя

ip tuntap добавить dev режим tun0 tun пользователь 0 группа 0

Затем я назначаю ему IP-адрес 192.168.0.1/22

ifconfig tun0 192.168.0.1 сетевая маска 255.255.252.0

На моем Ethernet-устройстве eth0 я получаю пакеты от машин в диапазоне IP-адресов 192.168.1.2-192.168.1.5. Я хочу, чтобы эти пакеты пересылались на туннельное устройство. Я не хочу создавать мост между Ethernet и туннельным устройством. Поэтому я добавил следующие записи маршрутизации в таблицу маршрутизации.

ip правило добавить из 192.168.1.0/24 поиск myinternal

ip route добавить по умолчанию через 192.168.0.1 dev tun0 table myinternal

Я очистил (удалил) все записи таблиц IP. Однако есть две записи

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

Когда я выполняю tcpdump на tun0, я не могу видеть пакеты от eth0. Однако я могу видеть пакеты, когда делаю tcpdump на eth0. Я хотел бы знать, как я могу пересылать / захватывать эти пакеты на tun0. Из tun0 я позже хотел бы обрабатывать эти пакеты и отвечать на них из моего приложения и, если потребуется, передать их другому интерфейсу. Я не могу использовать eth0 для своей деятельности.

Я включил пересылку с использованием systl для ipv4.

кошка / proc / sys / net / ipv4 / ip_forward

1

Кроме того, в моей основной таблице маршрутизации нет записи маршрута по умолчанию.

Я знаю, что прошло шесть лет, но на случай, если кто-то столкнется с подобной проблемой: это звучит как фильтр обратного пути 'rp_filter' падение трафика.

По ссылке:

  • log rp_filter потерял трафик:

эхо 1> / proc / sys / net / ipv4 / conf / (имя интерфейса) / log_martians

  • отключить rp_filter:

echo 0> / proc / sys / net / ipv4 / conf / (имя интерфейса) / rp_filter