TUN/TAPインターフェースにパケット(宛先アドレス10.3.0.2
)を書き込むプログラムがあります。
ネットワーク:
Host1|tun0----eth1(10.3.0.1)|-------------------Host2|eth1(10.3.0.2)|
Wiresharkはこれらのパケットをインターフェイスtun0
からキャプチャしますが、インターフェイスeth1
には転送されません。
コマンド:
sysctl -w net.ipv4.ip_forward=1
sysctl -p
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
/etc/init.d/networking restart
/etc/init.d/openvpn restart
タンまたはタップを使用していますか?
リモートホストを同じサブネットに配置する場合は、tunの代わりにtapを使用し、eth1から10.3.0.1を削除して、eth1とtap0の間にブリッジを作成し、10.3.0.1をブリッジインターフェイスに割り当てます。
これはtunよりも少し効率的ではありませんが、VPNホストとローカルネットワーク間の非IPおよびブロードキャストトラフィックを許可します。 (したがって、VPNホストがローカルネット上のDHCPサーバーを使用できるようにするか、必要に応じてアドレスを偽装します)。
VPNホストに個別のネットワークが必要な場合は、トンネル用にアドレスのペアを専用にする必要があり(p2pモードではなくマルチクライアントサーバーモードでopenvpnを使用している場合はさらに多く)、これらのアドレスがtunインターフェースにバインドされ、tunが稼働している。図面には、トンネルのアドレスがありません。
ディストリビューションによっては、ネットワークサービスを再起動すると、iptablesに加えた変更が破棄される場合があります。
2つのインターフェース(tun0とeth0)の間のブリッジを設定する必要があります。ブリッジの設定方法に関するドキュメントを次に示します。
http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge