[cs 스터디] 2-4. IP 주소 - IP 주소 체계

YooJeeun·2025년 1월 3일

cs 스터디

목록 보기
22/65

IP 주소 체계

  • IPv4
  • IPv6

IPv4

  • 32비트를 8비트 단위로 점을 찍어 표기 (예 - 123.45.67.89)
  • 부족하기 때문에 NAT, 서브네팅 여러개의 부수적인 기술이 필요하다.

IPv6

  • 128비트. 2^128개의 주소 표현(많은 주소 처리 가능하며 NAT, 서브네팅이 필요하지 않음) / 16비트씩 8개로 구분
    (예 - 2001:db8::ff00:42:8329) -> 앞의 연속되는 0은 생략 가능

IPv4와 IPv6의 차이

IPv4는 체크섬이 있지만 IPv6는 체크섬이 없다.
IPv6는 헤더의 효율화를 위해 CRC(순환중복검사)를 제외한다.
다만 상위 프로토콜(TCP, UDP)에서 이미 체크섬이 있기 때문에 이를 제거할 수 있다.

IPv4는 헤더가 가변길이이지만 IPv6는 고정길이(40바이트)이다.
'인터넷 헤더길이'에 대한 정보, 식별, 플래그 등이 삭제되었다.

TTL이 HOP limit로 대체되었다.
TTL 필드는 IPv4에서 패킷이 네트워크에서 무한순환하지 않도록 하는 변수이다.
패킷이 네트워크에서 라우터를 거칠때마다 TTL값이 1씩 감소한다. 값이 0이되면 패킷이 폐기된다.

Q. IPv4와 IPv6 누가 더 빠를까?
-> IPv6는 2^128개의 주소 표현이 가능하기 때문에 주소 커버리지가 IPv4보다 크다. 그리고 헤더가 단순해져서 조금 더 빠르게 데이터 처리를 할 수 있고 IPSec이 내장되어 있어서 패킷 자체가 암호화 되어있다. 그래서 보통은 IPv6 속도가 더 빠르지만 IPv6가 사용하는 더 큰 패킷 크기로 인해 일부 사용사례에서는 속도가 느려질 수 있다.

추세는 IPv6이지만 현재 가장 많이 쓰이는 주소 체계는 IPv4이다.
(이후의 설명도 IPv4 기준으로 설명)

클래스 기반 할당 방식

처음에는 A, B, C, D, E 다섯 개의 클래스로 구분 -> 클래스 기반 할당 방식(classful network addressing)
앞 부분: 네트워크 주소 (호스트들을 모은 네트워크를 지칭. 네트워크 주소가 동일 == 로컬 네트워크)
뒷 부분: 호스트 주소 (네트워크 호스트는 컴퓨터 네트워크에 연결된 컴퓨터나 기타 장치)
클래스 A, B, C - 일대일 통신으로 사용
클래스 D - 멀티캐스트 통신으로 사용
클래스 E - 앞으로 사용할 예비용으로 사용
맨 왼쪽 비트 - 구분 비트 (클래스 A: 0, 클래스 B: 10, 클래스 C: 110)

  • 이를 통해 클래스 간의 IP가 나눠진다.

클래스 A로 12.0.0.0이란 네트워크를 부여받았다고 가정.
네트워크의 첫번째 주소(클래스 A의 경우는 12.0.0.0)는 네트워크 주소
가장 마지막 주소(클래스 A의 경우는 12.255.255.255)는 브로드캐스트용 주소
호스트 주소로 사용할 수 있는 주소는 12.0.0.1 ~ 12.255.255.254

하지만 이 방식은 사용하는 주소보다 버리는 주소가 더 많은 단점이 있고 이를 해소하기 위해 DHCP와 IPv6, NAT가 나왔다.

클래스리스, 서브넷마스크, 서브네팅

클래스풀의 단점을 해결하기 위해 클래스리스가 나옴.
클래스로 나누는게 아닌 서브넷마스크를 중심으로 어디까지가 네트워크 주소이고 어디까지가 호스트주소인지를 나눈다.


  • 서브네팅: 네트워크를 나눈다는 의미
  • 서브넷: 서브네트워크, 쪼개진 네트워크
  • 서브넷마스크: 서브네트워크를 위한 비트마스크
    참고로 현재 우리의 주소체계는 클래스리스를 사용함

서브넷마스크

  • 네트워크 주소부분만 모두 1, 호스트주소 부분은 0으로 설정해서 나눈다.

DHCP

DHCP(Dynamic Host Configuration Protocol)는 IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜이다.

네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때 마다 자동으로 할당할 수 있다.

NAT

NAT(Network Address Translation)는 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법이다.

IPv4 주소 체계로는 많은주소들을 감당하지 못하는 단점이 있었는데 이를 해결하기 위해 NAT로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리한다.

NAT를 가능하게 하는 소프트웨어:
ICS, RRAS, NetFilter 등

각각 다른 IP를 가지고 있다 -> 사설 IP
NAT 장치를 통해 하나의 IP인 공인 IP로 외부 인터넷에 요청을 한다.

이처럼 NAT 장치를 통해 사설 IP -> 공인 IP 혹은 반대로 변환하는 데 쓰인다.

공유기와 NAT
NAT을 쓰는 이유: 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.
예를 들어 인터넷 회선 하나를 개통하고 인터넷 공유기를 달아서 여러 PC를 연결하여 사용할 수 있는데 공유기에 NAT 기능이 탑재되어 있기 떄문에 가능한 일이다.

NAT를 이용한 보안
내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 IP 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 어느 정도의 보안이 가능해진다.

NAT의 단점
여러 명이 동시에 인터넷에 접속하게 되므로 실제로 접속하는 호스트의 숫자에 따라서 접속 속도가 느려질 수 있다는 단점이 있다.

profile
제니벨로그

0개의 댓글