스터디/Be-Docs

Be-Docs 1주차 L2 스위치 / 라우팅 테이블, 맥 테이블, ARP 테이블 / 랜 통신 프로세스 (서버 - L2 스위치 - 서버) - 조사 자료

TheWing 2021. 2. 18. 21:59

사전예습

  • LAN/WAN 차이, IP, 서브넷 마스크, 사설 대역, 공공 대역

LAN(Local Area Network)

  • 근거리 통신망
  • 빠르다
  • 오류 적다

WAN(Wide Area Network)

  • 광역 통신망
  • 느리다
  • 오류 많다

IP

  • 송신 호스트와 수신호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약 이며, OSI 네트워크 계층에서 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당한다.

서브넷 마스크

  • IP 주소의 네트워크 부분만 나타나게 하여 같은 네트워크 인지 판별하게 하는 마스크
  • 네트워크 ID와 호스트 ID를 식별하기 위한 값
    • A 클래스
      • 255.0.0.0
    • B 클래스
      • 255.255.0.0
    • C 클래스
      • 255.255.255.0

프리픽스 표기법

  • 서브넷 마스크를 슬래시(/비트수)로 표현
    • 255.255.255.0 = /24

공인 IP (Public IP)

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.

  • 공인 IP는 전세계에서 유일한 IP 주소를 갖는다.
  • 공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP 주소를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치할 필요가 있다.

사설 IP (Private IP)

일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다. IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.

사설IP 주소대역

사설IP 주소는 다음 3가지 주소대역으로 고정된다.

  • Class A : 10.0.0.0 ~ 10.255.255.255
  • Class B : 172.16.0.0 ~ 172.31.255.255
  • Class C : 192.168.0.0 ~ 192.168.255.255

사설 IP와 공인 IP의 차이

image

1주차. L2 스위치 / 라우팅 테이블, 맥 테이블, ARP 테이블 / 랜 통신 프로세스 (서버 - L2 스위치 - 서버)

( + 자체 과제: VLAN 과 스패닝 트리 알고리즘, 탐욕 알고리즘에 대해서 공부)

L1, L2, L3, L4, L7 스위치란 무엇인가?

  • OSI 7 Layer 중 어떤 레이어에서 수행되는가에 따라 정의된 분류이다

L1 (허브, 더미 허브)

  • 허브는 모든 랜선에 꽂힌 포트에 동일한 정보를 보내는 장비이고 가장 원시적이다. OSI 7 Layer 중 1계층이 물리계층이므로 L1 스위치라고 부른다
  • 속도가 느리고 동시에 패킷 요청을 했을 시 패킷 충돌이 날 가능성이 있다.

L2 (스위칭 허브, 스위치, L2 스위치)

  • 각 포트별로 대역폭(bandwidth)이 부여되고 L2는 디바이스의 MAC주소를 알고 있어서 MAC주소에 패킷을 보낸다

L3 (L3 스위치, 라우터, 공유기)

  • IP주소를 알고 있고 TCP/IP 를 이용한다.

L3 스위치 = 기업용, 공유기 = 가정용

L4(로드밸런싱)

네트워크 패킷을 지정해둔 포트들로 분산하여 나눠준다

로드밸런싱

  • 부하 분산

L7 (네트워크 보안 장비)

L5, L6가 없고 왜 L7이 나올까?

  • L7에 다 포함되는 계층이다

패킷을 분석해서 어떤 데이터인지 알 수 있다.

HTTP 프로토콜을 파싱해서 어느 URL에 접속하는지 알 수 있다.

L7는 웹 방화벽, 보안 스위치이다

정리

L2 스위치

  • MAC 정보(MAC Table)를 보고 스위칭

L3 스위치

  • IP 정보(Routing Table)를 보고 스위칭

L4 스위치

  • IP + Port(Session OR Connection)를 보고 스위칭

L7 스위치

  • 실제 App 데이터(Content)를 보고 스위칭

상위 레이어 스위치은 하위 레이어의 스위칭 기능을 가지고 있다

CSMA/CD(Carrier Sense Multiple Access with Collision Detection(반송파 감지 다중 접속 및 충돌 탐지)

CS

  • 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 아닌지를 확인한다

MA

  • 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다

CD

  • 충돌이 발생하고 있는지를 확인한다

Mac Table

MAC 주소

  • 랜에 사용되는 네트워크 모델인 이더넷의 물리적인 주소로 컴퓨터 네트워크에서 각각의 기기를 구분하기 위해 사용하는 주소
  • 컴퓨터의 고유의 물리 주소
  • 전 세계에서 유일한 번호

00-23-AE-D9-7A-9A

00-23-AE

  • 랜 카드를 만든 제조사 번호

D9-7A-9A

  • 제조사가 붙인 일련 번호

MAC 주소 테이블

  • 스위치의 포트 번호와 해당 포트 에 연결 되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터베이스다
  • 스위치의 전원을 켠 상태에서는 아직 MAC 주소 테이블에 아무것도 등록되어 있지 않다 하지만 컴퓨터에서 목적지 MAC 주소가 추가된 프레임이라는 데이터가 전송되면 아래 그림과 같이 MAC 주소 테이블을 확인하고 출발지 MAC 주소가 등록되어 있지 않으면 MAC주소를 포트와 함께 등록한다. 이를 MAC 주소 학습 기능이라고 한다

image

  • COM1에서 COM3에 데이터를 전송한 시점에는 아직 COM3의 목적지 MAC 주소가 MAC 주소테이블에 등록되어 있지 않아서 그림과 같이 송신 포트 1이외의 포트인 2~5에 데이터(프레임)가 전송되는데 이러한 데이터(프레임) 전송을 플러딩(flooding, 홍수) 라고 부른다

image

  • 만약 COM3의 MAC 주소가 MAC 주소 테이블에 등록되어 있을시 2,4,5 COM에 전송되지 않는다

MAC 주소 필터링

  • 스위치에서 MAC 주소를 기준으로 목적지를 선택하는 것

Routing Table

라우팅(Routing)

  • 네트워크에서 패킷을 목적지로 보낼 때 목적지까지 갈 수 있는 여러 가지 경로 중 한 가지 경로를 설정해 주는 과정
  • 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송

라우팅 테이블

  • 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시킬 목적으로 사용된다. 다른 네트워크로 가기 위한 가장 좋은 라우터의 정보를 가지고 있다
  • 경로 정보가 등록되어 있는 테이블

라우팅 등록

  • 수동 등록
    • 소규모 네트워크에 적합
  • 자동 등록
    • 대규모 네트워크에 적합
    • 대규모 네트워크에서는 정보를 하나하나 라우터에 등록하기가 힘들기 때문이다
    • 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정해준다

라우팅 프로토콜

  • 라우팅 정보를 교환하기 위한 프로토콜
  • 종류
    • RIP, OSPF, BGP

ARP Table

ARP(Address Resolution Protocol)

  • 목적지 컴퓨터의 IP 주소를 이용하여 MAC 주소를 찾기 위한 프로토콜
  • 이더넷 프레임을 전송하려면 목적지 컴퓨터의 MAC주소를 지정해야한다
  • 출발지 컴퓨터가 목적지 주소를 모르면 MAC 주소를 알아내기 위해 네트워크에 브로드 캐스팅을 하는데 이것을 'ARP 요청'이라고한다

ARP Table

  • IP - MAC 주소를 매칭해주는 테이블이다. (DNS 처럼)
  • cmd → arp -a 명령어를 사용하면 ARP Cache Table을 볼 수 있다.

L2 스위치

스위치란?

image

  • 허브의 확장된 개념으로 기본 기능은 허브와 동일하지만 전송 중 패킷의 충돌이 일어나지 않도록 패킷의 목적지로 지정할 포트를 직접 전송한다
  • 스위치에서 패킷의 목적지 주소를 기준으로 보내는 곳과 받는 곳을 계산하여 해당 포트로 1대1로 연결한다
  • 스위칭은 정보 전달의 수단과 회선의 효율적 운용을 위해 입/출력 상태를 감시하며 전송로의 장애 발생 시 현재 상태에서 예비 상태로 전환한다.

허브(L1 더미허브)

  • 전기적인 신호를 증폭시켜 LAN의 전송거리를 연장시키고, 여러 대의 디바이스를 연결해 네트워크를 만들어주는 장비이다. 포트는 허브에 따라 다양하고 1개의 포트에 한 대의 디바이스가 할당된다

허브와 스위치의 차이

속도

충돌 현상

  • 허브는 패킷이 서로 충돌이 일어나 패킷이 죽어버리는 경우가 발생한다
  • 스위치는 같은 시간에 들어오더라도 허브와 같은 충돌이 일어나지 않는다
  • 100Mbps 가 들어오면 허브는 1/N 속도를 가지게 되지만 스위치는 N개에 거의 동일하게 들어오게 된다

L2 (MAC) 주요 특징

  • 가장 흔히 볼 수 있는 스위칭 방식이고 다른 방식에 비해 저렴하다
  • 패킷의 MAC 주소를 읽어 스위칭한다
  • 상위 레이어 스위치는 하위 레이어 스위치의 기능을 기본적으로 다 수행할 수 있다
  • 패킷을 보내는 노드와 받는 노드를 1대1로 연결해 주기 때문에 충돌이 발생하지 않고 빠른 속도로 전송이 가능하다
  • 두 개의 노드가 통신하는 동안 다른 노드들도 서로 간의 통신이 동시에 가능하며 이더넷에서 높은 효율을 갖는다
  • 노드의 수가 증가해도 속도의 저하가 일어나지 않으며 패킷의 감청이 어려운 구조이므로 보안성이 높다
  • 동시에 요청이 들어올때 허브는 충돌이 나지만 스위치는 충돌이 나지 않는다
  • 라우팅이 불가능하다
  • 네트워크를 미세하게 분할하여 실사용자에게 대역폭을 최대한 할당할 수 있다

L2 (MAC)

기능

Learning

  • 출발지 주소가 MAC Table에 없으면 MAC 주소와 포트 저장
    • MAC Table (기술)

Flooding

  • 출발지 주소가 MAC Table에 없으면 전체 포트에 전달
    • Broadcating

Forwarding

  • 목적지 주소가 MAC Table에 있으면 목적지 포트로만 전달
    • Unicasting

Filtering

  • 출발지가 목적지와 같은 세그먼트에 있는 경우에는 다른 세그먼트로 보내지 못하게 막음
    • Collision Domain

Aging

  • MAC Table의 주소는 일정 시간이 지나면 삭제됨
    • Aging Timer

전송 방식

Cut-Through

  • 스위치로 들어오는 frame의 목적지 주소만을 확인하고 바로 forwarding
    • 처리 속도 빠름
    • 에러 감지 어려움

Store-And-Forward

  • 스위치로 들어오는 전체 frame을 받아들이고 체크한 후에 forwarding 해주는 방식
    • 처리 속도 느림
    • 에러 감지 용이

Fragment Free

  • frame 앞 64바이트만 읽어 에러를 처리하고 목적지 포트로 forwarding 해주는 방식
    • 적당한 처리 속도
    • 적당한 에러 감지

부가 기능

VLAN

  • 스위치의 일부 포트를 가상 LAN으로 묶어서 불필요한 프레임 전송이 안되도록 구분
    • 802.1q

Link Aggregation

  • 스위치간 연결 시 포트를 두 개 이상 동시에 사용하여 대역폭과 가용성을 높임
    • 802.3ad

Spanning Tree Protocol

  • 2개 이상의 스위치가 여러 경로로 연결 될 때, 무한 루프 현상을 막기 위해서 Tree 구조로 우선 순위에 따라 1개의 경로로만 통신하도록 하는 프로토콜
    • 802.1d

Port Mirroring

  • 특정 포트의 트래픽 분석을 위하여 해당 포트의 트래픽을 다른 포트로 복사하는 기능
    • SPAN(Switch Port Analyzer)

VLAN(Virtual LAN)

  • 스위치에서 LAN을 논리적으로 나눈다

왜나누지?

  • LAN 이라는 것은 하나의 IP 대역, 즉 브로드 캐스트 메시지를 전송하면 하나의 LAN에 속한 모든 장비가 메시지를 받는다. 문제는 이 LAN이 커지면 그만큼 브로드 캐스트를 받는 범위(장비)가 커지는것 만약 LAN에 엄청나게 많은 장비가 속해있다면 각 장비가 하나씩만 브로드캐스트를 발생 시킨다해도 해당 LAN에 있는 장비들은 엄청난 브로드 캐스트 메시지를 받는다. 브로드 캐스트는 없어서는 안될 존재이나 상당한 부하를 가져오는것도 사실이다. 즉 LAN을 나누어서 이 브로드 캐스트 범위를 줄여주려는 것이 목적이다
    • 브로드캐스트가 부하를 주는 이유
      • 브로드 캐스트는 일단 요청이 오면 받아야하고 CPU 부하를 주기 때문이다

맥 플러딩(Mac flooding)

  • L2 스위치를 사면 , 1000개까지 주소 등록이 가능하다 어떤건 8000개까지 등록이 가능하다. 스위치에 사용하는 메모리는 우리가 보통 사용하는 메모리를 쓰지 않는다. 왜냐하면 써칭이 빨라야 되기 때문에 고가의 고속메모리를 사용한다. 예를들어 3번 포트에 허브가 있고 허브에 컴퓨터가 여러개 이고 3번 포트에 기록되는 테이블이 많다. 그랬을 경우 1000개의 주소가 다 채워지게 되서 1001개의 주소가 들어오면 가장 오래된 주소를 지워버린다
  • 이런 점을 이용하여 공격하는 방법이 맥플러딩 공격 방법이 있다.
  • 공격자가 프로그램을 심어서 랜덤 주소가 한 컴퓨터에서 발생하게 한다. 이렇게 몇 천개, 몇 만개를 하면 결국 스위치 입장에서는 이 주소 테이블을 보관해둔 것이 새로 다 갱신 되기 때문에 종국에 가서는 그냥 자주 쓰는 일반 컴퓨터의 주소 까지 지워버리게 된다. 그냥 Hub처럼 로직을 통하지 않고 모두에게 다 전송하는 상황이 발생하게 된다. 이것이 맥플러딩이다
  • Loop 라는 것이 생기면 안된다. 이것을 방지하기 위해 Spanning Tree Algorithm을 사용한다

Spanning Tree Algorithm

  • Spanning Tree 라고 하는 것은 Tree이지만 모든 vertices(노드)를 연결하는 트리를 말한다.
  • Loop가 생기면 왜 안되냐?
    • Loop가 생기는 순간 트래픽이 급증하게된다

Loop는 어떻게 생기는가?

image

  • LAN1에 있는 HUB의 A가 LAN2의 D로 데이터를 보내는 상황이라고 가정한다. 그런데 이 때 각 위치에 있는 스위치는 모두 HUB를 1번 포트에 꽂는다. Table에 A는 1번 포트에 있겠다 하고 D로 보내게 된다. D로 보내면서 당연히 처음에는 다 보내기 때문에 스위치 1과 스위치 2는 서로에게 또 신호를 보내게 된다. 그런데 이 때 나가는 신호는 1번 포트가 아니라, 2번 포트이다. 왜냐하면 D가 있는 LAN 2와 스위치 1, 2는 2번 포트를 통해서 연결되어 있기 때문이다. 그러면 각 스위치는 1번포트인데 언제 2번포트로 바꾼건가 하면서 서로의 Table에 있는 A에 대한 Table을 1번 포트에 있다라는 기록에서 2번 포트에 있다라는 기록으로 수정하게 된다. 그런데 이렇게 수정이 되어있으므로 1번 포트에 D가 있는줄 알고 다시 위로 보내게 된다. 그러면 각 스위치는 언제 바꾼지 모르고 계속 바뀌기 때문에 무한 루프가 걸리는 현상이 발생한다. 이것이 Loop Problem 이다
  • 이것을 해결하려고 하는 알고리즘이 Spanning Tree Algorithm이다

Spanning Tree Algorithm

image

  • Tree는 Root 를 중심으로 수직으로 아래로 연결된 것이기 때문에 Loop가 걸릴 수 없다.
  • S1 에서 S2를 가는데 비용이 1+0 = 1이다. 그런데 이제 S1에서 S3, S4가는데도 다 1+0 = 1 해서 다 1이다 기회 비용이 같다. S1에서 LAN3, LAN4가려고 하면 비용이 2다. S3에서 LAN3으로 연결하려면 이미 LAN1 - S2 - LAN3의 경로를 걸쳐서 연결이 되어 있기 때문에 Loop가 생긴다. 그래서 연결하지 않는다. 또 S1-LAN2-S4-LAN4-S5에서 LAN3연결하려고 해도 S2-LAN3로 연결이 되어 있기 때문에 Loop가 걸려서 연결하지 않는다. 그래서 만약에 이렇게 알고리즘에 따라 저비용(같은 비용이라도 이미 연결 된 것)인 곳이 연결이 되는 곳이고, 만약에 다른 곳에서 연결이 되는데 비용이 더 비싸고, 혹은 순위가 낮은 곳은 이제 실제로는 케이블이 연결되어 있다고 해도 사용하지 않는 포트로 만드는 것이다. 그래서 이것을 Blocking Port라고 한다

Greedy Algorithm

  • 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. 하지만 탐욕알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이다.

L2 스위치 동작 절차 및 전송 방식

image

image

  1. 1번 포트에 연결된 COM1(MAC 주소 A) 에서 MAC 주소 B로 프레임 전송
  2. 출발지 MAC주소와 포트번호(A, 1)를 MAC Table에 저장(Learning)
  3. 목적지 MAC주소 B가 MAC Table에 없으므로 전체 포트에 전송(flooding)
  4. COM2(MAC 주소 B)에서 COM1 (MAC주소 A)로 프레임 전송
  5. 출발지 MAC주소와 포트번호(B, 4)를 MAC Table에 저장(Learning)
  6. 목적지 MAC주소 A가 MAC Table에 있으므로 저장된 포트(1번)으로만 전달(forwarding)

Reference

'스터디 > Be-Docs' 카테고리의 다른 글

Be-Docs 스터디 TDD 발표 후기  (0) 2021.02.01