2011-07-29 7 views
2

저는 네트워크 장치에 관한 다양한 정보를 수집하는 Java 응용 프로그램을 만들고 있습니다. 이 모든 장치는 네트워크 보루 뒤에 있으며 JSch를 사용하여 필요에 따라 원격 장치에 TCP 터널을 생성합니다. 이것은 TCP 기반의 TL1과 같은 프로토콜에 적합합니다. 그러나 나는 SNMP 데이터도 수집해야 할 필요가 있음을 깨닫는다.ssh를 통해 udp를 터널링하는 방법은 무엇입니까?

내가 액세스 할 수있는 요새 서버는 다소 오래되었고 제한되어 있으며 거기에 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을 열고 열어야합니다.

관련 문제