O tap destina-se ao encapsulamento em ponte no OpenVPN - você deve uni-lo a uma ponte como br0 usando brctl .
A idéia é que você pode colocar tap0 e eth0 , por exemplo, em uma ponte br0 . Em seguida, o tráfego de difusão atravessa essa ponte. (O tráfego de broadcast vindo de tap0 será encaminhado para eth0 e vice-versa, enquanto em uma situação padrão roteada não.) Seu túnel OpenVPN via tap0 é então "comutado" para eth0 em vez de " encaminhado "para ele. Todo o br0 obtém um IP e você lida com br0 em vez de eth0 ou tap0 .
Completamente possível ter uma ponte com apenas uma interface e adicionar / remover interfaces adicionais com brctl conforme necessário.
Portanto, coloque tap0 em uma ponte e lide com a interface da ponte, ou use tun interfaces.
Também é possível que iptables regras estejam interferindo.
Atualização - veja aqui: link - particularmente este trecho:
The difference between a tap interface and a tun interface is that a tap interface outputs (and must be given) full ethernet frames, while a tun interface outputs (and must be given) raw IP packets (and no ethernet headers are added by the kernel). Whether an interface functions like a tun interface or like a tap interface is specified with a flag when the interface is created.
Parece que, se você não enviar quadros Ethernet inteiros para tap0, isso não funcionará como esperado por causa disso.