라우터(공유기), NAT, 포트, 포트 포워딩, DHCP

2021. 11. 12. 11:11·Programming/Network

 

본 게시글은 생활코딩 Youtube를 바탕으로

네트워크를 이해하기 위한 가장 기초적인 내용을 정리한 글

 


 

라우터(공유기)

출처 : 위키백과 - 라우터 / https://commons.wikimedia.org/wiki/File:Adsl_connections.jpg

라우터 (Router, 공유기) : 최적의 경로를 찾아 데이터 패킷을 전송하는 네트워크 장치

출처 : 생활코딩 - WEB2-Home server-2.공유기 / https://youtu.be/3HEhifFPdIs

인터넷을 사용하려면 통신사(ISP)와 계약을 하고 집에 있는 LAN선을 컴퓨터에 꽂으면 됨

하지만 컴퓨터가 여러대이고, 스마트폰에서도 WIFI를 사용하고 싶은데

각각의 장치마다 따로 계약을 하기는 비쌈

그래서 통신사와는 하나의 회선을 계약하고, '공유기'를 사용

 

 


 

WAN, LAN

WAN (Wide Area Network, 광역 네트워크) : 광범위한 지역을 단위로 구성하는 네트워크; 광역 통신망
LAN (Local Area Network, 근거리 네트워크) : 가까운 지역을 단위로 구성하는 네트워크; 근거리 통신망

라우터(공유기) 뒤쪽에 보면 따로 떨어져있는 포트 하나에 WAN이라고 적혀있는데

그 포트에 통신사와 계약해서 받은 선을 WAN에 꽂음

그리고 나머지 포트와 다른 장치들(컴퓨터나 노트북 등)을 유선으로 연결하고

무선으로 와이파이를 이용해 스마트폰과 연결하면 인터넷을 사용할 수 있음

 

이렇게 하면

라우터(공유기)가 공인 IP를 가지고 있는 것이고

라우터(공유기)가 다른 장치들에게 사설 IP를 부여하는 것

https://kairosial.tistory.com/10

 

IP 주소, 공인 IP, 사설 IP, 고정 IP, 유동 IP

IP 주소 IP 주소 (Internet Protocol address, IP address) : 컴퓨터 네트워크에서 서로를 인식하고 통신하기 위해 사용하는 네트워크 상의 주소; 컴퓨터가 연결된 네트워크 끝단의 주소; 기기가 인터넷에 접

kairosial.tistory.com

 

이더넷

이더넷 (Ethernet) : 전 세계에서 폭넓게 이용되고 있는 네트워크 규격;
유선 네트워크의 경우 대부분 이더넷을 사용한다고 볼 수 있음

이더넷은 인터넷을 이용하기 위한 수단 중 하나

유선 방식인 이더넷 말고도

무선 방식인 와이파이나 LTE 등으로도

인터넷을 이용할 수 있음

 

이더넷은 각 기기들의 고유의 주소인 MAC 주소를 가지고 데이터를 주고받는 방식

MAC 주소

MAC 주소 (Media Access Control Address) : 네트워크 하드웨어를 식별하는 주소; 물리적인 주소;
기기마다 하나씩 할당, 중복X, 유일한 값

MAC 주소는 이더넷 망(로컬) 안에서만 사용하고

라우터를 지나 외부로 나가면 IP를 이용하여 통신

 

 


 

NAT

NAT (Network Address Translation, 네트워크 주소 변환) :
여러 정보(포트 숫자, IP 주소 등)를 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술

출처 : 생활코딩 - WEB2-Home server-3.NAT / https://youtu.be/ctY8VtRd7cc

내 컴퓨터가 192.168.0.4이고

네이버에 접속을 하려고 한다면

어떻게 동작할까?

 

일단 네이버를 띄워달라는 요청을

게이트웨이 주소(라우터 주소)인 192.168.0.1로 보냄

 

네이버는 내부 네트워크(로컬 네트워크) 상에 있는게 아니기 때문에

이 요청을 외부로 보내야 함

 

외부로 보내기 전에 공유기는 두 가지 일을 함

1. 이 요청은 192.168.0.4가 보낸 요청이라고 저장 (정보를 기록) Why? 응답을 돌려줘야 하기에

2. 192.168.0.4 → 59.6.66.238 로 변경 (데이터를 변경) Why? 192.168.0.4는 외부와 통신 불가

 

이 변경된 데이터를 네이버 서버(***.***.***.***)로 보내면

네이버에서 응답을 공유기인 59.6.66.238로 보냄

 

공유기는 처음에 요청을 보낸 곳이 192.168.0.4인 정보를 기록해놨기 때문에

네이버에서 온 응답을 최종적으로 내 컴퓨터인 192.168.0.4로 보냄

 

 

위의 프로세스는 192.168.0.4를 클라이언트(Client)로 사용했을 때이고

반대로 192.168.0.4를 서버(Server)로 사용할 때는 어떻게 할까?

 


 

'포트 포워딩' 이라는 개념이 필요한데

이 전에 '포트' 의 개념부터 알아보자

 

포트

포트 (Port) : 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위

하나의 컴퓨터에는 여러개의 서버가 있을 수 있음

그 서버들을 식별할 때 사용하는 것이 포트

출처 : 생활코딩 - WEB2-Home server-5.port / https://youtu.be/Nlae0UYF6k8

0번에서 65535번까지 포트가 있는데

0번 ~ 1023번은 Well-known port

 

대표적으로

20번 : FTP(data)

21번 : FTP(control)

22번 : SSH

23번 : 텔넷

53번 : DNS

80번 : HTTP

 

만약 Web server를 하나 더 깔고 싶다면

80번 포트는 이미 사용중이기 때문에

이와 비슷한 8080번 포트를 사용하는 것이 관례

 

80번 포트와 8080번 포트에 Web server가 깔려있는 경우

웹에서 접속을 할 때 어떻게 할까?

비밀은 URL에

http://opentutorials.org (HTTP의 포트 번호인 80은 생략)

http://opentutorials.org:8080 (새로 만든 웹서버의 포트번호)

 

URL

URL (Uniform Resource Locator 또는 web address, 파일식별자) :
네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약 (웹에서는 파일을 자원 또는 리소스라고 부름);
방대한 웹에서 리소스를 구별하는 식별자

URL의 표현 방법

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

 


 

포트의 개념을 알았으니

2. NAT에서 192.168.0.4를 클라이언트가 아닌 서버로 사용하려면 어떻게 해야될까?

 

192.168.0.4에 웹서버를 만들고 사람들이 접근할 수 있도록 하고 싶음

192.168.0.4를 서버로 사용하겠다는 뜻

 

그러면 192.168.0.4를 사람들에게 알려주면 사람들이 들어올 수 있을까?

192.168.0.4는 사설 IP, 내부 IP이기 때문에 사람들이 접근할 수 없음

 

사설 IP인 192.168.0.4 대신, 공인 IP인 59.6.66.238을 알려주고

공유기가 192.168.0.4 쪽으로 연결시켜주면 된다!

포트를 이용해서

 

포트 포워딩

포트 포워딩 (Port Forwarding) : 외부에서 내부 네트워크의 사설 IP에 접근하기 위한 방법을 공유기에게 알려주는 것

 

출처 : 생활코딩 - WEB2-Home server-6.port forwarding / https://youtu.be/XT_jt0CmBbU

라우터(공유기) 59.6.66.238의 8081번 포트로 접속 요청이 들어오면

내부 네트워크의 사설 IP 192.168.0.4의 80번 포트로 전달

 

결국 라우터(공유기)가 중간에서 안내자, 이정표 역할을 하도록 하는 것이 포트 포워딩

 

 


 

DHCP

DHCP (Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜) : 
호스트 IP 구성 관리를 단순화하는 IP 표준;
DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 DHCP 사용 클라이언트에게 동적으로 할당

우리가 인터넷을 사용하기 위해

기기에 LAN선을 꽂든, 와이파이를 연결하든 하면

원래는 기본적인 세팅을 해줘야 하지만

이를 DHCP가 자동으로 설정해줌

 

윈도우를 기준으로, 네트워크 및 공유 센터 - 연결된 네트워크 - 속성 - 인터넷 프로토콜 버전 4(TCP/IPv4) - 속성

인터넷 프로토콜 버전 4(TCP/IPv4) 속성에서

기본값으로 '자동으로 IP 주소 받기' 와 '자동으로 DNS 서버 주소 받기' 가 선택되어 있을 것

DHCP가 없었다면 IP 주소, 서브넷 마스크, 기본 게이트웨이 등을 수동으로 설정해줘야 했음

 

수동 설정 관련

https://kairosial.tistory.com/12

 

IP 주소, 서브넷 마스크, 게이트웨이

회사에서 점이 찍힌 숫자들을 받고서 "네트워크 연결하세요" IP 정도만 알았지 서브넷 마스크, 게이트웨이, DNS? 이 기회에 싹 다 정리해보려고 한다 IP 주소 아주 기본적인 개념 정도만 정리했고,

kairosial.tistory.com

출처 : 생활코딩 - WEB2-Home server-8.DHCP (1/2) / https://youtu.be/fTjscWEQ7zk

위 그림에서 8c:85:90:0c:e3:cc는

기기마다 하나씩 할당되어 있는 물리적인 주소인 MAC 주소

 

공유기는 DHCP Server를 내장하고 있고

인터넷을 사용하는 기기들(컴퓨터, 노트북, 스마트폰)은 DHCP Client를 내장하고 있음

서로 연결이 되면 MAC 주소를 이용해서

DHCP가 설정을 자동으로 진행

 

 

 


📝 참고

https://www.opentutorials.org/course/3265/20033

 

공유기 (router) - 생활코딩

수업소개 집집마다 있는 공유기를 전문 용어로는 라우터라고 합니다. 라우터가 하는 일을 살펴봅니다. 그 과정에서 사설 아이피(private ip address)와 공용 아이피(pubilc ip address)의 차이점 또한 알게

www.opentutorials.org

https://www.opentutorials.org/course/3265/20035

 

NAT (Network address translation) - 생활코딩

수업소개 공유기에 연결된 장치들이 인터넷을 통해서 공유기 밖의 정보에 접속할 수 있는 것은 NAT라는 기능 덕분입니다. 이 기능의 원리를 살펴보는 시간입니다.  강의

www.opentutorials.org

https://www.opentutorials.org/course/3265/20037

 

포트(port) - 생활코딩

수업소개 여기서는 포트라는 개념을 알아봅니다. 하나의 컴퓨터에는 여러개의 서버라 설치 될 수 있습니다. 클라이언트가 컴퓨터에 접속할 때 어떤 서버와 접속하려고 하는지는 구분할 수 있는

www.opentutorials.org

https://www.opentutorials.org/course/3265/20038

 

포트 포워딩(port forwarding) - 생활코딩

수업소개 공유기 외부에서 공유기 내부의 컴퓨터에 접속하기 위해서는 공유기의 몇번 포트에 접속한 정보를 공유기 내의 어떤 아이피의 몇번 포트로 연결해줄 것인지를 공유기에게 알려줘야

www.opentutorials.org

https://www.opentutorials.org/course/3265/20039

 

DHCP - 생활코딩

수업소개 DHCP(Dynamic Host Configuration Protocol)은 네트워크에 접속한 장치의 ip, subnet mask, gateway address, DNS와 같은 정보를 자동으로 설정해주는 기술입니다. 여기서는 이 기술의 원리와 사용법에 대해

www.opentutorials.org

https://www.youtube.com/watch?v=GK3h936Co-k

https://storytown.tistory.com/14

 

포트포워딩(Port-Forwarding) 이란?

Port Forwarding 공유기를 사용하면 한번씩은 들어보고 검색 해봤을만한 단어입니다. 이 포스트는 포트포워딩 설정 방법이 아닌 포트포워딩이 무엇인지에 대해 알아보겠습니다. 우선 사전적 의미

storytown.tistory.com

 

저작자표시 비영리 변경금지 (새창열림)

'Programming > Network' 카테고리의 다른 글

IP 주소, 서브넷 마스크, 게이트웨이  (3) 2021.11.12
IP 주소, 공인 IP, 사설 IP, 고정 IP, 유동 IP  (0) 2021.11.12
[미해결] VS Code Remote-SSH  (0) 2021.11.11
'Programming/Network' 카테고리의 다른 글
  • IP 주소, 서브넷 마스크, 게이트웨이
  • IP 주소, 공인 IP, 사설 IP, 고정 IP, 유동 IP
  • [미해결] VS Code Remote-SSH
카이로셜
카이로셜
  • 카이로셜
    카이로스의 시간
    카이로셜
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • Linux
        • Git, Github
        • ML, Machine Learning
        • DL, Deep Learning
        • NLP
        • Computer Vision
        • Network
        • PyCharm
      • IT
        • Windows
        • Mac OS
        • Programs
        • 한글
        • Word
        • Excel
        • PowerPoint
      • Math & Statistics
      • English
      • Graduate School
      • etc.
      • Record
  • 블로그 메뉴

    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    윈도우10
    아나콘다
    아나콘다 가상환경
    윈도우11
    docker
    클래스
    도커
    맥북 단축키
    객체
    anaconda
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
카이로셜
라우터(공유기), NAT, 포트, 포트 포워딩, DHCP
상단으로

티스토리툴바