위 공유기를 허브모드로 설정해버리면 거기에 꽂혀있는 PC1, PC2, 및 CG100 모두 상위 네트워크의 DHCP 서버에 의해 주소를 할당받게 됩니다.
통상 공유기 환경은 WAN 포트로 하나의 공인 IP를 할당받고 LAN 포트에는 사설 IP를 할당해주는 개념으로 이미 PC1, PC2를 그렇게 할당받아 쓰신 것 같은데 굳이 허브모드로 만드신 이유가 있을까요?
4번 게이트웨이 설정에서 보듯이 예상대로 CG100은 local IP에서 보듯 223.194.30.101 이라는 공용 IP를 할당 받은 걸로 보여집니다.
이론적으로는 그리 하여도 별 문제가 없어야 하지만 통상적으로는 그냥 사설 IP를 할당해도 동작하므로 굳이 허브모드를 사용하지 않으셔도 됩니다.
단말도 정상적으로 등록하셨고 맞게 AppKey를 사용하신 것으로 보여집니다.
또한 NwkSKey가 새로 할당이 되었고 AppSKey가 모두 0인 것은 JoinRequest를 정상적으로 수신 및 JoinAccept를 정상적으로 내려 보낸 것을 의미합니다.
이후 단말에서 JoinAccept를 수신하여 세션키를 생성하고 그 키로 첫 uplink를 보내어 서버가 수신하면 그때야 비로소 AppSKey를 생성합니다.
요컨대, 서버에서는 JoinRequest를 수신하였고 JoinAccept를 응답하였으나 단말 또는 게이트웨이에서 이를 수신하지 못했다는 의미입니다.
이 경우, 통상 게이트웨이의 WAN에서 이를 차단하는 방화벽 등이 문제가 됩니다. 공유기를 통한 통신이 아닌 공용 IP를 사용하는 경우 더 그런 경우가 많더군요. 따라서 네트워크 관리자 등을 통해 방화벽 등이 존재하는지, 존재한다면 TCP 1883 포트로 부터의 in-bound 패킷에 대해 방화벽이 허용되어 있는지 등등이 확인이 필요해보입니다.