별의 공부 블로그 🧑🏻‍💻
728x90
728x170

23. 인터넷 계층

1. 인터넷 계층 개요

개요

  • 인터넷 계층은 송신자의 IP 주소와 수신자의 IP 주소를 읽어서 경로를 설정하거나 전송하는 역할을 수행함.
  • 다중 네트워크 링크를 통해 패킷의 발신지-대-목적지 전달에 대한 책임을 가짐.
    • 데이터 링크 층은 노드 간 전달 책임, 즉 Point-to-Point
  • 인터넷 계층은 IP, ICMP의 TCP/IP 프로토콜 군이 존재함.
  • 이외에도 멀티캐스팅을 위한 IGMP(Internet Group Management Protocol), 라우팅을 위한 BGP, ISPF, RIP 등이 존재함.
  • 경로 설정(Routing)
    • 수신자의 IP 주소를 읽어서 어떻게 목적지까지 가는 것이 최적의 경로인지를 판단하는 것
    • 라우터(Router) 가 이러한 작업을 수행함.

기능

  • 경로 설정(Routing)
    • 경로를 결정
  • Point to Point Packet 전달
  • 논리 주소 지정(Logical Addressing)
  • 주소 변환(Address Transformation)
  • 인터넷 계층의 논리적 주소 지정
    • IP 주소로 변환해서 사용한다는 의미
  • 데이터그램(Datagram)
    • 기존 패킷(Packet)에 IP Header를 붙이는 것
  • 인터넷 계층의 논리적 주소 지정
    • www.naver.com의 URL을 210.10.10.101의 IP 주소로 변환해서 사용한다는 것을 의미함.

데이터 그램(Datagram)

  • 기존 패킷(Packet)에 IP Header를 붙이는 것
Message TCP 혹은 UDP IP Header

 

2. IP(Internet Protocol) 프로토콜

  • IP 프로토콜
    • IP 주소 형태로 송신자와 수신자의 IP 주소를 가지고 있음.
    • IP 주소를 읽어서 최적의 경로를 결정할 수 있게 해줌.
    • 32비트 주소 체계로 이루어진 IPv4 와 128비트 주소 체계로 이루어진 IPv6 가 있음.

(1) IP 프로토콜의 개요

  • TCP/IP망의 네트워크 계층(IP 계층)의 주소화, 데이터그램 포맷, 패킷 핸들링 등을 정의해 놓은 인터넷 규약
  • 인터넷 프로토콜은 현재 IPv4와 IPv6가 사용되고 있음.
  • IPv6
    • IP 주소의 부족 문제를 해결하기 위해서 주소 비트 수를 128비트로 늘린 것
    • 모든 디지털 단말기에 IP 주소를 부여하여 인터넷과 연계하려고 하는 것
      • 최근 이러한 서비스를 IoT 서비스라고 하고 있음.
전송 계층 : TCP, UDP

│  NW 계층
라우팅 프로토콜
- 경로 선택
- RIP, OSPF, BGP
IP 프로토콜
- 주소화
- 데이터그램 포맷
- 패킷 핸들링 규약
ICMP 프로토콜
- 에러 보고
- 라우터 시그널링
링크 계층
물리 계층

(2) IP Header 구조

  • IP Header 정보를 보면, IP 프로토콜이 무슨 기능을 갖고 있는지 좀 더 명확히 알 수 있음.
    • IP Header에는 버전(Version) 정보가 있음.
      • 버전 정보는 IPv4와 IPv6을 구분하는 역할을 함.
      • 버전 정보를 보고 라우터 가 IP Header의 구조를 파악함.
    • Flag와 Fragment Offset
      • 패킷을 전송할 때 패킷의 크기가 너무 크면 패킷은 분할됨.
      • 패킷이 분할될 경우, 분할된 패킷을 수신자가 수신한 후 다시 조립해야 함.
        • 띠라서 패킷 분할과 관련된 정보가 있어야 하며, 이것이 그 역할을 수행함.
  • TTL(Time to Live)
    • IP 패킷이 통과할 수 있는 라우터의 수
    • 라우터를 하나 통과할 때마다 1씩 감소하여 0이 되면 패킷은 자동으로 폐기됨.
      • 인터넷에서 무한정으로 네트워크에 떠도는 패킷을 없애기 위함.
  • Protocol
    • IP Header 위의 상위 프로토콜의 종류
    • TCP 혹은 UDP인지를 의미함.
  • Header Checksum
    • 헤더의 무결성을 검사하기 위한 것

IP Header 구조

  • Version : IPv4 버전
  • Header LENgth : Header의 전체 길이
  • Type of Service : 서비스 유형
  • Total Length : IP Diagram Byte 수
  • Identification : Host에서 보낸 Datagam 식별
  • Flags & Offset : IP Datagram 단편화 정보
  • Time to Live : Datagram이 통과할 수 있는 라우터 수
  • Protocol : ICMP, TCP, UDP
  • Header Checksum : IP Header Checksum 계산

(3) IP 단편화(Fragmentation)

  • 네트워크에는 MTU(Maximum Transmission Unit) 라는 것이 있음.
    • 한번에 통과할 수 있는 패킷의 크기를 의미함.
    • MTU 값보다 패킷의 크기가 크면 패킷은 분할됨.
      • 이 정보는 Flag와 Offset에 포함되게 됨.

IPv4의 단편화(Fragmentation)와 재결합(Reassembly)

  • 물론 패킷이 수신자에게 도착하면 다시 조립되어 원래의 패킷을 만듦.
  • MTU 값 확인
    • 이더넷(Ethernet) 정보를 조회하면 됨.
    • 리눅스에서 ifconfig 명령을 실행하면 됨.
    ubuntu@ip-172-31-43-90:~$ ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.43.90  netmask 255.255.240.0  broadcast 172.31.47.255
        inet6 fe80::88a:29ff:fe31:26ea  prefixlen 64  scopeid 0x20<link>
        ether 0a:8a:29:31:26:ea  txqueuelen 1000  (Ethernet)
        RX packets 7548015  bytes 3119767309 (3.1 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7634941  bytes 901996788 (901.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536  
    inet 127.0.0.1 netmask 255.0.0.0  
    inet6 ::1 prefixlen 128 scopeid 0x10  
    loop txqueuelen 1000 (Local Loopback)  
    RX packets 32290 bytes 6284238 (6.2 MB)  
    RX errors 0 dropped 0 overruns 0 frame 0  
    TX packets 32290 bytes 6284238 (6.2 MB)  
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    
  • 윈도우에서 어떤 프로세스가 네트워크를 사용하는지 확인하는 방법
    • 명령 프롬프트에서 netstat -b 명령 실행
>netstat -b

활성 연결

  프로토콜  로컬 주소           외부 주소              상태
  TCP    127.0.0.1:49674        DESKTOP-38RRDU0:49675  ESTABLISHED
 [mysqld.exe]
  TCP    127.0.0.1:49675        DESKTOP-38RRDU0:49674  ESTABLISHED
 [mysqld.exe]
  TCP    127.0.0.1:50041        DESKTOP-38RRDU0:64130  ESTABLISHED
 [FoxitProxyServer_Socket_PH.exe]
  TCP    127.0.0.1:64130        DESKTOP-38RRDU0:50041  ESTABLISHED

 

3. IP 주소와 서브넷 마스크(Subnet Mask)

(1) 서브넷 마스크(Subnet Mask)

  • IP 주소는 클래스(Class)로 분류하고 있음.
    • 클래스는 IP 주소를 분류하는 기준으로 사용됨.
  • IP 클래스의 구조
    • 네트워크 ID
      • 네트워크에 부여될 수 있는 것
    • 호스트 ID
      • 하나의 네트워크에 부여될 수 있는 호스트 IP 주소의 자릿수
  • 최대 32비트에 호스트 ID의 자리가 클 경우
    • 하나의 네트워크에서 많은 수의 컴퓨터에 IP 주소를 부여해서 사용할 수 있음.

(2) 클래스(Class) 구조

  • Class A
    • 첫 바이트 7비트가 네트워크 식별자
    • 한 네트워크에 가장 많은 호스트를 가짐.
  • Class B
    • 14비트의 네트워크 식별자
    • 한 네트워크에 $2^{16}$ 대의 호스트 수용
  • Class C
    • 세 번째 바이트까지 네트워크 식별자
    • 한 네트워크에 $2^{8}$대까지 수용
  • Class D
    • 멀티캐스트 주소로 사용

(3) 서브넷팅(Subnetting)

  • 주어진 네트워크 주소를 작게 나누어 여러 개의 서브넷(논리적)으로 구성됨.
  • 네트워크 식별자 부분을 구분하기 위한 마스크(Mask)를 서브넷 마스크(Subnet Mask)라고 함.

서브넷팅 예제

  • Class C인 203.252.53. 네트워크를 할당 받은 기관에서 6개의 서브 네트워크를 구성함.
  • 서브넷 ID가 모두 0인 것과 1인 서브넷은 특수 주소로 제외됨.
  • 총 8개의 서브넷이 필요함.

(참고) CIDR(Classless Inter-Domain Routing) 표기법

  • 0/n으로 표시하고 n비트 만큼 네트워크 주소를 의미하고, 나머지 비트는 호스트 주소임.
  • 예) 200.10.10.100/24로 표시하는 네트워크 주소
    • 255.255.255.0의 C 클래스 주소를 의미함.
    • 24라는 값은 서브넷 마스크 값에서 1로 설정된 1의 수를 의미함.
      • 1의 수는 왼쪽부터 설정함.
    • 255.255.255.011111111.11111111.11111111.00000000로 1의 개수가 24개임.

 

4. 라우팅(Routing)

(1) 라우팅 개요

  • Internetwork를 토해서 데이터를 근원지에서 목적지로 전달하는 기능
  • 경로 설정에서 최단 경로 선정 및 전송을 수행하느 포워딩(Forwarding)을 함.
  • 목적지에 대한 경로 정보(Routing Table)를 인접한 라우터들과 교환하기 위한 규약

(2) 정적 라우팅과 동적 라우팅

  • 라우터는 IP 헤더에서 목적지의 IP 주소를 읽어서 경로를 결정하는 작업임.
  • 이러한 경로를 결정하는 방법
    • 정적 경로(Static Routing)
      • 사전에 미리 고정한 방법
      • 경로 설정이 실시간으로 이루어지지 않기 때문에 초기에 관리자가 다양한 라우팅 정보를 분석하여 최적의 경로 설정이 가능함.
      • 라우터의 직접적인 처리 부하를 감소시킬 수 있어서 비교적 환경 변화가 적은 형태의 네트워크에 적합함.
    • 동적 경로(Dynamic Routing)
      • 네트워크의 상태를 파악해서 최적의 경로를 결정하는 방법
      • 설정이 실시간으로 이루어지기 때문에 네트워크 환경 변화에 능동적인 대처가 가능함.
      • 라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어짐.
      • 수시로 환경이 변화되는 형태의 네트워크에 적합한 방법
  • 라우팅 경로 고정 여부에 따른 라우팅 프로토콜의 종류
    • 정적 경로(Static Routing)
      • 관리자가 라우팅 테이블의 경로를 직접 설정
      • 경로가 고정적임.
      • 수동으로 갱신하는 방식
      • 기법
      • - Floating Static Routing 등
    • 동적 경로(Dynamic Routing)
      • 네트워크 관리자의 개입 없이 네트워크 상황 변화에 따라 인접 라우터 간에 정보를 자동으로 교환하도록 설정
      • 경로 정보를 교환하여 최적의 경로를 결정
      • 상황에 따른 능동 대처 가능
      • 기법
        • Distance Vector Routing
        • Linked State Routing 등

(3) IGP와 EGP 라우팅 프로토콜

  • 라우팅 프로토콜
    • 경로를 결정하는 알고리즘을 포함한 프로토콜
    • 다음의 방법으로 분류됨.
      • IGP(Internal Gateway Routing Protocol)
        • 한 도메인 내에서 경로를 결정하는 방법
      • EGP(Exterior Gateway Routing Protocol)
        • 도메인 간에 경로를 결정하는 방법
  • 라우팅 범위에 따른 라우팅 프로토콜의 종류
    • IGP(Internal Gateway Routing Protocol)
      • 동일 그룹(기업 또는 ISP(Internet Service Provider)) 내에서 라우팅 정보를 교환
    • EGP(Exterior Gateway Routing Protocol)
      • 다른 그룹과의 라우팅 정보를 교환

 

5. 라우팅 프로토콜의 종류

(1) Distance Vector와 Link State

  • Distance Vector
    • 경로를 결정할 때 통과해야 하는 라우터의 수가 적은 쪽으로 경로를 결정하는 방법
    • 홉 카운터(Hop Counter) 또는 TTL(Time to Live) 라고 함.
    • 도로에서 교차로가 적은 경우, 빠르게 도착하는 이유와 같음.
    • 프로토콜의 종류
      • RIP
      • IGRP
      • EIGRP
      • BGP(Border Gateway Protocol)
        • 인터넷에서 많이 사용되는 외부 라우팅 프로토콜
        • 서로 다른 자율 시스템(AS: Autonomous System)에서 동작하는 라우팅 프로토콜
        • 자율 시스템 간의 라우팅 프로토콜
  • Link State 기법
    • 네트워크 대역폭, 지연 정보 등을 종합적으로 고려해 Cost를 산정하고, 해당 Link의 Cost에 따라 경로를 결정하는 방법
    • 대표적으로 OSPF가 있음.
      • 라우터들을 트리 형태의 자료 구조처럼 연결
      • 라우터 간의 정보를 공유
      • 대규모 네트워크에서 사용되는 라우팅 프로토콜
      • 구조가 복잡함.
    • 주기적으로 지연과 같은 정보를 라우터 간에 공유해야 하고, 이것은 라우터 브로드캐스트를 통해서 공유함.

(2) Distance Vector 방식과 Link State 방식의 차이점

구분 Distance Vector Link State
알고리즘 최단 경로(Shorter Path)를 구하는 벨만 포드(Bellman-Ford) 알고리즘 기반 최소 신장 트리(Shortest Path Tree)를 구하는 다익스트라(Dijkstra) 알고리즘 기반
동작 원리 네트워크 변화 발생 시, 해당 정보를 인접한 라우터에 정기적으로 전달하고, 인접 라우터에서는 라우팅 테이블에 정보 갱신 - 라우터와 라우터를 연결하는 Link 상태에 따라 최적의 경로 설정
- 라우터가 네트워크 변화 감지 시 링크 상태 변경 정보를 인접한 라우터에게 즉각 전달하고 이를 저장함.
라우팅 정보 모든 라우터까지의 거리 정보 보관 인접 라우터까지의 Link Cost 계산
정보 전송 시점 일정 주기 (30초, 이웃 라우터와 공유) 변화 발생 시에만
대표 프로토콜 RIP, IGRP, EIGRP(내부 라우팅), BGP - OSPF : 가장 많이 사용됨.
- IS-IS
단점 - 변화되는 라우팅 정보를 모든 라우터에 주기적으로 갱신하므로 망 자체의 트래픽을 유발
- 라우팅 정보를 변경하는 문제 발생 시, Routing Loop가 발생할 가능성이 있음.
- 네트워크 전체 정보 유지를 위한 많은 메모리 소요
- 라우터의 CPU 사용량이 높아짐.
- 라우터 간 회선의 대역 차이로 동기화를 실패할 가능성이 있음.

 

6. RIP(Routing Informaton Protocol)

(1) RIP 개요

  • RIP
    • 거리 벡터 기반의 라우팅 프로토콜
    • 목적지까지 경로를 결정할 때 통과해야 하는 라우터의 수가 적은 쪽으로 경로를 결정함.
    • 통과해야 하는 라우터 수를 홉 수(Hop Count) 라고 함.
      • 만약 홉 수가 16Hop을 넘으면 패킷을 폐기함.
    • 라우팅 테이블을 유지하여 네트워크 상태 정보를 보유해야 함.
      • 이를 위하여 30초 단위로 RIP 브로드캐스팅(Broadcasting)을 통해서 라우팅 테이블을 관리함.

(2) RIP의 주요 특징

구분 내용
개념 - RFC 1058에 정의되어 있음.
- 대표적인 거리 벡터 라우팅 프로토콜
동작 원리 - 라우터 간 거리 계산을 위한 척도로 홉 수(Hop Count)를 사용
- 16Hop 이상이면 패킷을 폐기
- 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주
- 수신된 목적지의 거리 값과 현재 거리 값을 비교하여 작은 것을 기준으로 라우팅 테이블을 변경
라우팅 정보 라우팅 정보 변경 시 모든 망에 적용하므로, 큰 규모의 망에는 적합하지 않음.

(3) 라우팅 테이블

  • 윈도우 시스템에서 라우팅 테이블의 확인
    • netstat -r
> netstat -r
===========================================================================
인터페이스 목록
 22...00 ff bd ff 2c 60 ......TAP-Windows Adapter V9 - SecuwaySSLU
  6...10 02 b5 14 b4 88 ......Microsoft Wi-Fi Direct Virtual Adapter
 17...12 02 b5 14 b4 87 ......Microsoft Wi-Fi Direct Virtual Adapter #2
  9...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
  8...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
 20...10 02 b5 14 b4 87 ......Intel(R) Dual Band Wireless-AC 7265
 21...10 02 b5 14 b4 8b ......Bluetooth Device (Personal Area Network) #2
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 경로 테이블
===========================================================================
활성 경로:
네트워크 대상      네트워크 마스크     게이트웨이      인터페이스    메트릭
          0.0.0.0          0.0.0.0     172.30.1.254    172.30.101.37     50
        127.0.0.0        255.0.0.0             연결됨         127.0.0.1    331
        127.0.0.1  255.255.255.255             연결됨         127.0.0.1    331
  127.255.255.255  255.255.255.255             연결됨         127.0.0.1    331
       172.16.0.0      255.240.0.0             연결됨     172.30.101.37    306
    172.30.101.37  255.255.255.255             연결됨     172.30.101.37    306
   172.31.255.255  255.255.255.255             연결됨     172.30.101.37    306
      192.168.2.0    255.255.255.0             연결됨       192.168.2.1    291
      192.168.2.1  255.255.255.255             연결됨       192.168.2.1    291
    192.168.2.255  255.255.255.255             연결됨       192.168.2.1    291
     192.168.21.0    255.255.255.0             연결됨      192.168.21.1    291
     192.168.21.1  255.255.255.255             연결됨      192.168.21.1    291
   192.168.21.255  255.255.255.255             연결됨      192.168.21.1    291
        224.0.0.0        240.0.0.0             연결됨         127.0.0.1    331
        224.0.0.0        240.0.0.0             연결됨       192.168.2.1    291
        224.0.0.0        240.0.0.0             연결됨      192.168.21.1    291
        224.0.0.0        240.0.0.0             연결됨     172.30.101.37    306
  255.255.255.255  255.255.255.255             연결됨         127.0.0.1    331
  255.255.255.255  255.255.255.255             연결됨       192.168.2.1    291
  255.255.255.255  255.255.255.255             연결됨      192.168.21.1    291
  255.255.255.255  255.255.255.255             연결됨     172.30.101.37    306
===========================================================================
영구 경로:
  없음

IPv6 경로 테이블
===========================================================================
활성 경로:
 IF  메트릭 네트워크 대상           게이트웨이
  1    331 ::1/128                  연결됨
  9    291 fe80::/64                연결됨
  8    291 fe80::/64                연결됨
 20    306 fe80::/64                연결됨
  8    291 fe80::384d:8aad:b33:81/128
                                    연결됨
  9    291 fe80::997d:fa91:4c92:b5ba/128
                                    연결됨
 20    306 fe80::d1e1:abc2:dfa2:8273/128
                                    연결됨
  1    331 ff00::/8                 연결됨
  9    291 ff00::/8                 연결됨
  8    291 ff00::/8                 연결됨
 20    306 ff00::/8                 연결됨
===========================================================================
영구 경로:
  없음
  • 다음과 같이 route PRINT 명령어로 라우팅 테이블에 대한 화인이 가능함.
> route PRINT
===========================================================================
인터페이스 목록
 22...00 ff bd ff 2c 60 ......TAP-Windows Adapter V9 - SecuwaySSLU
  6...10 02 b5 14 b4 88 ......Microsoft Wi-Fi Direct Virtual Adapter
 17...12 02 b5 14 b4 87 ......Microsoft Wi-Fi Direct Virtual Adapter #2
  9...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
  8...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
 20...10 02 b5 14 b4 87 ......Intel(R) Dual Band Wireless-AC 7265
 21...10 02 b5 14 b4 8b ......Bluetooth Device (Personal Area Network) #2
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 경로 테이블
===========================================================================
활성 경로:
네트워크 대상      네트워크 마스크     게이트웨이      인터페이스    메트릭
          0.0.0.0          0.0.0.0     172.30.1.254    172.30.101.37     50
        127.0.0.0        255.0.0.0             연결됨         127.0.0.1    331
        127.0.0.1  255.255.255.255             연결됨         127.0.0.1    331
  127.255.255.255  255.255.255.255             연결됨         127.0.0.1    331
       172.16.0.0      255.240.0.0             연결됨     172.30.101.37    306
    172.30.101.37  255.255.255.255             연결됨     172.30.101.37    306
   172.31.255.255  255.255.255.255             연결됨     172.30.101.37    306
      192.168.2.0    255.255.255.0             연결됨       192.168.2.1    291
      192.168.2.1  255.255.255.255             연결됨       192.168.2.1    291
    192.168.2.255  255.255.255.255             연결됨       192.168.2.1    291
     192.168.21.0    255.255.255.0             연결됨      192.168.21.1    291
     192.168.21.1  255.255.255.255             연결됨      192.168.21.1    291
   192.168.21.255  255.255.255.255             연결됨      192.168.21.1    291
        224.0.0.0        240.0.0.0             연결됨         127.0.0.1    331
        224.0.0.0        240.0.0.0             연결됨       192.168.2.1    291
        224.0.0.0        240.0.0.0             연결됨      192.168.21.1    291
        224.0.0.0        240.0.0.0             연결됨     172.30.101.37    306
  255.255.255.255  255.255.255.255             연결됨         127.0.0.1    331
  255.255.255.255  255.255.255.255             연결됨       192.168.2.1    291
  255.255.255.255  255.255.255.255             연결됨      192.168.21.1    291
  255.255.255.255  255.255.255.255             연결됨     172.30.101.37    306
===========================================================================
영구 경로:
  없음

IPv6 경로 테이블
===========================================================================
활성 경로:
 IF  메트릭 네트워크 대상           게이트웨이
  1    331 ::1/128                  연결됨
  9    291 fe80::/64                연결됨
  8    291 fe80::/64                연결됨
 20    306 fe80::/64                연결됨
  8    291 fe80::384d:8aad:b33:81/128
                                    연결됨
  9    291 fe80::997d:fa91:4c92:b5ba/128
                                    연결됨
 20    306 fe80::d1e1:abc2:dfa2:8273/128
                                    연결됨
  1    331 ff00::/8                 연결됨
  9    291 ff00::/8                 연결됨
  8    291 ff00::/8                 연결됨
 20    306 ff00::/8                 연결됨
===========================================================================
영구 경로:
  없음

 

7. OSPF(Open Shortest Path First)

(1) OSPF의 개요

  • OSPF
    • 대규모 네트워크에서 사용하는 라우팅 알고리즘
    • 링크 상태(Link State) 알고리즘을 사용함.
      • 링크 상태 알고리즘 : 네트워크의 대역폭과 지연 정도, 흡수 등을 종합적으로 고려하여 최단 경로를 결정
    • 라우팅 알고리즘 : 다익스트라가 제안한 최단 경로 알고리즘
    • 최단 경로는 링크의 비용에 따라 결정됨.
  • OSPF의 개념 및 특징
    • RFC 1247에 정의되어 있는 IP 라우팅 프로토콜
    • 대규모 IP 망에서 사용되며 Link State Routing Protocol
    • 링크에서의 전송 시간을 비용으로 사용하여 각 목적지 별 최단 경로를 구함.
    • 네트워크에 변화가 발생했을 때, 상대적으로 짧고 간단한 링크 상태 정보를 교환
  • OSPF 동작 원리
    • 링크(Link)의 지연(Delay), 처리량(Throughput), 신뢰성(Reliability) 정보를 이용
    • 네트워크를 Area로 구분하여 많은 라우팅 정보의 교환으로 인한 라우터의 성능 저하를 예방하고 대역폭을 절약
    • 링크 변화 감지 시 변경된 링크에 대한 정보만을 즉시 모든 라우터에 전달하여 빠르게 라우팅 테이블을 갱신

(2) OSPF 계위

  • OSPF는 라우팅 계위를 만들어 라우팅을 수행함.
  • 라우팅 계위는 OSPF에서 관리하는 라우터들 간에 그 역할을 정의한 것을 의미함.
  • 예)
    • 경계 라우터(Boundary Router)
      • 다른 네트워크로 전달되는 패킷의 경로를 결정함.
    • 백본 라우터(Backbone Router)
      • 영역(Area) 라우터 간에 중계 역할을 수행함.
  • OSPF의 동작 원리 구성도

  • ABR(Area Border Router)
    • 영역 경계 라우터
    • Area에 백본망을 연결해주느 라우터
  • ASBR(Autonomous System Boundary Router)
    • 자율 시스템 경계 라우터
    • 다른 AS(Autonomous System)에 속한 라우터와 경로 정보를 교환
  • IR(Internal Router)
    • 내부 라우터
    • Area에 접속한 라우터
  • BR(Backbone Router)
    • 백본 라우터
    • 백본망에 접속한 모든 라우터

 

8. ICMP(Internet Control Message Protocol)

(1) ICMP 개요

  • TCP/IP에서 오류를 제어하는 프로토콜
  • 호스트 및 라우터는 다른 호스트나 라우터가 현재 도달 가능한지의 여부를 결정함.
  • 라우터는 특정 목적지 네트워크로 후속 IP 데이터그램을 보내는 데 사용할 수 있는 더 좋은 경로가 있음을 근원지 호스트에게 통지함.
  • 호스트나 라우터는 그들이 처리하기 너무 빠른 IP 데이터그램이 도착하면 이를 다른 시스템에게 통보함.

(2) ICMP의 주요 기능

  • IP 패킷 처리 도중 발견된 문제를 보고함.
  • 다른 호스트들로부터 특정 정보를 획득하기 위해 사용함.
  • TCP/IP 프로토콜에서 두 호스트 간에 에러 처리를 담당함.
  • 통신이 정상적으로 이루어지는지 확인함.

(3) ICMP 메시지 구조

Type Code Check Sum
Identifier Sequence Number
Optional Data
  • Type
    • ICMP 메시지 유형 표시
  • Code
    • Type과 같이 사용됨.
    • 세부적인 유형 표현
  • Check Sum
    • IP Datagram Checksum

(4) ICMP 메시지의 종류

Type Message 설명
3 Destination Unreachable 라우터가 목적지를 찾지 못할 경우 보내는 메시지
4 Source Quench 패킷을 너무 빨리 보내 네트워크에 무리를 주는 호스트를 제지할 때 사용
5 Redirection - 패킷 Routing 경로를 수정
- Smurf 공격에서 사용
8 or 0 Echo Request or Reply Host의 존재를 확인
11 Time Exceeded 패킷을 보냈으나 시간이 경과하여 패킷이 삭제되었을 때 보내는 메시지
12 Parameter Problem IP Header Field에 잘못된 정보가 있다는 것을 알림.
13 or 14 Timestamp Request and Reply Echo와 비슷하나 시간에 대한 정보가 추가됨.

(5) TTL(Time to Live)의 역할

  • ICMP에서는 TTL이 설정됨.
    • TTL은 라우터를 통과할 때마다 1씩 감소하게 됨.
    • TTL이 0이 되면, 패킷(Packet) 은 자동으로 폐기됨.
  • 패킷이 정해진 시간 내에 도착하지 않으면 ICMP는 시간 초과(Time Exceeded) 메시지를 보고함.
$ ping 172.31.43.90
PING 172.31.43.90 (172.31.43.90) 56(84) bytes of data.
64 bytes from 172.31.43.90: icmp_seq=1 ttl=64 time=0.037 ms                // ttl : 통과할 수 있는 라우터의 수, 리눅스 서버의 기본값은 64
64 bytes from 172.31.43.90: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 172.31.43.90: icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from 172.31.43.90: icmp_seq=4 ttl=64 time=0.057 ms
64 bytes from 172.31.43.90: icmp_seq=5 ttl=64 time=0.057 ms
64 bytes from 172.31.43.90: icmp_seq=6 ttl=64 time=0.055 ms
64 bytes from 172.31.43.90: icmp_seq=7 ttl=64 time=0.057 ms
^C
--- 172.31.43.90 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6151ms
rtt min/avg/max/mdev = 0.037/0.054/0.063/0.010 ms

 

9. 데이터 전송 방식

  • 데이터 전송 방식은 송신자와 수신자 간에 어떻게 데이터를 보낼 것인지를 의미함.
  • 유니캐스트(Unicast) : 1대 1로 데이터 전송
  • 브로드캐스트(Broadcast) : 1대 N으로 모두에게 전송
  • 멀티캐스트(Multicast) : 1 대 N 전송에서 특정 사용자에게만 데이터를 전송하는 방식
전송 방식 내용 개념도
유니캐스트(Unicast) 1:1 전송 방식
브로드캐스트(Broadcast) 1:N 전송 방식
(동일한 서브넷 상의 모든 수신자에게 전송)
멀티캐스트(Multicast) M:N 전송 방식
(하나 이상의 송신자들이 특정 그룹의 수신자에게 전송)
  • 애니캐스트(Anycast)
    • IPv6에서 새롭게 등장
    • 그룹에 등록된 노드 중에서 최단 경로 노드 1개에만 전송하는 기술
  • IPv6부터는 브로드캐스트(Broadcast)가 사라짐.

 

10. 멀티캐스트와 IGMP

(1) 멀티캐스트 개요

  • 멀티캐스트
    • 그룹에 등록된 사용자에게만 데이터를 전송하는 것
    • 그룹에 등록된 사용자를 관리하는 프로토콜 : IGMP

(2) IGMP 특징

  • 멀티캐스트 시에 멀티캐스트에 참석하는 수신자 정보를 제공함.
  • 1 대 N 방식으로 멀티캐스트 그룹에 메시지를 전송함.
  • 호스트와 라우터 사이에 이루어지며, TTL(Time to Live)이 제공됨.
  • 시작 호스트에서 수신을 받을 목적지 호스트들에게 메시지를 전송함.

(3) IGMP 메시지 구조

  • 8 바이트로 구성됨.
  • Version
    • IGMP 프로토콜의 버전 표시
    • 현재 IGMP Version 2
  • Type
    • 메시지 유형
    • 1 : 보고
    • 2 : 질의 메시지
  • Group Id
    • 보고 메시지의 경우, 호스트에서 신규 가입하고자 하는 멀티캐스트 서비스의 group id

 

11. NAT(Network Address Trasnlation)

(1) NAT 개요

  • 사설 IP를 라우팅이 될 수 있는 공인 IP로 변경하는 주소 변환

(2) NAT 장점

  • 공인 IP 부족 해결
    • 내부 망에서는 사설 IP 사용
    • 외부 망에서는 공인 IP 사용
  • 보안성
    • 내부를 사설 망으로 해서 공인 망으로부터 보호함.
  • ISP(Internet Service Provider) 변경에 따른 내부 IP 변경을 최소화 함.

(3) NAT의 종류

  • Normal NAT
    • N개의 사설 IP를 1개의 공인 IP로 변환
  • Reverse NAT(Static)
    • Normal NAT 설정만으로 외부에서 내부 네트워크로 접속할 수 없음.
    • Normal NAT로 설정된 외부 IP로 요청하여 N개의 사설 IP의 어떤 것에 매핑 할 수가 없음.
    • 이러한 경우, Reverse NAT는 1:1 매핑, Static 매핑
  • Redirect NAT
    • 목적지 주소를 재 지정할 경우 사용
      • 장애 시 사용
  • Exclude NAT
    • 특정 목적지로 접속할 경우, 설정된 NAT를 적용 받지 않도록 할 때 사용
  • Dynamic NAT
    • 내부의 사설 IP가 라우터 혹은 NAT 소프트웨어에 의해서 미리 정해진 공인 IP로 랜덤하게 매핑되는 방법
    • 정해진 공인 IP가 모두 사용 중일 경우, 나머지 사설 IP는 공인 IP로 사용할 수 없음.

  • Static NAT
    • 특정 사설 IP가 특정 공인 IP만 사용하도록 관리자가 미리 지정하는 방법

  • PAT(Port Address Translation)
    • Static NAT 또는 Dynamic NAT의 경우
      • 사용할 수 있는 공인 IP 보다 사설 IP의 수가 많다면 부족한 만큼 외부로 나갈 수 없는 사설 IP가 많아짐.
        • 하지만 PAT는 포트 변환을 통해서 공인 IP 하나만 있어도 많은 수의 사설 IP가 외부로 나갈 수 있음.
          • 사설 IP들은 각각 포트를 다르게 사용함.

 

12. ARP

(1) ARP 개요

  • ARP 프로토콜
    • IP 주소를 물리적인 하드웨어 주소인 MAC 주소로 변경하는 프로토콜
    • ARP Request로 보내고, 인접에 있는 컴퓨터가 ARP Reply를 통해서 응답함.
    • ARP Request와 ARP Reply을 통해서 ARP Cache Table을 유지해서 인접 컴퓨터의 IP 주소와 MAC 주소를 가지고 있게 됨.
  • 인터넷 주소(IP)를 물리적 하드웨어 주소(MAC)로 매핑함.
  • IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시(Cache) 라 불리는 메모리에 테이블 형태로 저장된 후, 다음 패킷 전송 시에 다시 사용함.
  • ARP Cache Table
    • MAC 주소와 IP 주소를 보유하고 있는 매핑 테이블

(2) ARP 동작 방식

  • 실제 네트워크 패킷을 모니터링해서 보면, ARP Request 패킷이 발송되면 ARP Reply으로 응답하고, Opcode는 2가 됨.

(3) ARP Operation Code

Op Code ARP Message Type
1 ARP Request
2 ARP Reply
3 RARP Request
4 RARP Reply
5 DRARP Request
6 DRARP Reply
7 DRARP Error
8 InARP Request
9 inARP Reply

(4) arp 명령어

  • arp로 IP 주소와 하드웨어 주소(MAC) 확인 (리눅스)
$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
ip-172-31-32-1.ap-north  ether   0a:aa:ef:39:2d:74   C                     eth0
  • arp로 IP 주소와 하드웨어 주소(MAC) 확인 (윈도우)
> arp -a

인터페이스: 192.168.21.1 --- 0x8
  인터넷 주소           물리적 주소           유형
  192.168.21.255        ff-ff-ff-ff-ff-ff     정적
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적

인터페이스: 192.168.2.1 --- 0x9
  인터넷 주소           물리적 주소           유형
  192.168.2.255         ff-ff-ff-ff-ff-ff     정적
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적

인터페이스: 172.30.101.37 --- 0x14
  인터넷 주소           물리적 주소           유형
  172.30.1.254          00-17-c3-1f-86-2a     동적
  172.31.255.255        ff-ff-ff-ff-ff-ff     정적
  224.0.0.2             01-00-5e-00-00-02     정적
  224.0.0.22            01-00-5e-00-00-16     정적
  224.0.0.251           01-00-5e-00-00-fb     정적
  224.0.0.252           01-00-5e-00-00-fc     정적
  239.255.255.250       01-00-5e-7f-ff-fa     정적
  255.255.255.255       ff-ff-ff-ff-ff-ff     정적

 

13. RARP

  • Diskless Host에서 사용하는 것
  • 운영체제도 없는 일종의 더미 터미널
    • 더미 터미널에서 자신의 물리적 주소인 MAC 주소를 서버에 전송하고 IP 주소를 수신 받아서 기동하는 것
  • 일반적인 데스크탑 PC에서는 필요하지 않고, 과거 은행에서 더미 터미널을 사용했을 경우 사용했던 방법
  • 물리적인 주소 MAC을 기반으로 논리적인 주소 IP를 알아오는 프로토콜
  • 하나의 호스트를 RARP 서버로 지정함.
  • 디스크가 없는 워크스테이션은 RARP Request 패킷을 전송함.
  • RARP 서버는 디스크가 없는 워크스테이션들의 물리적 하드웨어 주소(MAC)를 인터넷 주소로 매핑함.
  • RARP 서버는 인터넷 주소를 포함한 RARP Response 패킷으로 응답함.
  • RARP 요청 메시지는 브로드캐스트 로 전송하고, RARP 응답 메시지는 유니캐스트 로 전송함.
    • 오청 메시지에 송신자의 주소가 포함됨.

 


 

내용 출처 : 이기적 네트워크관리사 1·2급 필기 (임호진, 황성하 공저, 영진닷컴)

728x90
그리드형(광고전용)

'Certificate > Network Manager' 카테고리의 다른 글

27. FTP  (0) 2021.04.25
26. HTTP  (0) 2021.04.25
25. Telnet과 SSH  (0) 2021.04.25
24. 네트워크 접근(Network Access) 계층  (0) 2021.04.24
22. 전송 계층(Transport Layer)  (0) 2021.04.23
21. 애플리케이션 계층  (0) 2021.04.19
20. TCP/IP 프로토콜  (0) 2021.04.18
19. 에러 제어(Error Control)  (0) 2021.04.18
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖