[Network] 네트워크 계층 (3계층 / Network Layer)

 

네트워크 보안


(1) 네트워크 계층에 대한 이해

  • 데이터 링크 계층은 하드웨어의 주소만으로 통신, 통신하고자 하는 하드웨어(랜 카드)의 주소(MAC)를 알아야 하는데, 이를 위해서 통신하려는 개체가 물리 계층으로 직접 연결되어 있어야 함

  • 하지만 넓은 네트워크를 모두 직접 연결 불가능하고, 이는 데이터 링크 계층만으로 랜 간 통신이 불가능함을 의미

  • 그래서 랜을 벗어난 통신을 하기 위해 네트워크 계층에서 IP 주소를 사용

  • IP 주소는 인터넷을 하기 위해 컴퓨터마다 설정하는 주소를 의미 (각 랜의 주소)


(2) 네트워크 계층 프로토콜

  • IP 주소를 이용해 통신을 하기 위한 프로토콜 제공

  • 대표적으로 IP, ARP, RARP, ICMP, IGMP가 있음

 

네트워크 통신을 할 때 흔히 IP 주소를 사용하며, IP 주소를 설정하고 통신을 위해 IP 주소를 확인하는 경우는 있지만, 통신을 위해 MAC 주소를 알려주는 경우는 거의 없다.

 

그러나 LAN과 같은 물리적 매체에 연결된 두 장비가 네트워크 계층에서 적절한 통신을 위해서는 먼저 하위 계층인 데이터 링크 계층 간의 통신 경로 확보가 필요하다.

 

통신하려는 장비의 물리적 주소(MAC)를 확보하지 않고서는 통신을 할 수 없다.

 

 

2-1. ARP

  • 데이터를 전달하려는 IP 주소와 통신에 필요한 물리적 주소(MAC)를 알아내는 프로토콜

  • MAC 주소를 사용해 통신하지만, 정보로 담는 값은 IP이기 때문에 데이터 링크 계층과 네트워크 계층 중간에 위치

  • 선택 매체에 브로드캐스트를 통해 특정 IP 주소를 사용하는 호스트가 응답을 하도록 요구하는 방식 사용

  • 목적지 호스트가 응답 > 송신 호스트는 목적지 호스트와 연결을 맺고 데이터 전송 시작

  • ARP 패킷에 대한 목적지 호스트가 응답하면 송신지 호스트는 ARP 테이블을 설정

  • 호스트는 통신 시 ARP 테이블의 정보를 이용 > 데이터 링크 계층 통신 수행

 

[그림 1] ARP 패킷 구조

 

[표 1] ARP 패킷 내용

필드 이름 길이 내용
HRD 2Bytes

ARP 패킷이 사용되는 물리 계층의 네트워크 유형 정의

1 : 이더넷 (10Mb)

6 : IEEE802 네트워크

15 : 프레임 릴레이

16 : ATM

17 : HDLC

18 : 광 채널

19 : ATM (Asynchronous Transfer Mode)

20 : 직렬 연결

PRO 2Bytes

ARP를 위해 사용할 상위 계층 프로토콜 종류 지정

일반적으로 IPv4를 사용, 그에 대한 값은 2048 (0800 hex)

HLN 1Byte 하드웨어 주소 값의 길이, MAC 주소 값은 6
PLN 1Byte

상위 계층 프로토콜의 주소 값의 길이

IPv4 주소 값 길이를 의미 (4)

OP 2Bytes

ARP 패킷 동작의 종류 의미

1 : ARP Request

2 : ARP Reply

3 : RARP Request

4 : RARP Reply

SHA =HLN 패킷 송신자의 MAC 주소
SPA =PLN 패킷 송신자의 IP 주소
THA =HLN 패킷 수신자의 MAC 주소
TPA =PLN 패킷 수신자의 IP 주소

 

2-1. RARP

  • 데이터 링크 계층의 주소인 MAC 주소를 가진 네트워크 계층의 주소 (IP 주소를 확인하는 프로토콜)

  • 디스크가 없는 호스트가 자신의 IP 주소를 서버로부터 얻어내려면 RARP라는 TCP/IP 인터넷 프로토콜 사용 필요

  • 자체의 디스크 기억 장치가 없는 워크스테이션이나 지능형 단말기에서 사용

 

2-2. IP

  • 가장 대표적인 네트워크 계층 프로토콜

  • 하위 계층 서비스를 이용 > 두 노드 간의 데이터 전송 경로를 확립해주는 역할

  • 하위 계층으로 분류되는 데이터 링크 계층은 같은 회선에 있는 두 노드 사이 데이터를 전송하고, 네트워크 계층은 회선이 서로 다른 두 노드 사이의 데이터 전송

 

[그림 2] IP 패킷 구조

 

[표 2] IP 패킷 내용

필드 이름 길이 내용
Version 4bits IP의 버전 정보, 값이 0x4일 경우 IPv4를 의미
IHL 4bits IP 헤더 길이, 이 필드 값에 4를 곱한 값이 실제 헤더의 바이트 값
TOS 1Byte

라우터에서 IP 데이터그램을 처리할 때 우선 순위를 정의

우선 순위로는 최소 지연, 최대 처리율, 최대 신뢰성, 최소 비용을 설정 가능 (기본 값은 0)

TL 2Bytes 헤더를 포함한 데이터그램의 전체 길이 의미
Identification 2Bytes 데이터그램이 단편화될 때 모든 단편에 이 값이 복사되고, 단편화 된 데이터그램이 생성될 때마다 1씩 증가
Flag 3bits

단편화 여부와 단편화 된 조각이 첫 번째 조각인지, 중간 혹은 마지막 조각인지를 알려줌

RF (Reserved Fragment) : 아직 사용하지 않으므로 항상 0

DF (Don't Fragment) : 1이면 단편화되지 않았음, 0이면 단편화되었음을 의미

MF (More Fragment) : 0이면 마지막 단편이거나 유일한 단편이고, 1이면 마지막 단편이 아님을 의미

Fragment Offset 13bits 기존 데이터그램 안에서 단편의 상대적 위치 의미
TTL 1Byte

라우팅 과정에서 라우터를 몇 개 이상 통과하면 해당 패킷을 버릴지를 입력

라우터 하나를 지날 때마다 값이 1씩 줄어들고, 0이 되면 해당 패킷은 버려짐

Protocol 1Byte

IP 계층 서비스를 사용하는 상위 계층 프로토콜 정의

1 : ICMP

2 : IGMP

6 : TCP

17 : UDP 

Header Checksum 2Bytes

패킷 전달 중 발생할 수 있는 오류 검사를 위해 사용하는 것

송신측에서 체크섬을 계산하여 전송 

Source Address 4Bytes 송신측의 IP 주소
Destination Address 4Bytes 수신측의 IP 주소
Options 가변 해당 패킷에 대한 옵션 사항을 입력할 수 있음
Padding 가변 옵션 내용이 입력 될 경우 그 값이 32배수로 데이터가 마무리되도록 0으로 채움
Data 가변 IP 패킷을 통해 전송되는 데이터 부분

 

IP는 32자리 2진수로, 8자리마다 점을 찍어 구분하고 개수가 제한되어 있기 때문에 체계적으로 사용할 수 있도록 별도 규칙을 두었다.

 

IP 주소는 A, B, C, D, E 클래스로 구분하는데 각 클래스는 네트워크 부분과 호스트 부분으로 구성되어 있다.

 

A 클래스는 첫 번째 8자리가 네트워크 주소, 나머지 값은 호스트 주소이다.

 

B 클래스는 두 번째 8자리까지 네트워크 주소, 나머지가 호스트 주소이다.

 

C 클래스는 세 번째 8자리까지가 네트워크 주소, 마찬가지로 나머지가 호스트 주소이다.

 

[그림 3] IP 주소 클래스

 

A, B, C 클래스는 맨 앞부분에 시작하는 2진수 숫자에 따라 구분한다.

 

A 클래스의 네트워크가 가장 크고, C 클래스의 네트워크가 가장 작다.

 

 

[표 3] 네트워크 클래스 구분

시작 주소 구분 내용
0 A 클래스

0번 ~ 127번 네트워크

2**7(128)개 가능, 하나의 A 클래스에 256**3개 호스트 존재 가능

10 B 클래스

128번 ~ 191번 네트워크

2**6 x 256(16,384)개 가능, 하나의 B 클래스에 256**2개 호스트 존재 가능

110 C 클래스

192번 ~ 223번 네트워크

2**5 x 256**2(2,097,152)개 가능, 하나의 C 클래스에 256개 호스트 존재 가능

1110 D 클래스

224번 ~ 239번 네트워크

멀티미디어 방송할 때 자동 부여

E 클래스

240번 ~ 255번 네트워크

테스팅을 위한 주소 대역으로, 사용하지 않음

 

각 클래스마다 다음과 같이 사설 네트워크 대역을 지정해놓았다.

 

[표 4] 클래스별 사설 네트워크 범위

구분 지정된 사설 네트워크
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

 

사설 네트워크는 공인 네트워크의 주소 부족 현상 해결을 위해 많이 사용된다.

 

 

2.3 ICMP

  • 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 오류를 알려주는 프로토콜

  • IP 데이터그램을 사용하지만 메시지는 TCP/IP 소프트웨어에 의해 처리되며, 응용 프로그램 사용자에게 직접, 분명하게 보이지 않음

  • ICMP를 사용하는 대표적 툴은 ping

 

IP는 비연결 지향형 프로토콜로, 패킷이 확실히 전송된다는 보장이 없기 때문에 라우터나 노드(호스트) 등에서 오류가 생겨 목적지까지 도달하지 못하기도 한다.

 

이런 경우 네트워크 연결 상태를 확인할 필요가 있는데, 이때 필요한 것이 ICMP이다.

 

ICMP는 IP 계층 위에서 동작하지만 TCP, UDP의 전송 계층 프로토콜과 별개다.

 

[그림 4] ICMP 패킷 구조

 

 

[표 5] ICMP 패킷 내용

필드 이름 길이 내용
Type 1Byte

ICMP 메시지 타입을 가리키며, 다음과 같은 값이 존재

0 : Echo Reply

4 : Source Quench

5 : Redirect

8 : Echo Request

11 : Time Exceeded

Code 1Byte 각 타입별로 세부적인 값을 적음
Checksum 2Bytes 패킷의 무결성을 위한 오류 보정 값
Data 가변 ICMP를 통해 보내는 데이터 / 보통 의미 없는 문자열로 채워짐

 

 

ICMP는 크게 오류 통지를 위한 오류 메시지와 진단용 문답 메시지의 두 종류로 구분 된다.

 

2-3-1. ICMP Echo Request 메시지

  • 송신 측의 전송 패킷이 목적지 노드나 라우터에 도착했는지를 확인하는 데 사용

  • 송신 측 노드는 목적지 노드에 대해 'ICMP Echo Request 메시지'를 송신, 목적지 노드로부터 'ICMP Echo Reply' 메시지가 회신되면 패킷이 무사히 전송된 것으로 인식

[그림 5] ICMP Echo Request

 

2-3-2. ICMP Destination Unreachable 메시지

  • 라우터가 특정 노드의 패킷을 목적지에 보내지 못할 경우, 송신 노드에 'ICMP Destination Unreachable 메시지'를 보냄

  • 메시지 안에는 목적지까지 전송되지 못한 이유를 나타내는 정보가 포함

  • 목적지 노드 IP 주소 경로를 찾아내지 못한 라우터는 이 메시지를 다시 송신측 라우터로 되돌려 보냄

  • 이 메시지를 해석한 송신측 노드는 패킷이 목적지에 도착하지 못했음을 알 수 있음

 

2-3-3. ICMP Redirect 메시지

  • 라우터가 송신측 노드에 적합하지 않은 경로로 설정되어 있을 경우 해당 노드에 대한 최적화 된 경로를 다시 지정해주는 'ICMP Redirect 메시지'를 보냄

 

2-3-4. ICMP Time Exceeded 메시지

  • 패킷이 네트워크 사이에서 무한정 돌아가지 않도록 각 라우터가 패킷을 처리할 때마다 TTL(활성화 지속 시간)을 감소시켜 그 값이 '0'이 되면 송신측 라우터에 해당 메시지를 되돌려 보내 패킷이 폐기된 사실을 알림

[그림 6] ICMP Time Exceeded

 

위 그림에서 보듯이 노드 A에서 TTL 값을 3으로 전송한다면, 라우터 A에서 2가 되고, B에서 1, C에서 0이 되므로 패킷이 폐기되고 노드 B에는 전달되지 못할 것이다.

 

2-3-5. ICMP Source Quench 메시지

  • 저속 광역 회선 등을 사용할 경우, IP 라우터의 WAN 쪽에서 집중이 발생할 수 있음

  • 집중 완화를 위해, 송신측 큐 값이 '0'으로 남아 송신 불능 상태가 되면 해당 메시지를 송신측 노드에 보냄

  • 송신측은 이 메시지의 정보를 해석하여 회선의 어딘가가 혼잡하다는 사실을 인식하고 송신 패킷의 양 제어

[그림 7] ICMP Source Quench

 

 

2.4 IGMP

  • 컴퓨터에서 다른 컴퓨터로 IP 데이터를 전달하는 방식으로 유니캐스트, 브로드캐스트, 멀티 캐스트 세 가지 존재

  • IGMP는 세 가지 전달 방식 중 멀티캐스트에 관여하는 프로토콜

  • 멀티캐스트 그룹을 관리하는 역할

 

2-4-1. 유니캐스트

  • 한 호스트에서 다른 호스트로 전송하면 이를 유니캐스트라 함

  • 송/수신단이 1:1로 대비되며, 일반적인 IP 데이터 전송은 모두 유니캐스트 사용

 

2-4-2. 브로드캐스트

  • 호스트에서 IP 네트워크에 있는 전체 호스트로 데이터를 전송하는 것을 브로드캐스트라 함

  • TCP/IP에서 브로드캐스트용 주소는 IP 호스트 대역 주소가 모두 '1'인 경우

  • 일반 브로드캐스트는 255.255.255.255

  • 예로 다이렉트 브로드캐스팅은 C 클래스에 속한 211.32.34.0 네트워크에 대해 브로드캐스팅을 하고자 하는 경우에 목적지 주소를 211.32.34.255로 지정해서 보내는 것

 

2-4-3. 멀티캐스트

  • 유니캐스트와 브로드캐스트의 중간 형태로, 송신하는 하나의 호스트에 특정한 호스트를 묶어서 전송하는 것

  • 지정한 주소로 패킷을 한 번만 전달하면 멀티캐스트 그룹에 속한 모든 호스트에 전달되기 때문에 효율이 높음

  • IP 멀티캐스트 주소는 D 클래스 주소 대역 (244.0.0.1 ~ 239.255.255.255)으로 규정


(3) 네트워크 계층 관련 장비

  • 라우터는 네트워크 계층 대표적 장비로, 게이트웨이라고도 부름

  • 게이트웨이는 원래 서로 다른 프로토콜을 사용하는 네트워크를 연결해주는 장비

  • 라우터의 특성으로는 논리적으로 분리된 둘 이상의 네트워크를 연결하는 역할을 하며, 반대로 로컬 네트워크에서 브로드캐스트를 차단해 네트워크를 분리하는 역할도 수행

  • 라우터의 중요 기능은 패킷 교환망에서 패킷 최적 경로를 찾기 위한 라우팅 테이블을 구성, 라우팅 테이블에 따라 패킷을 목적지까지 가장 빠르게 보내는 길잡이 역할

[그림 8] 라우터


(4) 라우팅

  • 라우팅 테이블은 라우터만 있는 것이 아닌, 네트워크 계층 통신을 하는 모든 장치는 라우팅 테이블을 가짐

  • 일반 PC도 네트워크 인터페이스가 둘 이상이면 라우터로 구성 가능

[그림 9] PC의 라우팅 테이블

 

위의 시스템의 IP 주소는 192.168.0.100이고, 게이트웨이 IP 주소는 192.168.0.1로 설정되어 있다.

 

Destination(목적지)인 0.0.0.0은 라우팅 테이블에 목적지로 따로 명시되지 않은 모든 목적지 주소를 의미한다.

 

즉 라우팅 테이블에서 직접 구체적으로 지정한 주소 외 모든 목적지 주소는 192.168.0.100 인터페이스를 통해 게이트웨이 192.168.0.1로 보내라는 의미이다.

 

[그림 10] IP 주소 200.200.200.200에 대한 네트워크 경로 확인

 

tracert 명령으로 200.200.200.200으로 시작하는 경로로 ICMP 패킷이 전송되었다.

 

200.200.200.200으로 목적지 IP가 설정된 패킷을 192.168.0.1로 보냄을 확인할 수 있다.

 

로컬 네트워크에 있는 호스트이므로 192.168.0.1로 보내지 않고, 로컬 네트워크에서 상대방을 찾으라는 의미이다.

 

[그림 11] LAN의 서브넷 마스크 설정

 

위 넷마스크 값은 제어판의 네트워크 카드에서 설정하는 서브넷 마스크 값이다.

 

즉, 서브넷 마스크와 넷마스크는 같은 것을 의미한다.

 

위 값을 255.255.255.224로 설정하면, 라우팅 테이블의 내용도 255.255.255.224로 바뀌게 될 것이다.

 

이러한 라우팅은 다시 정적 라우팅과 동적 라우팅으로 나뉘게 된다.

 

 

4-1. 정적 라우팅

  • 관리자 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정한 것

  • 네트워크에 변경사항이 발생하면 라우팅 테이블을 수동으로 직접 고쳐줘야 함

[그림 12] 정적 라우팅

 

4-1-1. 정적 라우팅 특징

  • 경로 설정이 실시간으로 이루어지지 않아 초기에 관리자가 다양한 라우팅 정보를 분석한 최적 경로 설정이 가능

  • 라우팅 알고리즘을 통한 경로 설정이 이루어지지 않아 라우터의 직접적인 처리 부하 감소

  • 네트워크 환경 변화에 대한 능동적 대처 어려움

  • 네트워크 환경 변화 시 관리자가 새로운 라우팅 정보를 통해 경로 재산출하여 각 라우터에 제공해야 함

  • 비교적 환경 변화가 적은 형태의 네트워크에 적합

 

4-2. 동적 라우팅

  • 라우터가 네트워크 연결 상태를 스스로 파악하여 최족 경로를 선택해 전송하는 방식

  • 네트워크 연결 형태가 변경되어도 자동으로 문제를 해결할 수 있다는 큰 장점을 가짐

[그림 13] 동적 라우팅

 

예로, 위 그림처럼 라우터 A에서 라우터 F로 가는 패킷이 있다면 경로 1과 경로 2 중 부하가 걸리지 않는 경로로 데이터를 전송한다.

 

만약 문제가 있어 라우터 C가 제대로 작동하지 않는다면 자동으로 경로 1로만 패킷을 전달한다.

 

 

4-2-1. 동적 라우팅 특징

  • 경로 설정이 실시간으로 이루어져 네트워크 환경 변화에 능동적으로 대처 가능

  • 라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어져 관리하기 쉬움

  • 주기적인 라우팅 정보 송수신으로 인한 대역폭 낭비 초래

  • 네트워크 환경 변화 시 라우터에 의한 경로 재설정으로 라우터 처리 부하가 증가하며 지연이 발생함

  • 수시로 환경이 변하는 형태의 네트워크에 적합

 

[표 6] 정적 / 동적 라우팅 비교

구분 정적 라우팅 동적 라우팅
라우팅 테이블 관리

수동

네트워크 변화 (라우터 추가 / 변경 / 회선 장애 등)에 대한 자동 인지 불가

자동

네트워크 변화를 자동 인지하여 정보 전송 경로 재구성

처리 부하

라우팅 테이블 갱신을 위한 별도 부하 없음

CPU와 메모리에 부하 적음

네트워크 장애 실시간 관리 위한 NMS와 각 라우터 간 정보 전송 많음 (CPU에 부하 다소 발생)

라우팅 테이블 갱신을 위해 라우터 간 정보 교환

CPU와 메모리에 부하 많음

네트워크 장애를 실시간으로 관리할 필요 없음

백업 구성

백업 구성 곤란

별도 네트워크 장비 이용하여 회선 백업 기능

백업 구성이 쉬움 (회선 장비)
복구 기능

백업 회선 있는 경우, 회선 장애 시 수 초 내로 복구 기능

기타 장애 시 최소 10분 이상 복구 시간 필요 (백본 라우터 장애 시 30분)

백업 회선 있는 경우 수 초 내로 복구 가능
인터페이스 변경이 적을 때 유리 변경이 많을 때 유리
노드 추가 / 변경 / 확대 운영 요원이 라우팅 작업 대처 용이
중간 경로 단일 경로 적합 다중 경로 적합

# Reference

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18
[Network] 네트워크 보안 기초  (0) 2020.03.11

+ Recent posts