[OSI 7 Layer] 2.데이터 링크 계층(Data link layer)

hugingstar·2025년 11월 18일

Network

목록 보기
3/21
post-thumbnail

OSI 7 Layer에서 두번째 계층인 데이터 링크 계층에서는 MAC, DNS, Ethernet, 스위치, STP 대해서 정리한다.

  • 네트워크 기기간의 데이터 전송, 오류 검출 및 제어, 흐름 제어를 담당하는 계층

  • 같은 네트워크 대역을 사용하는 단말들에 대해 신뢰성 있는 전송을 보장한다. 즉 'MAC address'를 활용하여 같은 구간 내의 Endpoint 또는 Switching 장비에 전달하며, 1 Layer에 해당하는 물리 계층에 생길 수 있는 오류를 찾는다.(Data+ HTTP Header + TCP Header + IP Header + Ethernetfram Header) (출처 : https://aws-hyoh.tistory.com/50)

2-1. MAC (Media Access Control)

  • 1계층과는 달리 2계층부터는 내가 누군지를 알게 되는데, MAC (Media Access Control) Address를 사용해서 알게 된다.
  • 물리적으로 장치를 식별하는데 사용한다.
  • MAC address는 총 48 비트 주소이고, 16진수로 표기한다.
  • MAC 주소 확인 방법 (물리적 주소라 있는게 MAC address)

    cmd
    ipconfig /all

MAC address 형식
AA-AA-AA-AA-AA-AA, AA:AA:AA:AA:AA:AA 처럼 '-', ':'으로 분류를 해놓는다.

  • 앞 6자리 : 동일한 회사에서 만든 거, 다르면 다른회사
  • 뒷 부분 6자리는 각각을 식별해야 하기 때문에 다를 것이다.

AA::AA:AA:AA:AA

  • 가운데가 없는 경우는 0을 표기한 것이다.

2-1. DNS(Domain Name Service)

사용자에게 친숙한 도메인 이름을 컴퓨터가 네트워크에서 서로를 식별하는데 사용하는 IP주소로 변환하는 시스템이다.

(예시) 우리가 naver.com같은 도메인 이름을 입력시에 DNS가 이를 해당 IP주소로 변환하여 웹사이트에 접속할 수 있도록 도와준다. DNS 처리를 안하면 IP주소를 직접 입력해야 한다.

2-2. Ethernet (이더넷)

  • 이계층에서 사용하는 프로토콜이다. LAN에서 사용하는 프로토콜이고, 범위 자체가 좁다.

  • IEEE 802.3 표준 : 이더넷의 물리 계층과 데이터 링크 계층의 MAC를 정의하는 일련의 표준

  • 반송파 감지 다중 접속 및 충동 탐지(CSMA/CD, Carrier Sense Multiple Access with Collision Detection) : 여러대의 컴퓨터가 동시에 데이터를 보내면 데이터들이 서로 부딪힐 수 있다. 그래서 이더넷은 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조로 이루어져 있는데, 이는 동시에 데이터가 지나가지 않도록 먼저 보내지는 하나의 데이터가 완료될 때까지 데이터를 보내는 시점을 늦추는 방식으로 이뤄진다.

  • CS : 데이터를 보내려 하는 컴퓨터가 케이블 신호가 흐르고 잇는지를 확인하는 규칙

  • MA : 케이블에 데이터가 흐르고 있지 않으면, 데이터를 보내도 된다는 규칙

  • CD : 충돌이 발생하고 있는지 확인하는 규칙

(설명) A장치, B장치, C장치가 있을 때 일반적으로 허브라는 것은 A에서 허브로 C로 통신을 보내려할 때, B도 C로 연결되면 길이 1개이기 때문에 충돌이 날 수 있다. 1계층에서는 이게 문제 였는데 CSMA/CD는 이를 개선한다. 누가 먼저 선을 사용하느냐 우선순위를 정한 후에 A-C가 먼저면, B-C는 대기 시킨 후에 A-C가 끝나면 B-C가 시작된다.

PDU(Protocol Data Unit) - Frame

  • Header : Destination address, Source address, Type (3가지)
  • Footer : FCS (1가지)

PDU 구조는 아래와 같이 6가지로 구성되어 있다.

(1) Preamble(8 bytes) >
(2) Destination address(6 bytes) 수신, MAC 주소가 들어간다. >
(3) Source address(6 bytes) 송신 >
(4) Type(2 bytes) >
(5) Payload(46~ 1500 bytes) >
(6) FCS (4 bytes, footer) 2계층에서만 있는데 오류 검사를 한다.

  • Destination address : 목적지(MAC address)
  • Source address : 출발지

이더넷 종류 : 속도에 따라서 분류한다.

  • 표준 이더넷(Ethernet/Standard Ethernet) : 10 Mbps 속도, 동축
  • 고속 이더넷(Fast ethernet) : 100 Mbps 속도, 구리선(쌍꼬임)
  • 기가비트 이더넷(Gigabit ethernet) 1Gbps(약 1000 Mbps)속도, 쌍꼬임/광섬유
    -10기가비트 이더넷(10 Gigabit ethernet) : 10 Gbps 속도, 쌍꼬임/광섬유

2-3. Device

  • Switch : 24포트를 가장 많이 사용하고, 허브 기능도 하기도 하는데, 이것을 만든 이유는? 주요 기능이 5가지 ing가 있다. (따로 전원버튼이 없다.)
    (1) Learning : MAC address를 기억할 수 있게 한다.(반복되었을 때 최대한 연산을 줄이기 위한 기능)
    (2) Filtering : 일치하지 않는 MAC address 로의 전송을 차단
    기억한 것을 보관하는데 테이블 형태로 보관한다. MAC address 테이블에 등록 안된 것은 거른다. 불필요한 요청은 제거한다.
    만약 필터링 기능이 없다면? A>C로 보냈는데, B도 받아버리는데, 두번째 보낼때부터는 스위치가 바로 C로 갈 수 있다. B로는안보내는 것을 필터링이라 한다. C로 가는 것은 포워딩이다.
    (3) Forwarding : 일치하는 MAC address로 전송
    (4) Flooding : 모든 경로로 전송하는 기능
    MAC address table에 없으면 동작
    (5) Aging : 저장된 MAC address를 일정시간 이상 사용되지 않으면 MAC address table에서 삭제
    MAC 테이블은 휘발성이 있다.

  • MAC address 테이블 확인방법

    arp -a
    arp -d (지운것)

2-4. Cisco Packet Tracer 실습

  • Cisco Packet Tracer : 네트워크 가상화해서 테스트할 수 있는 프로그램
    스위치, 컴퓨터 등을 배치하고 IP 가상으로 할당한 다음 케이블도 설정할 수 있다.
    PC0번에서 PC2번으로 ping 해보니까 잘되는 것 확인할 수 있다.
    가상으로 된 MAC 주소도 일치한다.

Simulation에서 Show All/None으로 초기화 하고 다시 PC0에서 PC2로 핑해본다.

처음에는 PC1 PC2까지 모두 보내지만, PC1번으로는 Filtering, PC2번으로는 Forwarding이 된다.

첫번째 전송에서는 PC1에도 가지만 ping을 설정한 곳이 아니기 때문에 메세지는 취소될 것이고, Learning이 완료된 상태에서는 PC2까지만 간다.

스위치의 CLI 부분에서는 스위치의 상태를 볼 수 있다.(필드에서도 보게 될 화면이다.)(? 입력하면 명령어 나온다.)

(스위치가 MAC 어드레스를 어떻게 저장하고 있는지를 확인하는 중이다.)

enable
약자로는
en

  • enable을 쓰면 관리자모드로 넘어간다.
  • enable로 관리자 모드 들어가서 show를 쳐본다.
  • 없는 명령어를 치면 255.255.255.255 같은 문자가 보일 것인데...> Ctrl+Shift+6를 쓰면 되고 시간지나면 알아서 종료되기도 한다.

여기까지 왔으면 스위치의 모드 3가지를 살펴봐야 한다.

(1) 일반사용자 모드(User)
(2) 관리자 모드(Privileged)
(3) 설정 모드(Global Configuration)

  • 작동중에 스위치CLI에서 MAC address 확인하는 방법

    show mac-address-table

  • 메뉴바 Options>Preference에서 왼쪽 5번째 켜면 어떤 통신인지 글자 확인이 가능하다.

  • Aging 확인 : 종료 다되었고, MAC address가 다 사라진것 확인할 수 있다. (Realtime 확인했다.)

스위치 관련 명령어 기억할만한 것들...

  • ping이라는 명령어를 치면 ICMP라는 프로토콜이 작동하는데 ICMP 3계층인데 2계층 장비인 스위치는 IP를 알 수 있는 방법이 없다. 그래서 스위치에 IP할당이 안되어 있어서 IP 쳐서 ping해도 반응이 없다.
  • L2 스위치 같은 스위치는 중에서 상위계층을 인식하는 스위치이다.

스위치의 휘발성 관련하여...

메모리는 기본적으로 아래와 같이 구성되어 있는데, 꺼지면 저장되었던 것이 날라간다.

[RAM][NV-RAM][FLASH][ROM]

configure terminal
약자로
conf t

RAM : show running-config
NV-RAM : show startup-config 라는 것으로 저장된다면 껐다켜도 날라가지 않는다.
(방법1) running-config을 startup-config로 복사 : reload하느 중에 startup-config를 읽어서 그 configuration으로 간다.

copy running-config startup-config
약자로
copy r s
자세히 봐보기
copy r st
최대한 몇가지만 쓴다.

(방법2) startup-config으로 처음부터 지정

configure terminal
hostname SW1
exit
write

write

(상황) configure terminal 명령어를 치면 호스트 이름을 설정할 수 있다. exit하면 config모드에서 밖으로 나오고, show running-config는 현재 컨피그 설정 상태를 볼 수 있는데 휘발성을 가지고 있는 상태이다. reload 하면 재부팅되고, SW0이라는 hostname이 휘발된 것을 확인할 수 있다.

호스트 이름을 configuring할 수 있는 모드로 들어가기

configure terminal

컨피그 모드에서 나오는 명령어

exit

컨피그 설정 상태를 볼 수 있는 명령어

show running-config

스위치 재부팅 명령어

reload

그런데 hostname을 바꿀수 있는 이유는? 어디서 몇번인지를 모르기 때문에 호스트 이름을 바꾸는 버릇을 들여야 한다.

스위치를 추가해본다.

  • 스위치를 하나 추가했더니 점선으로 연결된 것이 보인다.(스위치 끼리 연결할 때는 점선으로 연결된다.)
  • PC와 스위치가 연결될 때는 실선으로 연결된다.
  • PC0에서 Server0으로 ping을 해보고 확인

네트워크 구성 예제

(상황1) 총 12개의 서버를 구성하고, 스위치 3개로 서버들을 연결한다. 그리고 각각의 스위치는 하나의 스위치로 정보가 모이고 최종정으로 관리PC는 모든 서버에 접속할 수 있다. MAC 주소는 192.168.53.6의 주소 결과이다.

(상황2) 총 12개의 서버는 동일하지만, 기존에 스위치 3개에서 스위치 1개를 추가하였다. 192.168.53.99 PC에서 ping해서 192.168.53.97까지 ping을 하더라도 작동되는 것을 볼 수 있다. 스위치를 통해서 신호가 전달되기 때문에 더욱 복잡하더라도 연결이 정확히 되어 있다면 신호를 받을 수 있다.

(상황3) 192.168.53.97 PC과 바로 연결된 스위치는 가장 왼쪽에 있는 스위치와는 직접적으로 연결되어 있지 않다. 가장 왼쪽에 있는 스위치를 거쳐서 192.168.53.1 서버에 접속할 수 있을까? ping을 한 번 시도해보자.(결과 : 직접적으로 연결되어 있지 않더라도 여러개의 스위치들을 거쳐서 신호가 연결된다.)

2-5. STP(Spanning Tree Protocol)

(문제) Broadcast storm이 발생하면? STP(Spanning Tree Protocol) 을 사용해서 스위치 끼리 루프가 생길 때 한 곳을 끊어서 방지한다.

  • Broadcast storm : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식을 의미한다.
  • STP(Spanning Tree Protocol) : 루트 스위치를 중심으로 연결되는 스위치들이 뿌리처럼 뻗어나가는 구조를 취한다. 스위치가 이중화된 상태에서 발생하는 Broadcast Storm을 방지하기 위해 사용한다.
  • STP 단계
  1. Root bridge 선출 :
  2. Root port 선출 : 루프에서 열려있는 쪽이 Root
  3. Designated port 선출 : Address가 더 작은 것이 Designation port(값이 작을수록 우선순위를 가지기 때문이다.)
  4. Non designated port 선출 : Address가 더 큰 것이 Non-designation port

    스위치
    enable
    show spanning-tree

한 부분이 주황색으로 막혀있고 root가 자동으로 지정되어 있다.

이중화 : 우선순위를 바꾸고 싶으면 기본으로 지정되어 있던 32768 보다 작은 값으로 설정해야 한다. 28672로 바꾸면 우선순위가 바뀌어서 Root가 바뀐다. 이러한 방법을 이중화라고 하는데 한 회선이 고장이 나면 다른 방향으로 우선순위를 변경하여 끊김없이 데이터 교환을 한다.

변경 전

변경 후

0개의 댓글