CCTV 서비스 연결 오류 해결 - Public IP

Yany Choi·2023년 4월 17일
0

펜션

목록 보기
3/3

갑자기 CCTV가 안된다.

CCTV가 갑자기 죽어버렸다. 그것도 이상한 것이, 웹서버와 FastAPI는 둘 다 살아있는데, 그냥 CCTV 스트리밍이 안된다.

문제원인을 발견한 과정

CCTV 녹화된 영상들 목록은 잘 나오고, 녹화영상 스트리밍은 또 문제없이 잘됐다.

그리고 스트리밍 쪽을 계속 봤는데 TCP connection timeout이 계속 일어났다는 로그가 나왔다.
하지만 CCTV는 중국산이기는 해도 나름 IoT 관리용 앱도 따로 있어서, 여기로 접속했는데 문제없이 잘 나왔다.
혹시나 해서 VLC 플레이어로 RTSP로 CCTV 스트림을 직접 보려고 시도했더니...

CCTV가 문제였다.
사실 CCTV는 서버와 다른 네트워크에 위치하는데, 그림으로 보면 이렇다.

왼쪽의 네트워크가 펜션 관리실 네트워크, 오른쪽이 펜션 네트워크이다. 서버에서 소음이 꽤 발생해서 손님들이 상주하는 펜션에는 둘 수 없어 관리실에 세팅해놨었는데, CCTV는 설치해야 하는 위치가 절묘하게 관리실 공유기와 거리가 멀어서 Wi-Fi로 접속이 안됐다.
거기에다 유선으로 연결하자니 건물이 아예 분리되어있어 선정리하기 힘들어서 우선 이렇게 설치를 하고 공유기의 포트포워딩 설정을 했다.

RTSP는 주로 554번 포트로 작동하니 554:554로 펜션 공유기에 포트포워딩 설정을 하고, 서버측에서는 443, 80 등 HTTP 웹 통신에 주로 사용되는 포트들을 개방했었다.

그래서 CCTV가 문제인건 알았고, 펜션 공유기 설정을 들어갔는데 포트포워딩도 문제없이 잘 되고 있었다. 그렇다면 문제는 하나...

바로 관리실에서 나와서 핸드폰으로 펜션 와이파이에 연결해서 Public IP를 보여주는 웹사이트에 들어갔더니 서버에 환경변수로 넣어놓은 CCTV IP와 달랐다.

공교롭게도 뒷자리만 바뀌어서 환경변수를 바꾸고 데몬을 재시작하고 다시 들어갔더니!

잘 나온다!

후기

퍼블릭 IP가 변경되는 주기가 굉장히 느리다길래 아무 생각없이 이렇게 설정을 했는데, 상상도 못했다. 앞으로 뭔가 설정을 한다면 private network 내에서 해결은 하지 못하면 아예 클라우드에서 기기를 받아서 고정 public ip 를 받아서 하는게 마음이 편할 것 같다.
거기다 요즘 클라우드에서 저사양 기기 (t2.micro 정도)로 빌리는게 저렇게 서버 놔두면 내야 하는 전기세보다 적을 것이다. 거기다 fault-safety 같은 것도 걱정할 필요도 없고, 여러모로 클라우드가 이점이 많은 것을 몸으로 느꼈다.

DDNS를 활용하면 고정IP 처럼 활용할 수도 있다고 하니, 다음엔 이거로 활용하고 데몬도 다 컨테이너화해서 쉽게쉽게 배포할 수 있게 만들어보겠다.

profile
생각하자

0개의 댓글