2011-07-29 11 views
2

私は、ネットワークデバイスに関するさまざまな情報を収集するJavaアプリケーションを開発しています。これらのデバイスはすべてネットワークの要塞の背後にあり、JSchを使用してオンデマンドでリモートデバイスへのTCPトンネルを作成します。これはTCPベースのTL1のようなプロトコルでうまく動作します。しかし、私は自分自身もSNMPデータを収集する必要があると感じています。udpをsshでトンネルするにはどうしたらいいですか?

私がアクセスできる要塞サーバーはかなり古く、限られています。そこにはSNMPプロキシを構築するオプションがありません。私の質問は、コミュニティが必要に応じてプログラムでトンネルを確立するきれいで信頼できる方法を知っているかどうかです。私はthis oneのような解決策を見てきましたが、私は何千もの可能なIPアドレスを持っているので、手動の一度限りの方法は不可能です。必要な場合は、堅牢なSNMPプロキシを実行できるサーバーを用意しますが、その戦いに勝つ前に他の方法はないことを知る必要があります。

答えて

3

SSHプロトコルには、UDP転送には何も含まれていません。

SSHサーバー側でUDPパケットを送信し、送信されたプログラムを受信するプログラムを実行する必要があります。

SNMPの詳細はわかりませんが、簡単な場合はexecチャネルでnetcatまたはsocatを開始し、標準入力/標準出力でパケットを送信するだけです。

私はこのような何かを行うことができたとします

netcat -u server 161 

またはsocatと:

socat STDIO UDP:server:161 
0

UDP転送するには、次の操作を行い、現在のマシンに3200:サーバーを

socat SYSTEM:"ssh server socat - udp\:127.0.0.1\:3200" udp-l:3200,fork,reuseaddr 

トンネルを使用する前に、surver上のudpポート3200を開いてリスンする必要があることに注意してください。

関連する問題