11.11.1.2 통신 브릿지 락온(Lock-on) 및 방화벽 포트 매핑 진단론

11.11.1.2 통신 브릿지 락온(Lock-on) 및 방화벽 포트 매핑 진단론

도커(Docker) 컨테이너 클러스터나 쿠버네티스(Kubernetes) 환경의 심연에 Zenoh 라우터(Router)와 ROS2 브릿지 파드(Pod)를 격리 수용시켰을 때, 우리는 극단적인 포트 매핑(Port Mapping)의 소용돌이에 직면한다.

노드 간의 핑(Ping) 통신은 열려있는데 정작 데이터 통신은 거부되거나, 브릿지가 부팅 후 수 초(Second) 만에 “Session Lost“라는 비명과 함께 자살해버리는 상황. 이것은 명명백백한 TCP/UDP 포트 할당 오류와 컨테이너 방화벽 NAT의 배신이다. 본 절에서는 브릿지가 외부 세계를 향해 레이더를 조준하는 락온(Lock-on) 메커니즘을 낱낱이 파헤치고, 컨테이너 오케스트레이션 망에서의 포트 진단론을 정립한다.

1. Zenoh의 삼중 포트 생태계와 NAT(Network Address Translation)의 함정

Zenoh 라우터 하나를 구동시켰을 때, 시스템 안에서는 조용히 세 가지 권한의 문(Port)이 열린다.

  1. 7447/TCP : 이더넷 백본을 통해 거대한 트래픽을 신뢰성 있게 쏘아 보내는 대동맥 스펙.
  2. 7447/UDP : 서브 네트워크 내부에서 로봇 단말들이 멀티캐스트로 스스로 라우터를 찾아가기 위한 비콘 포트.
  3. (선택적) 8000/TCP : REST API 기반 관제 및 다이그노스틱(Diagnostic) 목적의 포트.

클라우드 엔지니어들이 가장 빈번하게 겪는 무덤은 도커의 docker run -p 7447:7447/tcp 와 같이 반쪽짜리 포트만 매핑하는 행위다.

TCP만 바인딩 된 이 도커 브릿지 파드가 구동되면, 멀티캐스트 스카우팅(UDP)이 불가능해진다. 따라서 로봇 단말 측 백그라운드 네트워크 데몬은 브릿지 라우터의 존재를 탐지하지 못해 영원히 미아 상태(Orphaned)로 떠돌게 된다. 반드시 컨테이너 실행 인프라에 TCP와 UDP 포트 매핑 두 가지 규격을 쌍으로(Paired) 바인딩하는 무결점 도커 컨피규레이션(Configuration)을 선언해야 한다.

2. 방화벽의 묵음 드롭(Silent Drop) 지연 현상 포착

AWS EC2 인스턴스나 온프레미스 인텔 보안 스위치 망에서는 특정 포트 포워딩을 뚫어놓아도 방화벽 데몬(iptables/ufw)이 묵음 상태로 트래픽을 학살하는 지능적인 드롭 현상이 일어난다.

만일 zenoh-bridge-dds를 강제 부트스트랩 시켰는데, 최초 1~2초간은 토픽이 날아오다가 이내 [ERROR] Connection reset by peer 혹은 아무런 이유 없이 수신 콜백이 봉인되어버린 상황이라면?
이는 클라이언트 호스트(로봇)가 Zenoh 세션 연결(Lock-on) 협상 단계는 통과했으나, 지속적인 왕복 패킷(Keep-alive)이나 대용량 프레임을 밀어 넣으려는 찰나, 클라우드 레이터 7(L7) 방화벽 딥 패킷 인스펙터(DPI)가 알 수 없는 형식의 바이너리를 스팸으로 치부하고 소켓 커넥션을 강제로 절단(Reset)해버린 것이다.

이를 타파하기 위해선 백엔드 콘솔에 접속하여 커널 필터 로그에 덜미가 잡힌 패킷들의 무덤을 캐보아야 한다.

# 리눅스 커널 방화벽 드롭 로그 역추적
dmesg | grep -i "drop"

3. Netcat(nc) 락온(Lock-on) 관통기 테스트

Zenoh 라우터나 파이썬 코드 따위를 구동시킬 필요 조차 없다. 거대한 브릿지 소프트웨어를 디버깅 도구로 앞세우기 전에, 가장 가볍고 확실한 기초 배관공의 공구, 네트캣(Netcat)으로 터널의 관통 여부를 진단하라.

  1. 목표지가 되는 클라우드 관제 데몬 터미널에서 리스너 덫을 놓는다.
# 로컬 방화벽과 NAT가 온존한지 UDP 타격 청취 대기
nc -l -u -p 7447
  1. 로봇(Edge) 터미널, 즉 공격자 단말에서 수동으로 타격(Hit)한다.
echo "TEST_PROBE_DUMMY" | nc -u -w 1 192.168.1.50 7447

로봇 쪽 터미널에서 보낸 “TEST_PROBE_DUMMY” 타이핑이 1초 안에 저 너머 클라우드 대시보드의 터미널에 그대로 복사되어 떨어진다면? 네트워크 레이어 포트 매핑, 방화벽, 서브넷(Subnet) 규칙은 완전히 클리어(Clear)된 상태다.
만약 이 텍스트 핑퐁이 도달하지 않았다면, Zenoh와 ROS2 연동 따위는 집어치우고 당장 쿠버네티스 Ingress 룰(Rule)이나 사내 보안팀의 스위치 룰을 뜯어고치는, 철저하게 분리된 하드웨어 네트워크 레벨 구역으로 진단 축을 돌려야만 하는 통찰을 제공한다.