본문 바로가기
네트워크

네트워크 정리 12. 단편화 (Fragmentation), IPSec (IP Security)

by 호놀롤루 2022. 4. 13.

1. 개요

단편화를 설명하기 전에, 대부분의 LAN과 WAN은 한 프레임에 전달할 수 있는 최대 데이터 크기를 가진다.

데이터그램이 이 단위보다 크다면, 데이터 링크 계층에 전달되기 전에 작은 크기로 분할해야 한다.

최대 전송 단위 (Maximum Transmission Unit, MTU) 라고 부른다.

 

데이터그램이 프레임으로 캡슐화 될 때, 데이터그램의 전체 크기는 네트워크에서 사용되는 MTU보다

작아야 한다.

 

IPSec은 통신과정 도중, 데이터그램(패킷)을 도청하거나 위조하는 악성 유저들로부터
데이터그램을 보호하기 위해 사용하는 보안 프로토콜이다.

 

 

2. 설명

2-1. 단편화와 관련된 필드 (Fields Related to Fragmentation)

  • 식별자 (Identification) : 16비트의 식별자 필드는 데이터그램이 전송된 발신지 호스트를 구별한다.

  • 플래그 (Flags) : 3비트의 플래그 필드는 3가지 플래그를 정의한다. 첫번째 비트는 사용하지 않고,
    두번째 비트는 0일 경우 단편화 가능, 1일 경우 단편화 불가능을 뜻한다.
    세번째 비트는 0일 경우, 분할된 마지막 패킷이라는 뜻이고, 1일 경우 뒤에 남은 게 있다는 뜻이다.
  • 단편화 오프셋 (Fragmentation Offset) : 13비트의 단편화 오프셋 필드는 전체 데이터그램에서 해당
    단편의 상대적인 위치를 나타낸다.
    그리고 데이터그램의 크기가 오프셋의 범위보다 클 수도 있으니, 오프셋에서 나타내는 것은 각 오프셋의
    데이터가 시작하는 부분을 8로 나눈 숫자이다. (1400에서 시작이면 175)

2-2. 단편화 예시

 

4000바이트짜리 데이터그램을 보낸다고 치자.
(발신지) ---------  (라우터 1, MTU 1400) ----------- (라우터 3, MTU 1400) -------  (수신지)
                                      ㅣ                                                  ㅣ
                                (라우터 2, MTU 800)----------------

이런 경로가 있다고 칠 때, 우선 데이터그램이 라우터1을 통과해야 하는데, 크기가 4000이니 MTU가 1400인
라우터1을 통과할 수 없다.

데이터그램이 라우터1을 통과할 수 있도록 3조각으로 단편화시키면

원본 데이터그램 : total length (4020), identification (12,345), flags (000), offset (0)

F1 : total length (1420, 헤드 20바이트), identification (12,345), flags (001), offset (0, 0~1399)

F2 : total length (1420), identification (12,345), flags (001), offset (175, 1400~2799)

F3 : total length (1220), identification (12,345), flags (000), offset (350, 2800~3999)

이렇게 3등분이 된다. 그런데 경로를 보니, F1, F3는 라우터 3, 수신지로 이동하지만,
F2는 라우터2, 라우터3, 수신지의 경로가 나왔다.

 

F2의 크기로는 라우터2를 통과할 수 없으니 다시 단편화를 해야 한다.

F2-1 : total length (820), identification (12,345), flags (001), offset (175, 1400~2199)

F2-2 : total length (620), identification (12,345), flags (001), offset (275, 2200~2799)

 

이렇게 단편화 된 4개의 조각이 오면, offset과 flags 부분을 확인하며, 모든 조각이 다 오면 재조립해서

사용한다.

 

 

2-3. IPSec (IP Security)

스푸핑, 스니핑 등의 공격들로 부터 데이터그램을 보호하기 위해 사용하는 프로토콜이다.

IPSec에서 사용하는 기능은

  • 알고리즘과 키 정의 : 서로 안전한 채널을 생성하려는 두 개체의 보안의 목적으로 사용될 
    알고리즘과 키를 합의할 수 있다. (키와 알고리즘이 맞지 않으면 통신 불가)
  • 패킷 암호화 : 패킷 도청 공격 방지용
  • 데이터 무결성 : 패킷이 전송 중 변조되지 않았음을 보장, 수신한 패킷이 데이터 무결성 검사를
    통과하지 못하면 폐기한다. (패킷 변조 공격 방지)
  • 발신지 인증 : IPSec은 패킷의 발신지를 인증하여 패킷이 다른 공격자에 의해 생성된 것이 아님을
    보장한다. (IP 스푸핑 공격 방지)

 

댓글