모바일(LTE)로 Trap 이나 ping이 안되는 이유

안녕하세요? 지난번에 도움 많이 받았는데 새로운 문제가 있어 질문을 다시 올립니다.
이건 살짝 개념적인 부분일 수도 있어 새로 작성해요 ^^;;

현재 스마트폰(LTE)와 장비는 SNMP GET/SET 모두 잘 되고 있습니다.
그러니까 서로 메세지 주고받는건 잘 되는데
장비에서 보내는 TRAP이 모바일에 안 들어오는 것 같아요
분명 같은 루틴으로 펌웨어는 잘 동작하고 있는것 같은데 말이죠
(포트 문제는 아니지 않나 싶어요 wifi 모드일땐 잘 가거든요…)

일단 현상태에서 모바일(LTE)과 GET/SET이 되니 요기서 해답을 찾을 수 있지 않을까해서요…
WIZNET IC에서 GET이나 SET에 대한 응답을 할때
어떤과정을 거쳐서 모바일로 보내나요?
혹시 wiznet ic는 메세지를 보내는 대상에 대한 어떤 정보를 갖고있는건지…?

질문이 딱 부러지지 않아서 죄송해요 ㅠ
도움 부탁드리겠습니다 ㅠ

음… 일단

저희 ic에서는 get이나 set에 대한 응답을 해주지 않습니다.
저희 ic에서는 TCP/UDP단 OSI 계층 중 전송층까지의 프로토콜이 구현되어있구요 그 상위 application의 경우 예를 들어 http, snmp, dhcp, dns등의 프로토콜들은 펌웨어 예제로 제공하고 있는 부분입니다.

일단 사용하고 있는 펌웨어 예제가 저희 것을 사용하는지를 먼저 알려주셔야할 것 같고 저희 것이아니라면 어떤 프로세스에 의해 응답하는지 코드를 보기전엔 알 수 없습니다.

음 SNMP를 예로 들어보면 SNMP 패킷이 WIZNET W5200에 도착합니다 그러면 W5200에서는 TCP헤더부분까지 알아서 처리해주고 UDP 데이터를 MCU에게 올려주게 됩니다.(UDP socket으로 setting시 이렇게 동작) 그이후 MCU에서는 그 데이터를 받아 직접 처리하게 됩니다. 따라서 UDP프로토콜 위로 올라가는 application단의 protocol의 경우에는 firmware에 기술되어 있는 것이죠.
보낼때도 마찬가지입니다. firmware에서는 SNMP 프로토콜에 맞춰 tcp data를 만들어 W5200에게 던집니다. 그러면 W5200이 UDP 아래단의 과정을 수행해 네트워크로 패킷을 보내는 것입니다.

다른 패킷이 전달되는데 특정 패킷이 전달이 안되고 있다면 해당 패킷을 wireshark와 같은 네트워크 프로토콜 분석기를 통해 패킷을 잡아서 분석을 해볼 수 있습니다. 내가 의도한대로 패킷이 나가는지 확인을 해보아야합니다.

또한 UDP 프로토콜의 경우 패킷에 대한 신뢰성을 보장하지 않습니다. 받는 쪽에서 받을 수 없는 상황이라면 버릴수도 있는 것이죠…

결국 제대로 보내는데 안받는건지 제대로 안보내서 못받는 것인지 확인을 해봐야합니다.

답변 감사합니다
말씀하신것처럼 와이어샤크로 보면 쉽게 알 수 있을 것도 같은데
문제는 장비 vs 모바일이라 와이어샤크로 볼 수가 없네요 ㅠ_ㅠ (혹시 요것도 방법이 있다면 알려주셔용 ㅋㅋ )
조금 구체적으로 들어가면
폰의 IP를 찾아가는 과정이 궁금한 거랄까요

GET/SET 으로 통신을 하나,
Trap을 보내나 둘 다 UDP를 보내는 과정은 동일한데
폰을 wifi를 쓰면 trap 수신이 되고 LTE로는 안되니깐 (같은 1024 포트)
혹시 폰의 IP를
GET/SET일 때는 폰의 네트웍 정보를 받아 갖고 있다가 응답하는데
Trap은 그냥 보내기만 하는거라 정보가 없거나 혹은 다르거나 그런게 아닐까… 하는게 궁금한거랄까요…
(혹여나 터무니 없는 생각일 수 있지만… ㅠ_ㅠ 이해해주세요)

펌웨어는 위즈넷 펌웨어
W5200E01-M3_Firmware_polling_v1.6_2 버전과(1.7버전에 맞춰 수정은 했습니다)
W7200_AN_DHCP_SMTP_V111 펌웨어,
W7200_AN_SNMP_V111 펌웨어를 조합하여 구성하였습니다.

저희 칩에서는 장비 → 공유기로 제대로 패킷을 내보내느냐… 공유기쪽으로 잘 넘어가는 게 중요한 것이죠 그 다음부터는 공유기가 처리하는 것이기 때문에 저희로써는 지원해드릴 수 있는 부분이 별로 없네요 ㅠㅠ

LTE로 하면 안되고 wifi로 하면 된다고만 하시면… 공유기 설정으로 인해 외부망으로 나가지않아 폰까지 수신이 안되는것 같다라고 말씀드릴 수 있을것 같은데 get이나 set은 LTE로 되고 trap만 안된다고 하시니… 다른 설정을 잘못 한것같진 않고 LTE망에서 TRAP 패킷을 전송하지 않는것은 아닐까요…

음 어디를 봐야한다라고 딱 단적으로 얘기를 드릴순 없을것 같습니다…

SNMP의 경우 포트 161로 보내는게 일반적이고 TRAP의 경우 162를 써서 보내는데… 음 이런부분도 확인을 좀 해봐야겠네요

폰에 신호가 도달하는 과정은 결국엔 장비 → 공유기 → -> → 게이트웨이 → -> → 가까운 통신사 LTE 게이트웨이 → -> → LTE 송신탑에서 무선 신호 송출 → -> → 핸드폰의 과정으로 이루어지는데… 이게 안되는것 같진 않아요… get set은 된다고 하시니…ㅎㅎ

결국 SNMP 프로토콜쪽을 좀더 파보시는게 좋을 것 같습니다.

아 혹시 SNMP 쪽에 문제가 있을 수도 있으니 어플리케이션 업데이트를 해보시기 바랍니다. SNMP의 최신버전은 W5500에 포팅되어있긴 하지만 io라이브러리 위의 어플리케이션이기 때문에 쉽게 포팅하여 사용하실 수 있을것 같습니다. 해당 링크는 github.com/Wiznet/SNMP_LPC11E36_LPCXpresso 입니다.

SNMP 소스코드를 보다보니 알 수 있을것 같네요 확인 후 다시 답변 드리겠습니다.

음 지금 set get과 trap의 다른점은

set get은 핸드폰에서 → 장비쪽으로 요청 후 장비가 → 핸드폰쪽으로 응답을 하는 과정이고
trap의 경우는 장비가 먼저 핸드폰 쪽으로 요청을 하는 과정입니다.

이경우에… 핸드폰으로 요청을하려면 핸드폰의 IP가 제대로 적혀야겠죠??

응답의 경우 상대편 IP정보가 제대로 들어오기 때문에 그 IP로 다시 응답을 함으로써 상대방에게 전달이 잘되지만
먼저 보내야하는경우 상대편에 대한 정보없이 그냥 보내면 도착하지 않겠죠…

즉 snmp trap 메세지를 보내는 경우(먼저 외부로 요청하는 경우)에 있어 상대방의 IP를 제대로 써주는지가 의문입니다.

확인 부탁드려요~!

안녕하세요. 넘 오래 지나고 글을 봤네요. (답변 감사합니다)
현상 아직 동일한데요…(그 동안 다른 부분때문에 잠시 해결된걸로 착각했습니다…ㅠ)


모바일 LTE로 GET/SET은 공유기의 포트포워딩 기능을 사용하여 잘되고있는데요,
Trap 메세지는 여전히 미해결 상태입니다.

트랩 메세지를 보낼때는 이미 알고있는 폰의 공인아이피로 메세지를 보내는데요
(네이버에 내아이피 검색하여 나오는 IP : 223.62.219.114 )
트랩 메세지를 보내는 경우 디버깅 창엔 아래와 같이 표시됩니다.
(IP와 포트는 제가 프린트하도록 추가했어요)

UDPOpen()
UDPClose()
Sn_SR = 22 , Protocol = 02
UDPOpen()
UDPClose()
Sn_SR = 22 , Protocol = 02
sendto()

soket 3, address [223.62.219.114, port 1024, len 75]

trap packet = 75
[Trap]
0x0000 : 30 49 02 01 00 04 0a 62 72 6f 61 64 71 75 65 73 0I…broadques
0x0010 : 74 a4 38 06 0b 2b 06 01 04 01 82 e4 0a 01 02 05 t.8…+…
0x0020 : 40 04 c0 a8 01 55 02 01 06 02 01 05 43 04 00 0c @…U…C…
0x0030 : 77 96 30 17 30 15 06 0d 2b 06 01 04 01 82 e4 0a w.0.0…+…
0x0040 : 01 01 02 0d 00 04 04 33 30 64 42 …30dB
UDPClose()
UDPOpen()
UDPClose()
Sn_SR = 22 , Protocol = 02


포트포워딩과 반대로 지금은
사설 IP → 공인 IP 로 나가야 하는 상황이고, IP도 정확히 알고 있는데
안되네요…

사설 IP 에서 공인 IP로 나가는 경우에도 공유기를 거쳐야 하는것인지…
그렇게하려면 어떻게 해야하는것인지 도움 부탁드립니다.

한동안 다른 문제때문에 요 문제를 생각못했던 터라 뒤늦은 질문 죄송합니다.

안녕하세요 일단 저도 너무 오래되어 이전 이야기가 기억이 잘 나질 않네요…

사설 IP에서 공인 IP로 나가려는 경우 당연히 공인 IP를 가진 공유기를 거쳐 나가야 합니다.
그렇게 하려면 공유기로 부터 DHCP로 IP 할당을 받으면 됩니다.

그리고 soket 3, address [223.62.219.114, port 1024, len 75] 여기서 보면 포트가 1024인데요
Trap은 포트 번호가 162가 아닌지요?

확인 부탁 드립니다.

감사합니다.

일반적으로 trap 포트는 162번이 맞긴한데요
모바일에서는 1024번으로 사용하더라구요 ~ (162 불가라네요 ㅎㅎ)
그리고 와이파이로 사용시에는 1024포트로 정상적으로 전송되구요.

장비의 IP는 DHCP로 할당받은게 맞는데,
공유기를 거쳐나가고 있는지를 잘 모르겠어요…(와이어샤크를 못보니…어렵네요 ㅠ)

정상적인 경우라면 사설 192.168.1.85에서 223.62.219.114로 보내는 경우
알아서 공유기를 통해야하는건가요?

정상적으로 인터넷으로 연결을 하려면 공인 IP를 가진 공유기(인터넷연결이 되는 공유기)를 통해 나가야 인터넷이 됩니다.
DHCP 할당을 어떤 곳에서 받으시는 지요?? 일반 내부망만 사용하는 공유기라면 외부로 나가지 못합니다.