[CS] 네트워크 - IPv4, NAT

두두·2023년 12월 12일

IPv4

그게뭔데

총 32비트의 길이를 가지고, 8비트씩 4부분을 10진수로 표시하는 IP 주소를 말한다.
각 부분(옥텟)은 점을 찍어 구분한다.
ex) 1100 1011 1111 1100 1001 1001 0011 0111 ⇒ 203.252.153.055
각각의 10진수는 0 ~ 2^8-1의 범위를 가진다.
약 43억개의 IP주소를 만들 수 있다.
여분의 IP주소가 점차 사라지고 있다는 문제점이 있다.

IP Datagram Format(IPv4)

IP Header + data

ver(버전 영역)

IP 버전을 나타내기 위한 영역
IPv4 : 4, IPv6 : 6

head len(헤더 크기)

4바이트를 기본 단위로, 헤더의 길이를 규정한다.

type of service(DS, 차별화된 서비스)

사용자의 데이터마다 우선권을 부여할 수 있다.(라우팅 시 중요)

length

IP datagram의 총 길이

16-bit-identifier

패킷 분할 시 이 값을 참조해 어떤 원본 데이터그램으로부터 분할 되었는지 알 수 있다.

flag

전송되는 패킷이 분할 되었는지 여부

fragment offset

8바이트 단위로 조각난 패킷의 부분을 가리키는데 사용한다.

TTL(Time To Live)

최종 목적지에 도착하지 못한 패킷은 네트워크상에 계속 존재한다.
이는 네트워크의 자원을 잠식한다.
라우터를 거칠 때마다 TTL에 1을 뺀다.
TTL 값이 0인 패킷을 받은 라우터는 그 패킷을 삭제한다.

upper layer

상위 계층의 프로토콜이 무엇인지를 나타낸다.

header checksum

에러를 검출하기 위해 사용한다. UDP, TCP 와 동일
Transport Layer에서 내려온 data가 아닌, header에 대해서만 오류를 검사한다.

source IP address

송신자 IP 주소

destination IP address

수신자 IP 주소

options

IP 헤더의 확장
옵션 처리의 유무에 따라 처리 시간이 크게 달라진다.
오버헤드가 발생할 수 있기에 거의 사용되지 않는다.

IP 할당 방식

IP 할당 방식은 기본적으로 Static 방식과 DHCP 방식으로 나뉜다.

Static 방식

사용하고 싶은 IP를 자신이 직접 입력을 해서 할당하는 방식이다.
DHCP 동적 할당 방식에 비해 편리하다.

필요한 정보

  • 자신이 사용할 수 있는 IP
  • 자신의 네트워크의 서브넷마스크
  • 자신의 게이트웨이
  • DNS 주소

자신의 네트워크 구조를 어느정도 알고있어야 Static 방법을 사용할 수 있다.
DNS는 입력하지 않으면 알아서 할당을 해준다.

DHCP 방식

클라이언트(자신 PC)가 DHCP서버에게 IP를 요청한다.
이후 DHCP가 현재 사용하지 않는 IP를 잠시 임대 해주는 방식이다.
같은 IP를 계속 부여하는 것이 아니고, 임대시간(IP Lease Time)동안 빌려주는 것이다.
항상 같은 IP가 아니라 그때 그때 동적으로 IP가 변경 될 수 있다.

DHCP

DHCP(Dynamic Host Configuration Protocol) DHCP는 Host IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크
hojunking.tistory.com

NAT

Network Address Translation - 네트워크 주소 변환

등장 배경

NAT는 IPv4의 고갈 문제를 해결하기 위해!
출발지 및 목적지 IP 주소와 TCP/UDP 포트 번호 등을 바꿔 재기록하며 데이터를 주고 받는 방법이다.

장점

IP 주소 절약

NAT 기술을 사용하면 하나의 공인 IP로 여러 대의 호스트가 인터넷에 접속할 수 있다.
IPv4의 주소 고갈을 어느정도 해결한다.

보안

NAT 기술의 특성 상 IP 주소를 숨길 수 있다.
외부에서 라우터 내부의 사설 IP를 알 수 없기 때문에 공격당할 확률이 매우 낮다.

동작 원리

흔히 집에서 외부 서버에 접근할 때 공유기(게이트웨이)를 거치게 된다.
이 때 출발지를 사설 IP가 아닌 공인 IP로 변환한다. (서버는 사설 IP에 대한 정보가 없기 때문)

  • Host → Gateway
    패킷 헤더에 출발지와 목적지의 주소를 기록한다. (출발지 : 사설 IP 주소)
  • Gateway → Server
    게이트웨이는 외부로 나가는 패킷을 인식하면 출발지를 자신의 IP인 공인 IP 주소로 변환한다.
    이 때 별도의 NAT 테이블에 정보를 보관한다.
  • Server → Gateway
    서버는 응답할 때 목적지 주소에 게이트웨이의 공인 IP 주소를 기록하여 전송한다.
  • Gateway → Host
    NAT 테이블을 참조하여 최종 목적지인 호스트 사설 IP에 전달한다.
profile
멋쟁이가 될테야

0개의 댓글