Существует два независимых потока пакетов - один для исходных пакетов из локальной сети, а другой для инкапсулированных пакетов в глобальную сеть.
Например, клиент локальной сети пытается связаться с удаленным хостом через VPN:
- Исходный пакет проходит через FORWARD и пересылается из
eth1 в tun0 , где он используется OpenVPN.
- OpenVPN отправляет новый пакет "VPN", который проходит через OUTPUT и отправляется с межсетевого экрана на
eth0 .
То же самое для ответов от VPN к локальной сети:
- Пакеты VPN принимаются по
eth0 , проходят через INPUT и принимаются OpenVPN на межсетевом экране.
- Декапсулированные "оригинальные" пакеты выглядят так, как если бы они были получены через
tun0 , и снова проходят через FORWARD к eth1 .
Что касается iptables, то tun0 - это обычный сетевой интерфейс, который подключен к еще одной сети - он ничем не отличается от, например, физического подключения eth2 с помощью очень длинного кабеля.