포스트

2021-08-31-TIL

포트포워딩으로 내 방 컴퓨터까지 연결

우리집 구조

KT공유기 -> 유선연결 -> 내방 iptime공유기 -> 무선연결 -> 노트북

따라서 KT공유기에서 우선 8080포트에 대해 포트포워딩을 해서 내 방 공유기로 포워딩 -> 내 방 공유기에서 포트포워딩을 해서 노트북으로 포워딩 -> 내 노트북에서 돌아가는 8080 서버가 동작


왜 포워딩을 두 번 해야 하는가

공유기는 NAT(Network Address Translation)를 한다. 집 안의 기기들은 사설 IP를 받고, 바깥에서는 공유기의 공인 IP 하나만 보인다. 여러 기기가 IP 하나를 나눠 쓰기 위해 포트 번호까지 바꿔 주는 방식을 NAPT라고 부르는데, RFC 3022는 이 방식이 기본적으로 안에서 밖으로 나가는 연결을 위한 것이라고 설명한다. 밖에서 들어오는 요청은 공유기가 어느 기기로 보내야 할지 알 수 없어서 버려진다.

포트포워딩은 이 빈칸을 채우는 정적 매핑이다. “공인 IP의 8080번으로 들어온 요청은 192.168.x.x의 8080번으로 보낸다”는 규칙을 공유기에 미리 적어 두는 것이다. RFC 3022도 서비스 포트마다 내부 노드를 정적으로 매핑하면 외부에서 들어오는 접근을 허용할 수 있다고 적고 있다.

우리 집처럼 공유기 두 대가 직렬로 연결되어 있으면 NAT도 두 번 일어난다(이중 NAT). 바깥에서 보면 KT 공유기만 보이고, KT 공유기 입장에서 내 방 iptime 공유기는 내부 기기 중 하나일 뿐이다. 그래서 규칙도 두 단계로 필요하다.

  1. KT 공유기: 외부 8080 -> iptime 공유기의 사설 IP 8080
  2. iptime 공유기: 8080 -> 노트북의 사설 IP 8080

이때 노트북과 iptime 공유기의 사설 IP가 바뀌면 규칙이 깨지므로, 공유기 설정에서 해당 기기에 고정 IP(DHCP 예약)를 걸어 두는 편이 안전하다. 노트북의 방화벽이 8080 포트 수신을 막고 있지 않은지도 함께 확인해야 한다.

참고한 자료외부 출처 5

외부 출처

이 글은 저작권자의 CC BY 4.0 라이선스를 따릅니다.

댓글

아직 댓글이 없습니다