본문 바로가기
CS/NetWork

[네트워크] Network Address Translation(NAT), DHCP

by 계범 2022. 1. 19.
네트워크 관련 글 순서(참조 영상 기준)

애플리케이션 계층
- 네트워크 애플리케이션의 원리
- DNS
- TCP를 이용한 Socket 프로그래밍

전송계층
- 전송 계층 서비스의 원리
- rdt 원리
- 연결 지향 전송: TCP
- TCP 흐름 제어(3-way handshake, 4-way handshake)
- TCP 혼잡 제어

네트워크 계층
- 네트워크 계층 서비스
- Network Address Translation(NAT), DHCP
- 라우팅 알고리즘(Link State, Distance Vector)
- 계층적 경로 변경(AS)

링크 계층
- 다중 엑세스 프로토콜
- LANs(근거리 통신망)

무선 및 모바일 네트워크
- 무선 네트워크

웹 요청 시 일어나는일

네트워크 보안
- 대칭키 & 공개키,RSA 암호화
- Secure e-mail, SSL, MAC
- IPSec(ESP), Firewall(방화벽)

 

데이터 통신이 될려면 글로벌하게 유니크한 ID를 가져야한다.

Ipv4에선 2^32(40억 가량)의 호스트가 존재 가능한데, 점점 인터넷이 커지면서 이 숫자로도 모자를거 같아서 더 큰 버전인 IPv6(2^128)를 냈다.

 

현재 ipv4, Ipv6 둘다 사용중

 

완전히 갈아타지 못한 이유

  • 호환성 문제
    • 기존의 라우터들은 Ipv4만 지원
  • Network Address Translation(NAT)

 

Network Address Translation(NAT)이란

외부 네트워크와의 통신을 위해 사설 IP 주소를  공인 IP 주소로 변경해주는 기술.

게이트웨이에서 동작.

 

NAT는 게이트웨이 내부에 존재하는  NAT Translation table에 의해,

내부에서 쓰이는 다수의 사설 IP주소를 하나의 공인 IP주소로 변환해주는 기술입니다.

 

내부의 한 호스트가 외부 네트워크로 나갈때 사설IP 주소가 어떤 공인 IP 주소로 나갔는지 테이블에 기록해두고, 이 정보를 토대로 갔다가 다시 돌아올 수 있습니다.

 

같은 공인 IP 주소로 나가지만 다른 포트번호를 지정하여 내부의 어떤 호스트인지 매칭할 수 있습니다.

(같은 게이트웨이에서 나가는건 동일한 주소로 나감)

 

NAT 뒤에 NAT가 또 있을수도 있음.(계층적)

 

NAT의 필요성

  • IP 주소 절약
    • 하나의 공인 IP주소로 여러대의 호스트가 인터넷 접속 가능(클라이언트로서 역할 가능)
  • 보안
    • 외부로 트래픽이 나갈때 사설 IP가 공인 IP주소로 바뀌어서 나가기 때문에, 공격자가 사설 IP주소를 몰라서 호스트를 직접적으로 공격하기가 어렵다.

 

NAT 부작용

  • 내부에서 서버로서 동작하기 어려움
    • 외부에서 접속하기 쉽지 않음(사설 IP 사용하기 때문)
    • 해결방법으로 Table에 등록해두면 되지만, 일반적으로 해주지 않음
  • OSI 7 계층 위반
    • IP주소와 Port번호는 전송계층에서 end to end 방식으로 지정
    • 하지만 이건 게이트웨이(라우터) 중간계층에서 포워딩만 해주는 것이 아닌, 정보를 수정해서 보냄

 

Dynamic Host Configuration Protocol(DHCP)

  • 고정 IP 방식이 아닌 동적으로 IP를 부여하는 것.
  • DHCP Server에 의해 IP가 배정됨. (서버 포트번호 67. 클라이언트 68)

 

시나리오

출처 : NETMANIAS

 

브로드캐스트

  • IP 네트워크에 있는 모든 컴퓨터로 데이터를 전송하는 방식.
  • 브로드케스트 주소: 네트워크에 있는 장비 모두에게 데이터를 전송할때 사용되는 IP 주소
  • 네트워크의 맨 마지막 주소를 브로드캐스트 주소로 사용

 

1) DHCP Discover

 

브로드캐스팅으로 전체 장비에 메시지를 보냄

 

  • 목적지 포트 67로 지정하여 DHCP 서버에서만 답 올 수 있게 함
  • 본인을 나타낼 수 있는 ID도 같이 보냄

 

2) DHCP Offer

 

DHCP 서버에서 응답해줌.

 

응답정보

  • 사용할 IP주소
  • IP주소를 사용할 수 있는 시간
  • 서브넷 마스크 주소
  • 게이트웨이 주소
  • DNS 서버 주소

 

3) DHCP Request

 

클라이언트측에서 해당 IP주소를 사용하겠다고 요청함

 

이때 브로트캐스트로 보내는 이유는 다른 서버에서도 offer를 보냈었을 경우, 해당 서버에서 IP를 받았다고 알려주기 위함

 

4) DHCP ACK

 

해당 IP주소 할당 및 임대시간을 다시 한번 알려주며, 할당했다고 피드백

 


참조

 

KOCW 네트워크 강의 - 한양대 2018 1학기 이석복 교수님

 

컴퓨터네트워크

본 강의에서는 인터넷 내부의 동작을 이해하는데 초점을 둔다. 인터넷의 기본이 되는 다양한 컴퓨터네트워크 프로토콜을 응용계층으로부터 시작하여 링크계층까지 Top-down방식으로 소개한다.

www.kocw.net

 

브로드 캐스트 참조

 

[네트워크] 네트워크 계층

OSI 모델의 3 번째 계층인 네트워크 계층에 대해 알아보자

velog.io

 

댓글