[OSI 7 Layer] 3.네트워크 계층(Network layer)

hugingstar·2025년 11월 19일

Network

목록 보기
4/21
post-thumbnail

ODI 7 Layer 중 3번째 층인 네트워크 계층에서는 IPv4, IPv6, ICMP, ARP, 라우터 등을 정리한다.

1. IP address (Internet protocol)

  • 인터넷 환경에서 서로를 인식하기 위해 사용하는 주소

1-1. IPv4

  • 총 32비트(4 바이트)로 구성되었다.
  • 10진수로 표기한다.
  • "."으로 구분하고 한 단위는 옥텟(Octet)이라 한다. 4개의 옥텟으로 구성되었다.
  • (예시) 192.168.53.2를 2진수로 변환하면? 11000000.10101000.00110101.00000010 각 옥텟은 2진수일때 8 비트

IPv4구조는 NetworkID/HostID 로 나뉘어진다. 만약 네트워크가 동일한 경우에는 서로 자유롭게 통신이 가능하고 호스트는 각각을 구분할 수 있다.

  • NetworkID : 네트워크를 구분하여 주는 ID
  • HostID : 호스트를 구분하여 주는 ID

  • Classful addressing : 32 비트를 8비트씩(4바이트) 나눠서, NetworkID를 제외하면 나머지 비트로는 호스트를 구분할 수 있다. 기관마다 필요한 호스트 ID의 개수가 다를 것이므로 이를 위해 클래스를 구분했다.
  • Class 내부에서는 Network 주소 + 호스트 할당 가능 주소 + 브로드캐스트 주소로 구성되어 있다.

(*간단하게 클래스 별로 내용을 표로 정리해서 훑어보고 세부 내용을 참고하기 바란다.)

여기서부터는 A class 부터 범위/계산 방법 등 세부 사항을 정리한다.

A class

  • 정의 : 옥텟 8자리중에서 첫번째 (1비트) 값은 무조건 "0"으로 고정된 클래스
  • A 클래스 네트워크 수 : 2^7 개, 호스트 범위 2^24개(볼드 제외한 자리 갯수가 24개 2~4옥텟)
  • 1 옥텟까지 네트워크 ID

A class 2진수 표현

0xxx xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx

A class 2진수 범위

0000 0000. 0000 0000. 0000 0000. 0000 0000 ~
0111 1111. 1111 1111. 1111 1111. 1111 1111

A class 10진수 범위 가장 앞자리가 0으로 고정되었기 때문에 127에서 끝난다.

0.0.0.0 ~
127.255.255.255

  • 1옥텟에 있는 127 부분이 네트워크 부분이고 나머지 2옥텟, 3옥텟, 4옥텟에 있는 부분이 호스트 부분이다.

  • A class 특징 : 1옥텟만 네트워크 ID이기 때문에 나머지는 호스트를 구분할 수 있어서 대용량으로 사용할 수 있다.

중요 : A 클래스 예시

IP주소 : 10.5.3.0 / 서브넷 마스크 : 255.0.0.0
전체 범위 : 10.0.0.0 ~ 10.255.255.255
네트워크 주소(NA) : 10.0.0.0 (가장 작은것)
브로드캐스트 주소(BA) : 10.255.255.255 (가장 큰거)
호스트 주소(HA) : 10.0.0.1 ~ 10.255.255.254 (앞 뒤로 2개를 빼고 할당 가능)

B class

  • 정의 : 옥텟 8자리중에서 첫번째 1비트, 2비트 값은 무조건 "10"으로 고정된 클래스
  • B 클래스 네트워크 수 2^14 개, 호스트 범위 2^16개(볼드 제외한 자리 갯수가 16개 3~4옥텟)
  • 1 옥텟부터 2 옥텟까지 네트워크 ID

B class 2진수 표현

10xx xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx

B class 2진수 범위

1000 0000. 0000 0000. 0000 0000. 0000 0000 ~
1011 1111. 1111 1111. 1111 1111. 1111 1111

B class 10진수 범위
가장 앞자리가 0으로 고정되었기 때문에 127에서 끝난다.

128.0.0.0 ~
191.255.255.255

중요 : B 클래스 예시

IP주소 : 172.16.53.1 / 서브넷 마스크 : 255.255.0.0
전체 범위 172.16.0.0 ~ 172.16.255.255
네트워크 주소(NA) : 172.16.0.0 (가장 작은것)
브로드캐스트 주소(BA) : 172.16.255.255 (가장 큰거)
호스트 주소(HA) : 172.16.53.2 ~ 172.16.255.254 (앞 뒤로 2개를 빼고 할당 가능)

C class

  • 정의 : 옥텟 8자리중에서 첫번째 1비트, 2비트, 3비트 값이 무조건 "110"으로 고정된 클래스, 소규모 네트워크에 할당
  • C 클래스 네트워크 수 2^21 개, 호스트 범위 2^8개(볼드 제외한 자리 갯수가 8개 4옥텟)
  • 1 옥텟부터 3 옥텟까지 네트워크 ID

C class 2진수 표현

110x xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx

C class 2진수 범위

1100 0000. 0000 0000. 0000 0000. 0000 0000 ~
1101 1111. 1111 1111. 1111 1111. 1111 1111

C class 10진수 범위
가장 앞자리가 0으로 고정되었기 때문에 127에서 끝난다.

192.0.0.0 ~
223.255.255.255

중요 : C 클래스 예시

IP주소 : 192.16.53.2 / 서브넷 마스크 : 255.255.255.0
전체 범위 172.168.53.0 ~ 172.168.53.255
네트워크 주소(NA) : 172.168.53.0 (가장 작은것)
브로드캐스트 주소(BA) : 192.168.53.255 (가장 큰거)
호스트 주소(HA) : 192.168.53.1 ~ 192.168.53.254 (앞 뒤로 2개를 빼고 할당 가능)

D class

멀티캐스트 주소

E class

연구 및 특수용도 목적으로 예약

공인 IP

  • 정의 : WAN에서 장비를 확인하기 위한 고유한 IP로서 중복이 불가능하다.
  • ISP(Internet Service Provider) 업체에서 관리한다.(예시) KT 등

Bogon IP (특수 목적 IP)

  • 특수한 목적으로 지정된 범위의 IP

Subnet Mask (Netmask)

  • Default submask - classful
    A Class : 255.0.0.0
    B Class : 255.255.0.0
    C Class : 255.255.255.0

  • Subnetting - Classless

  • Header (IPv4) : IPv4 패킷은 총 20~65536 바이트 구성이 된다. 이 때 헤더는 20~60 바이트 정도로 할당된다. (IPv4 헤더는 IP 패킷의 앞부분에 위치하며 고정 부분 20 바이트와 가변 부분 0~40 바이트로 구성되어 있다.옵션이 없을 떄 최소 20 바이트가 지정된다.) 그림에서 보면 기본적으로 20 바이트 내에는 헤더 길이, 헤더 체크섬, Soure IP address, Destination IP Address가 20 바이트 내에 들어있고, Option을 지나 데이터가 나온다.

범위

A : 0.0.0.0 ~ 127.255.255.255
B : 128.0.0.0 ~ 191.255.255.255
C : 192.0.0.0 ~ 223.255.255.255

사설 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

Example

(1) 64.250.191.30
64는 128보다 낮기 때문에 A Class이다.
NA : 64.0.0.0 (네크워크 주소는 가장 작은 것)
Subnetmark : 255.0.0.0
BA : 64.255.255.255 (가장 큰 것)
전체 범위 : 64.0.0.0 ~ 64.255.255.255
HA : 64.0.0.1 ~ 64.255.255.254 (앞 뒤로 두개 빼고)

(2) 164.207.245.140
164는 128에서 191 사이에 있으므로 B Class이다.
NA : 164.207.0.0 (가장 작은 것)
Subnetmark : 255.255.0.0
BA : 165.207.255.255 (가장 큰 것)
전체 범위 : 164.207.0.0 ~ 164.207.255.255
HA : 165.207.0.1 ~ 165.207.255.254 (앞 뒤 2개 뺀 것)

(3) 200.200.200.16
200은 192에서 223 사이에 있으므로 C Class이다.
NA : 200.200.200.0 (가장 작은 것)
Subnetmark : 255.255.255.0
BA : 200.200.200.255 (가장 큰 것)
전체 범위 : 200.200.200.0 ~ 200.200.200.255
HA : 200.200.200.1 ~ 200.200.200.254 (앞 뒤 2개 뺀 것)

1-2. IPv6

  • 총 128비트(Bit) 16바이트(Byte)
  • 16bit 씩 8개 영역
  • 16진수를 사용한다.
  • 콜론(":")으로 구분한다.
  • 생략법 : ~:0000:0000:~ 같은게 포함되면 생략 ~::~
  • 주소 개수 : 약 43억^4 개

1-3. IPv4 vs IPv6

  • 아래 표를 보고 IPv4와 IPv6를 비교한다.

1-4. ICMP (Internet Control Message Protocol)

  • ICMP는 인터넷 제어 메세지 프로토콜이고 네트워크 연결을 확인할 때 사용
  • 일반적으로 트러블슈팅(문제진단, 해결)에 가장 많이 사용된다. (참고: https://daengsik.tistory.com/19)
  • ping, tracecert/traceroute 명령어로 사용
  • Type: 메세지의 유형
  • Code : Type의 세부 내용
  • Checksum : 오류 검출(검사)
  • Other ~ : Type, Code에 따라서 지정(가변적)

1-5. ARP(Address resolution protocol)

  • IP 주소를 MAC 주소로 변화해주는 프로토콜(실제로 LAN에서는 MAC으로 전송되기 때문에 필요)
  • 같은 네트워크에서 통신을 할 때 IP주소를 통해 MAC address를 알아낸다.
  • 캐시테이블이라는 곳이 있다. 거기서 IP주소와 MAC을 매핑한다.
  • 알아낸 MAC address를 arp 캐시테이블에 저장한다.
  • arp가 작동한 후에 ICMP가 작동한다.
  • arp 프로토콜의 헤더

여기 그림을 보면 이더넷 헤더, arp 헤더를 확인할 수 있다.
CLI 명령어

arp -a : 확인
arp -d : 제거

스위치 명령어

show mac-address-table
clear mac-address-table

Inbound : 받은 /Outbound : 보낸

메세지가 갔다가 돌아왔을 때 편지봉투를 클릭해보면 1158이 새롭게 등록된 것 볼 수 있고, Outdound에서 나오고 난 후에 SRC 부분을 보면 MAC 주소를 볼 수 있다.

메세지(ping)를 보내는 PC0의 ICMP Outbound (PC1 입장에서는 Inbound) 응답은 0x08으로 보낸다.
메세지를 받은 PC1의 ICMP Outbound 응답은 0x00으로 응답을 한다.
정리하면 PC0에서 8번으로 보내서, PC1에서 0번으로 응답한다.

ICMP-ARP 작동 원리

Source A(192.168.53.2)에서 Target B(192.168.53.3)로 보낼 때
Ping하면 ICMP로 보내야 한다. 그런데 어디로 보낼지를 모른다면? ARP가 자리를 찾아서 알려줘야 한다.

IP 주소는 끊임없이 변화하고. MAC 주소 체계가 없는 상황을 가정하고 IP주소만 있는 상황에서 PC0 사용자가 자신의 IP를 192.168.1.2로 바꾼다면 PC0과 PC1 모두 192.168.1.2 IP를 가지게 된다. 그러면 원래 192.168.1.2는 주인이 누군지 모르게 된다. 동명이인이라도 주민번호가 다를 수 있고, 고유한 정보인 MAC 주소 또한 웬만해서는 변하지 않는다. 따라서 MAC 주소를 사용하여 전달하는 것이 확실하다. 이 때 ARP가 일대일 매칭으로 IP주소와 MAC 주소를 매칭시켜 준다.
(참고: https://aws-hyoh.tistory.com/70)

Ethernet
SRC(MAC) A의 MAC는 알고 있다.
DST(MAC) 0000.0000.0000 비어있는 상태

ARP
SRC_IP 192.168.53.2 SRC_MAC A의 MAC를 사용한다.
DST_IP 192.168.53.3 DST_MAC 0000.0000.0000 비어있는 상태

  1. A가 자신의 ARP Cache table에 B의 MAC 주소가 있는지 확인
    1-1. Cache table에 없는 경우
    1-1-1. ICMP가 멈추고 ARP가 동작한다.
    1-1-3. B가 ARP를 받으면 본인의 MAC 주소를 적어서 응답
    1-1-4. A가 응답을 받으면, 자신의 Cache table에 B의 MAC 주소를 저장
    1-1-5. 멈췄던 ICMP가 Ethernet Header에 B의 MAC주소를 적어서 요청을 보냄
    1-1-6. B가 ICMP Request를 받아서 A한테 ICMP Reply를 보냄
    1-2. Cache table에 있는 경우
    1-2-1. ARP Cache table에 B의 MAC주소가 있으니 바로 ICMP가 요청을 보냄
    1-2-2. B가 ICMP request를 받고 A한테 Reply

1-6. 라우터 (Router)

  • 서로 다른 네트워크 간 통신에 사용되는 장비, 스위치 만으로는 네트워크가 달라지면 통신이 안된다. 이때 필요한게 라우터다.
  • 라우터 : 데이터를 다른 네트워크까지 전달하는 경로를 찾고, 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비이다.

네트워크가 다른 상황 보고, 192.168.53.2에서 192.168.50.2로 ping 하려고 할 때 안되는 것을 확인할 수 있다. 같은 계층에꺼는 점선으로 그려진다.

네트워크가 다른 경우에는 중간에 라우터를 연결해야 한다.
다른 계층으로 연결할 때는 실선으로 보인다.

라우터 셧다운을 활성 상태로 바꾸는 방법
라우터 CLI 상에서

enable : 관리자 모드
conf t : Config 설정 모드
interface Gig0/0 : Gig0/0으로 config 설정
do show interface Gig0/0 : 설정된 것 확인
do show running-config : 이더넷 상태를 확인할 수 있다.
no shutdown : 이것을 실행하면 라우터 shutdown이 사라질 것 자고 있는 것 깨우고 위치 정보는 없는 상태가 된다.
ip address <ip주소 0번 192.168.53.1> <sub net mask 255.255.255.0> : 나가는 문
반대편도 설정해줘야 함
exit
interface gig0/1
no shutdown
do show running-config
ip address <ip주소 0번 192.168.50.1> <sub net mask 255.255.255.0> : 나가는 문

Fa0/1 Fast 이더넷
Giga0/0 은 기가이더넷

라우터의 양쪽에 no shutdown을 풀어줬을 때

양쪽 ip를 올바르게 설정하고 Gateway 설정까지 완료하면 ping이 잘될것이다.

0개의 댓글