
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)
cmd
ipconfig /all
MAC address 형식
AA-AA-AA-AA-AA-AA, AA:AA:AA:AA:AA:AA 처럼 '-', ':'으로 분류를 해놓는다.
AA::AA:AA:AA:AA
사용자에게 친숙한 도메인 이름을 컴퓨터가 네트워크에서 서로를 식별하는데 사용하는 IP주소로 변환하는 시스템이다.
(예시) 우리가 naver.com같은 도메인 이름을 입력시에 DNS가 이를 해당 IP주소로 변환하여 웹사이트에 접속할 수 있도록 도와준다. DNS 처리를 안하면 IP주소를 직접 입력해야 한다.
이계층에서 사용하는 프로토콜이다. 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
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계층에서만 있는데 오류 검사를 한다.
이더넷 종류 : 속도에 따라서 분류한다.
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 (지운것)

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

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

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

스위치의 CLI 부분에서는 스위치의 상태를 볼 수 있다.(필드에서도 보게 될 화면이다.)(? 입력하면 명령어 나온다.)
(스위치가 MAC 어드레스를 어떻게 저장하고 있는지를 확인하는 중이다.)
enable
약자로는
en

여기까지 왔으면 스위치의 모드 3가지를 살펴봐야 한다.
(1) 일반사용자 모드(User)
(2) 관리자 모드(Privileged)
(3) 설정 모드(Global Configuration)
show mac-address-table

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

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

메모리는 기본적으로 아래와 같이 구성되어 있는데, 꺼지면 저장되었던 것이 날라간다.
[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을 바꿀수 있는 이유는? 어디서 몇번인지를 모르기 때문에 호스트 이름을 바꾸는 버릇을 들여야 한다.

(상황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을 한 번 시도해보자.(결과 : 직접적으로 연결되어 있지 않더라도 여러개의 스위치들을 거쳐서 신호가 연결된다.)

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

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

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

변경 후
