web-dev-qa-db-ja.com

TUN / TAP転送を有効にするにはどうすればよいですか?

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
3
rafal

タンまたはタップを使用していますか?

リモートホストを同じサブネットに配置する場合は、tunの代わりにtapを使用し、eth1から10.3.0.1を削除して、eth1とtap0の間にブリッジを作成し、10.3.0.1をブリッジインターフェイスに割り当てます。

これはtunよりも少し効率的ではありませんが、VPNホストとローカルネットワーク間の非IPおよびブロードキャストトラフィックを許可します。 (したがって、VPNホストがローカルネット上のDHCPサーバーを使用できるようにするか、必要に応じてアドレスを偽装します)。

VPNホストに個別のネットワークが必要な場合は、トンネル用にアドレスのペアを専用にする必要があり(p2pモードではなくマルチクライアントサーバーモードでopenvpnを使用している場合はさらに多く)、これらのアドレスがtunインターフェースにバインドされ、tunが稼働している。図面には、トンネルのアドレスがありません。

ディストリビューションによっては、ネットワークサービスを再起動すると、iptablesに加えた変更が破棄される場合があります。

3
b0fh

2つのインターフェース(tun0とeth0)の間のブリッジを設定する必要があります。ブリッジの設定方法に関するドキュメントを次に示します。

http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge

1
polynomial