14. NAT와 포트포워딩

김아름·2021년 12월 27일
0

네트워크 기초

목록 보기
14/15

🔔 NAT란? ⭐⭐

✅ Natwork Address Translation
✅ IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록 하면서 라우터를 통해 네트워크 프래픽을 주고 받는 기술
✅ 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 Checksum도 다시 계산되어 재기록 해야함
✅ NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러개의 호스트가 하나의 공인 IP주소를 사용하여 인터넷에 접속하기 위함임
✅ 꼭 사설IP를 공인IP로 변환 하는데에만 사용하는 기술은 아님


🐶 실제 일반적인 네트워크의 모습: 사설IP와 공인IP

  • 사설IP대역에 pc나 노트북이 통신할 때 공유기에 할당되어있는 공인IP로 변경이 되어서 통신이 됨

  • 실제 바깥네트워크 세상에는 마치 공유기끼리 통신하는 것처럼 보임
  • 공유기의 NAT테이블 안에 A라는 컴퓨터가 언제 밖으로 나갔고 이런것들이 작성
  • 그 응답이 돌아왔을 때에만 들어올 수 있음



🔔 포트포워딩이란?

  • 포트 포워딩 == 포트 매핑 ( port mapping )
  • 패킷이 라우터나 방화벽과 같은 네트워크 장비를 가로지르는 동안 특정 IP주소와 포트번호의 통신 요청을 특정 다른 IP와 포트 번호로 넘겨주는 네트워크 주소변환의 응용
  • 이 기법은 게이트웨이 ( 외부망 )의 반대쪽에 위치한 사설네트워크에 상주하는 호스트에 대한 서비스를 생성하기 위해 흔히 사용됨

🐶 특정 IP의 특정 포트로 온 요청을 포트포워딩

  • 사설IP대역에 있는 컴퓨터가 보이지 않는 네트워크 대역의 컴퓨터로 직접 통신하고 싶다
  • 직접 컴퓨터의 IP를 치는게 아니라 공인IP로 보냄
  • 공유기에 포트포워딩 설정을 해놔야 함

  • 패킷을 보낼 때 공인IP 2번에 특정포트로 보내면
  • IPv4에 세팅을 할 때 목적지IP주소를 공인IP주소로 전달
  • 패킷을 받았으면 공유기가 처리를 함

  • 특정 포트로 들어온 요청을 다른 특정IP의 특정포트로 전송

  • 전달을 해주는 것이 포트포워딩

  • 보낸데서는 안쪽에 있는 컴퓨터가 안보이는데, 공유기 입장에서는 보이니까 대신 전달해주는 것



    🐢 실습

1. 포트포워딩을 이용하여 다른 사용자들이 사설IP를 사용하는 서버로 접속 할 수 있도록 설정

  • 일반적으로 포트포워딩 설정은 공유기 등 네트워크 장비에 함
  • 공유기 설정은 네트워크 대역에서 게이트웨이IP를 웹브라우저에 입력하면 공유기 설정으로 들어가짐
  • 공유기 뒤에 아디 비번 써져있음, 로그인 후
  • 관리도구에 고급설정에 NAT/라우터 관리에 포트포워드 설정

  • 외부 포트번호는 사람들이 원래 알고있는대로 쓰는게 좋음
  • 굳이 치고 들어와야되니까
  • 내부 포트는 서버만 그 포트로 잘 열어놓으면 어떤번호로 해도 되지만
  • 똑같이 해놔야 편함

2. 사설IP를 사용하는 가상머신에 서버를 설정하고 해당 서버를 포트포워딩을 통해 접속할 수 있도록 설정

  • VM웨어도 네트워크 어댑터가 NAT환경으로 세팅 되어있음
  • 가상의 공유기에서 설정 할수있음
  • cmd창에서 ipconfig 치면 IP주소나옴
  • Edit-Virtual Network Editor-VMnet8선택- Nat Settings
  • add누르고 포트포워딩 추가

  • Host port : 외부 사용자들이 접속할 포트번호
  • Virtual machine IP address : 내부에 특정IP를 지정
    👉 Host port로 들어오면 Virtual machine IP address로 패킷을 전달해 줌

  • 이렇게 세팅을 하고
  • cmd에서 netstat -ano 치면

  • 9999번 포트가 열려있고 PID는 1936이다
  • 작업관리자에서 1936번이 뭔지 확인해보자

  • vmnet이 9999포트를 LISTENING 상태로 만든 것

  • 192.168.0.100이 본체 컴퓨터이고 192.168.0.100이 가상머신 IP인데,
  • VM에 9999에 서버를 열어놓고 있으면 1,2번 중 어디로 접속해야하는가?
  • 192.168.0.100 본체IP로 들어어와야한다.
  • 본체IP로 들어오면 VM에 가도록 포워딩 설정해 놓은 것이 포트포워딩
profile
쿄쿄쿄

0개의 댓글