네트워크 계층 프로토콜과 IP 주소 체계 완벽 정리

1. 네트워크 계층 프로토콜의 이해

1.1. 네트워크 계층 프로토콜 개요

네트워크 계층은 일반적으로 IP 계층으로 불리지만, 실제로는 IP 프로토콜만 존재하는 것은 아닙니다. ICMP(Internet Control Message Protocol), IPX(Internet Packet Exchange) 등 다양한 프로토콜이 이 계층에서 동작합니다.

1.2. IP 프로토콜의 역할과 특징

IP는 Internet Protocol의 약자로, 주로 IP 패킷의 형식을 정의하고 설명하는 프로토콜 파일의 이름입니다. 일반적으로 "IP"라고 하면 특정 프로토콜 파일 자체보다는 IP 프로토콜과 직간접적으로 관련된 모든 내용을 포괄적으로 지칭합니다.

핵심 기능

  • 네트워크 계층 장치에 논리적 주소 제공
  • 데이터 패킷의 경로 탐색 및 전달(라우팅) 담당

버전

  • IPv4 (IP Version 4)
  • IPv6 (IP Version 6)

1.3. 데이터 캡슐화 과정

애플리케이션 데이터는 TCP/IP 각 계층을 거치며 처리된 후 네트워크를 통해 목적지로 전송됩니다. 각 계층에서는 해당 계층의 프로토콜 데이터 유닛(PDU, Protocol Data Unit)을 사용하여 정보를 교환합니다. PDU는 계층마다 다른 정보를 포함하므로, 각 계층에서 다른 이름으로 불립니다.

상위 계층 데이터가 전송 계층에서 TCP 헤더를 추가하면 세그먼트(Segment)가 됩니다. 세그먼트는 네트워크 계층으로 전달되어 IP 헤더가 추가되며 패킷(Packet)으로 변환됩니다. 패킷은 데이터 링크 계층에서 헤더와 트레일러를 추가하여 프레임(Frame)이 되고, 최종적으로 비트(bits)로 변환되어 네트워크 매체를 통해 전송됩니다.

이처럼 프로토콜 스택이 데이터를 아래 계층으로 전달하면서 헤더와 트레일러를 추가하는 과정을 캡슐화(Encapsulation)라고 합니다.

1.4. IPv4 패킷 헤더 구조

IP 패킷(IP 데이터그램) 헤더의 주요 필드는 다음과 같습니다.

  • Version (버전, 4비트): IP 버전을 나타냅니다. 4는 IPv4, 6은 IPv6를 의미합니다.
  • Header Length (헤더 길이, 4비트): 헤더의 길이를 나타냅니다. 옵션(Option) 필드가 없으면 20바이트이며, 최대 60바이트입니다.
  • Type of Service (서비스 유형, 8비트): QoS 차등 서비스가 필요할 때 사용됩니다.
  • Total Length (전체 길이, 16비트): IP 패킷 전체의 길이를 나타냅니다.
  • Identification (식별자, 16비트): 패킷 분할 및 재조합 시 사용되는 식별자입니다.
  • Flags (플래그, 3비트): 패킷 분할 관련 플래그입니다.
  • Fragment Offset (프래그먼트 오프셋, 12비트): 분할된 패킷의 원본 내 위치를 나타냅니다.
  • Time to Live (TTL, 8비트): 패킷의 최대 수명(홉 수)을 나타냅니다.
  • Protocol (프로토콜, 8비트): 상위 계층 프로토콜을 식별합니다. 주요 값으로는 ICMP(1), IGMP(2), TCP(6), UDP(17) 등이 있습니다.
  • Header Checksum (헤더 체크섬, 16비트): 헤더 오류 검출을 위한 필드입니다.
  • Source IP Address (출발지 IP 주소, 32비트): 패킷을 보낸 호스트의 IP 주소입니다.
  • Destination IP Address (목적지 IP 주소, 32비트): 패킷을 받을 호스트의 IP 주소입니다.
  • Options (옵션, 가변): 선택적 기능을 위한 필드입니다.
  • Padding (패딩, 가변): 옵션 필드 이후 32비트 경계를 맞추기 위해 0으로 채워지는 필드입니다.

1.5. 패킷 분할(Fragmentation)

패킷을 여러 개의 작은 조각으로 나누는 과정을 분할이라고 합니다. 네트워크에서 전송되는 IP 패킷의 길이는 다양하지만, 데이터 링크 계층이 지원하는 최대 전송 단위(MTU)보다 클 경우 패킷을 분할하여 전송해야 합니다.

  • Identification: 송신 호스트가 부여한 식별자로, 분할된 패킷을 재조합할 때 사용됩니다.
  • Flags:
    • 비트 0: 예약(Reserved), 항상 0
    • 비트 1: DF(Don't Fragment), 1이면 분할 금지, 0이면 분할 허용
    • 비트 2: MF(More Fragments), 1이면 뒤에 더 많은 조각이 있음, 0이면 마지막 조각
  • Fragment Offset: 원본 패킷 내에서 이 조각이 시작되는 위치를 8바이트 단위로 나타냅니다. MF 플래그와 함께 사용되어 수신 측이 패킷을 올바르게 재조합할 수 있도록 돕습니다.

1.6. TTL(Time to Live)의 역할

TTL 필드는 패킷이 통과할 수 있는 최대 라우터(홉) 수를 설정합니다. 패킷이 라우터를 통과할 때마다 TTL 값이 1씩 감소하며, 값이 0이 되면 패킷은 폐기됩니다.

네트워크 장비의 라우팅 경로가 잘못 설정되어 루프(Loop)가 발생하면 패킷이 무한히 순환하여 네트워크에 혼잡을 유발할 수 있습니다. 이러한 상황을 방지하기 위해 IP 패킷 헤더에는 TTL 값이 포함됩니다. 패킷이 3계층 장비를 통과할 때마다 TTL 값이 1씩 감소하며, TTL이 0이 되면 패킷은 폐기됩니다. 또한, 패킷을 폐기한 장비는 패킷 헤더의 출발지 IP 주소로 ICMP 오류 메시지를 보낼 수 있습니다. (네트워크 장비 설정에 따라 ICMP 메시지 전송을 차단할 수도 있습니다.)

1.7. 프로토콜 번호(Protocol Number)

IP 패킷 헤더의 프로토콜 필드는 패킷을 처리할 상위 계층 프로토콜을 식별합니다. 이 필드는 수신 호스트의 IP 계층이 데이터 부분을 어떤 프로세스로 전달할지 결정하는 데 사용됩니다.

목적지 호스트의 네트워크 계층은 패킷을 수신한 후, 헤더의 프로토콜 필드를 확인하여 데이터를 처리할 상위 계층 프로토콜을 결정합니다. 이 필드는 ICMP(0x01)와 같은 네트워크 계층 프로토콜이나 TCP(0x06) 및 UDP(0x11)와 같은 전송 계층 프로토콜을 식별하는 데 사용됩니다.

2. IPv4 주소 체계

2.1. IP 주소의 개념

IP 주소는 네트워크에서 노드(또는 네트워크 장비의 인터페이스)를 식별하는 데 사용됩니다. IP 패킷이 네트워크에서 목적지를 찾는 데 필요한 핵심 정보입니다.

IP 주소는 현실 세계의 주소와 유사하게 네트워크 내의 특정 노드를 식별하며, 데이터는 이 주소를 통해 목적지를 찾아갑니다. IP 네트워크에서 컴퓨터를 인터넷에 연결하려면 IP 주소를 할당받아야 합니다. IP 주소를 통해 전 세계적인 네트워크 통신이 가능해집니다. IP 주소는 네트워크 장비 자체의 속성이 아니라 네트워크 인터페이스의 속성입니다. 즉, 특정 장비에 IP 주소를 할당한다는 것은 해당 장비의 특정 인터페이스에 주소를 할당하는 것을 의미합니다. 장비에 여러 개의 인터페이스가 있다면 각 인터페이스는 최소 하나의 IP 주소를 가져야 합니다. (일반적으로 라우터와 컴퓨터의 인터페이스에 IP 주소가 필요합니다.)

2.2. IP 주소 표기법

IPv4 주소는 32비트로 구성됩니다. 주로 "점(dot)으로 구분된 십진수 표기법"을 사용하여 표현합니다.

2.3. IP 주소의 구성 요소

  • 네트워크 부분(Network Part): 특정 네트워크를 식별합니다.
  • 호스트 부분(Host Part): 해당 네트워크 내의 특정 호스트를 구분합니다.
  • 서브넷 마스크(Subnet Mask): IP 주소에서 네트워크 부분과 호스트 부분을 구분하는 데 사용됩니다.

2.4. IP 주소의 계층적 구조

IP 주소는 네트워크 부분과 호스트 부분으로 구성됩니다. 네트워크 부분은 IP 주소가 속한 네트워크를 나타내고, 호스트 부분은 해당 네트워크 내의 특정 장치를 고유하게 식별합니다.

2.5. 클래스 기반 주소 체계 (Classful Addressing)

IP 주소 관리를 용이하게 하기 위해 A, B, C, D, E의 다섯 가지 클래스로 나누었습니다. 주요 클래스의 기본 서브넷 마스크는 다음과 같습니다.

  • A 클래스: 8비트 네트워크 부분, 0.0.0.0 ~ 127.255.255.255/8
  • B 클래스: 16비트 네트워크 부분, 128.0.0.0 ~ 191.255.255.255/16
  • C 클래스: 24비트 네트워크 부분, 192.0.0.0 ~ 223.255.255.255/24

2.6. 공인 IP 주소와 사설 IP 주소

공인 IP 주소(Public IP Address): IANA(Internet Assigned Numbers Authority)에서 전 세계적으로 유일하게 할당하는 IP 주소로, 인터넷 상에서의 고유성을 보장합니다.

사설 IP 주소(Private IP Address): 인터넷에 연결되지 않은 내부 네트워크(예: 대학의 폐쇄된 연구실 네트워크)에서 사용하기 위해 예약된 주소입니다. 이러한 네트워크에서는 IP 주소 충돌만 없으면 됩니다. IP 주소 공간 부족 문제를 해결하기 위해 사설 IP 주소 개념이 도입되었습니다. 사설 IP 주소는 특정 내부 네트워크에서만 사용되며, 공용 네트워크에서는 사용할 수 없습니다.

사설 IP 주소 범위는 다음과 같습니다.

  • A 클래스: 10.0.0.0 ~ 10.255.255.255
  • B 클래스: 172.16.0.0 ~ 172.31.255.255
  • C 클래스: 192.168.0.0 ~ 192.168.255.255

사설 네트워크와 인터넷 연결: 사설 IP 주소를 사용하는 네트워크는 기본적으로 인터넷에 직접 연결될 수 없습니다. 그러나 실제 필요에 따라 사설 네트워크가 인터넷과 통신해야 하는 경우, NAT(Network Address Translation, 네트워크 주소 변환) 기술을 사용하여 사설 IP 주소를 공인 IP 주소로 변환합니다.

참고: NAT는 사설 IP 주소와 공인 IP 주소 간의 변환을 수행하는 기본적인 기술입니다.

2.7. 특수 목적 IP 주소

IP 주소 공간에는 특별한 의미와 용도를 가진 주소들이 있습니다.

특수 IP 주소주소 범위설명
제한된 브로드캐스트 주소255.255.255.255목적지 주소로 사용되며, 해당 네트워크 세그먼트의 모든 호스트에게 패킷을 전송합니다. (일반적으로 라우터에 의해 차단됩니다.)
모든 주소(Any Address)0.0.0.0"알 수 없는 네트워크" 또는 "이 네트워크의 이 호스트"를 의미합니다.
루프백 주소127.0.0.0/8장치의 자체 소프트웨어 스택을 테스트하는 데 사용됩니다. (주로 127.0.0.1 사용)
링크-로컬 주소169.254.0.0/16호스트가 DHCP 서버로부터 IP 주소를 자동으로 할당받지 못했을 때 임시 통신을 위해 사용됩니다. (APIPA)

2.8. IPv4 vs IPv6

전 세계 IP 주소 할당 기관인 IANA가 관리하는 IPv4 주소는 2011년에 모두 소진되었습니다. 인터넷에 연결되는 사용자와 장치가 급증하면서 IPv4 주소 부족 문제는 더욱 심각해졌고, 이것이 IPv6로 전환해야 하는 가장 큰 동기가 되었습니다.

3. ICMP 프로토콜

3.1. ICMP 프로토콜 개요

ICMP(Internet Control Message Protocol)는 IP 프로토콜의 보조 프로토콜입니다. ICMP는 네트워크 장비 간에 다양한 오류 및 제어 정보를 전달하는 데 사용되며, 네트워크 정보 수집, 진단 및 문제 해결에 중요한 역할을 합니다.

3.2. ICMP 리다이렉트(Redirection)

ICMP 리다이렉트 메시지는 ICMP 제어 메시지 중 하나입니다. 특정 상황에서 라우터가 특정 호스트가 비최적 경로를 사용하고 있음을 감지하면, 해당 호스트에게 ICMP 리다이렉트 메시지를 보내 경로를 변경하도록 요청합니다.

ICMP 리다이렉트 동작 과정

  1. 호스트 A가 서버 A에 패킷을 보내기 위해 설정된 기본 게이트웨이 주소(라우터 RTB)로 패킷을 전송합니다.
  2. 라우터 RTB는 패킷을 수신하여 검사한 후, 해당 패킷이 출발지 호스트와 동일한 네트워크 세그먼트에 있는 다른 라우터(RTA)로 전달되는 것이 더 최적의 경로임을 확인합니다. 그런 다음 RTB는 호스트 A에게 리다이렉트 메시지를 보내 RTA로 직접 패킷을 보내도록 안내합니다.
  3. 호스트 A는 리다이렉트 메시지를 수신한 후, RTA로 패킷을 전송하고, RTA는 이 패킷을 서버 A로 전달합니다.

3.3. ICMP 오류 검출 (Echo 메시지)

ICMP Echo 메시지는 출발지와 목적지 간의 네트워크 연결 상태를 진단하는 데 자주 사용됩니다. 또한 패킷의 왕복 시간(RTT)과 같은 추가 정보도 제공합니다.

Ping 유틸리티 Ping은 네트워크 장비, Windows, Unix, Linux 플랫폼에서 사용되는 명령어로, ICMP 프로토콜을 기반으로 하는 간단하면서도 유용한 응용 프로그램입니다. Ping은 목적지 노드까지의 네트워크 연결 가능성을 확인하는 데 사용됩니다.

[RTA]ping 20.0.0.2
  PING 20.0.0.2: 56  data bytes, press CTRL_C to break
    Reply from 20.0.0.2: bytes=56 Sequence=1 ttl=254 time=70 ms
    Reply from 20.0.0.2: bytes=56 Sequence=2 ttl=254 time=30 ms
    Reply from 20.0.0.2: bytes=56 Sequence=3 ttl=254 time=30 ms
    Reply from 20.0.0.2: bytes=56 Sequence=4 ttl=254 time=40 ms
    Reply from 20.0.0.2: bytes=56 Sequence=5 ttl=254 time=30 ms

  --- 20.0.0.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss

3.4. ICMP 오류 보고

ICMP는 네트워크 연결 문제를 진단하기 위한 다양한 오류 메시지를 정의합니다. 이러한 오류 메시지를 통해 송신 장비는 데이터 전송 실패의 원인을 파악할 수 있습니다. 예를 들어, 네트워크 장비가 목적지 네트워크에 접근할 수 없을 때, 자동으로 ICMP 목적지 도달 불가(Destination Unreachable) 메시지를 송신 장비에 보냅니다.

Tracert 유틸리티 Tracert는 패킷 헤더의 TTL 값을 이용하여 패킷이 목적지까지 도달하는 경로를 홉(hop) 단위로 추적합니다. Tracert는 네트워크 패킷 손실 및 지연을 진단하는 효과적인 도구이며, 관리자가 네트워크 상의 라우팅 루프를 발견하는 데 도움을 줍니다.

[RTA]tracert 20.0.0.2

 traceroute to  20.0.0.2(20.0.0.2), max hops: 30 ,packet length: 40,press CTRL_C
 to break 

 1 10.0.0.2 		80 ms  	10 ms  	10 ms 

 2 20.0.0.2 		30 ms  	30 ms  	20 ms 

4. IP 주소 기본 설정 명령어

1. 인터페이스(Interface) 뷰로 진입

[Huawei] interface interface-type interface-number

이 명령어를 사용하면 지정된 인터페이스의 설정 모드로 진입하여 해당 인터페이스의 속성을 구성할 수 있습니다. interface-typeinterface-number는 인터페이스 유형과 번호를 의미합니다. 유형과 번호 사이에는 공백을 입력하거나 생략할 수 있습니다.

2. 인터페이스에 IP 주소 설정

[Huawei-GigabitEthernet0/0/1] ip address ip-address { mask | mask-length }

인터페이스 뷰에서 이 명령어를 사용하여 네트워크 장비의 인터페이스에 IP 주소를 할당하여 네트워크 연결을 구성합니다. ip-address는 점으로 구분된 십진수 형식의 IP 주소이고, mask는 점으로 구분된 십진수 형식의 서브넷 마스크이며, mask-length는 0에서 32 사이의 정수인 마스크 길이입니다.

태그: ipv4 IPv6 IP 주소 서브넷 마스크 라우팅

7월 14일 07:22에 게시됨