Что именно происходит с пакетами, записанными на устройство TUN/TAP?

Что именно происходит с пакетами, записанными на устройство TUN/TAP?

Я пытаюсь отправить пакеты приложению, прослушивающему eth0, из пользовательского пространства машины, как будто они поступают с удаленной машины.

Чего я, похоже, не могу найти, так это хорошей документации, так это того, как именно устройство TUN/TAP взаимодействует с остальной частью сетевого стека? Пересылаются ли пакеты на eth0, если они привязаны к удаленному хосту? Будут ли пакеты, адресованные для локального хоста, пересылаться в приложение пользовательского пространства по умолчанию? На каких этапах пакеты появляются в ядре относительно стека Netfilter?

Поведение, похоже, не очень хорошо документировано (http://openvpn.net/archive/openvpn-users/2005-05/msg00224.html,https://www.kernel.org/doc/Documentation/networking/tuntap.txt)).

решение1

Устройство tun tap выглядит для ядра тем же самым, что и раньше, поскольку оно не может определить, поступают ли данные из провода, подключенного к интерфейсам ethernet, или из пользовательского приложения. Когда данные записываются, они пересылаются в пользовательское приложение, а не на физическое интерфейсное устройство, например, eth0

Интерфейс, на который пересылается пакет, будет основан на таблице маршрутизации, которую вы можете просмотреть с помощью ip routeили netstat -r. Это также будет применяться к пакетам, адресованным для локального хоста.

Кроме того, интерфейс TUN/TAP также может использоваться в качестве интерфейса для маршрута, который отображается в таблице маршрутизации.

Связанный контент