0

tun インターフェイスについて質問したいのですが、OpenVPN はありません。

トラフィックをトンネリングする 2 つのアプリケーションがあります。「sgsn ユーザー空間アプリ」は tun インターフェイス「tun sgsn」から IP パケットを読み取り、それらを「ggsn ユーザー空間アプリ」に送信し、このアプリはそれらを「tun ggsn」に書き込みます。他の方法でも機能するため、ssh セッションを機能させたり、ファイルをコピーしたりできます。

したがって、パケットは次のようになります。

scp クライアント --> sgsn tun インターフェース ---> アプリを介したトンネリング -----> ggsn tun インターフェース (ここにドロップ) ----------> sshd

今、IPv4 で試してみましたが、動作しますが、IPv6 に切り替えると、IP パケットは「tun ggsn」に書き込まれ、IP スタックはそれを破棄します。dropwatch で見たことがあります。これは、破棄が ip_rcv+c0 にあることを示しています。

ルートは正しい必要があります。そうしないと、そもそもパケットが tun_sgsn に到達しないからです。

CentOS 6.7 と 7.1 の両方でこれを試しましたが、結果は同じでした。ただし、7.1 ではホストが 1 つしかないため、ip6tables を使用して NAT アドレスにいくつかのトリックを実行し、各ユーザー空間アプリ (scp および sshd) からのトラフィックが tun インターフェイスを通過するようにしました。最初からわかりやすいように言っているのですが、6.7 では 2 台のマシンがあり、NAT はありません (IPv6 の CentOS 6.7 では NAT が機能しないことは承知しています)。tun ggsn インターフェイスで tcpdump を使用しましたが、IPv6 データグラムは問題ないようです。

別のヒント: tun_ggsn インターフェースに直接 scp すると動作しますが、同じマシンにいるということは IP パケットが TCP/IP スタックを下らないことを意味するため、tun ドライバーで何も破棄されないと思います。 tun ドライバーに到達します (実際、これを行った場合、tcpdump はパケットをキャプチャしません)。

事前にどうもありがとうございました。

4

0 に答える 0