[Network] Study 정리 ch04 스위치 장비 동작

Cookie·2024년 7월 22일

[Network] Network 이론

목록 보기
5/7
post-thumbnail

⭐이번장에서 배울 내용
네트워크의 핵심장비인 L2 스위치가 MAC주소를 어떻게 이해하고 활용하는지

들어가기에 앞서

스위치란?

네트워크 중간에서 패킷을 받아 필요한곳에만 보내주는 네트워크 중재자


Protocol Date Unit [PDU]

각 계층에서 헤더와데이터를 합친부분을 PDU라고 부름

애플리케이션 계층데이터
프레젠테이션 계층데이터
세션 계층데이터
전송 계층세그먼트
네트워크 계층패킷
데이터링크 계층프레임
물리 계층비트

4.1 스위치 장비의 동작

동시에 여러 네트워크 장비가 서로 간섭없이 통신하도록 도와줌
이에 따라 대기 및 충돌에 대한 문제가 해결되고 효율성이 향상됨

MAC 주소 테이블

단말의 주소인 MAC주소와 단말이 위치하는 인터페이스 정보를 매핑한 테이블

스위치의 3가지 동작 방식

  1. 플러딩(flooding)
  2. 어드레스 러닝(Address Learning)
  3. 포워딩/필터링(Forwarding/Filtering)

1. 플러딩

스위치가 허브와 같이 모든 포트로 패킷을 흘리는 동작 방식

부팅 후의 스위치. MAC주소 관련 정보가 없음
  • 스위치는 자신이 정보를 갖고 있지 않더라도 어딘가에 장비가 있다고 가정하고 모든 포트에 같은 내용의 패킷을 전송함
    MAC 테이블에 아무것도 없는 경우, 패킷을 모든 포트로 보냄

    비정상적인 플러딩
    • 스위치 기능을 무력화해 주변 통신을 모니터링
    • 엉뚱한 주소를 습득시키거나 MAC 테이블을 꽉차게하여 플러딩 동작 유도

      아무이유 없이 플러디하게 되면 스위치가 정상적으로 작동하지 않을 수 있음 (공격이 수행되는 상황)

    • ARP 포이즈닝 : 모니터링할 IP의 MAC주소가 공격자 자신인 것 처럼 속여 원하는 통신을 받는 공격 방법

2. 어드레스 러닝

MAC 주소 테이블을 만들고 유지하는 과정

패킷이 특정포트로 들어오면 스위치는 해당 패킷의 출발지 MAC주소와 포트번호를 MAC 주소 테이블에 기록함

예시

1번 포트에서 들어온 패킷의 출발지 MAC 주소가 AAAA라면 1번 포트에 AAAA MAC 주소를 가진 장비가 연결되었다고 추론

  • 사전에 정의된 주소
    : 패킷을 처리하기 위한 주소가 아닌 대부분 스위치간의 통신을 위해 사용되는 주소

3. 포워딩/필터링

패킷이 스위치로 들어온 경우 MAC주소를 확인하고 자신의 MAC 테이블과 비교하여 매치되는 해당 포트로 포워딩함 이때 다른 포트로는 해당 패킷을 보내지 않으므로 이 동작을 필터링이라 함

  • 스위치는 유니캐스트에 대해서만 포워팅/필터링 작업을 수행함 BUM 트래픽 브로드캐스트와 언노운 유니캐스트, 멀티캐스트는 조금 다르게 동작함
    • 브로드캐스트나 멀티캐스트 모두 출발지가 사용되지 않음 따라서 필터링 작업을 하지 않고 모두 플러딩함
    • 언노운 유니캐스트도 MAC 주소에 없는 테이블이므로 플러딩함

4. 에이징 타임

ARP를 이용한 MAC 주소 습득과정에서 이미 스위치는 통신하는 출발지와 목적지의 MAC 주소를 습득할 수 있고 실제 유니캐스트 통신이 시작되면 이미 만들어진 MAC 주소테이블로 패킷을 포워딩/필터링함

  • 이때 ARP와 MAC 테이블은 일정시간 동안 지워지지않는데 이것을 에이징 타임이라 함

5. 스위치의 IP 주소

스위치는 2계층 장비이기에 MAC 주소를 이해할 수 있기에 IP는 필요가 없지만 일정 규모 이상의 네트워크에서 운영되는 스위치는 관리 목적으로 대부분 IP가 할당됨




4.2 VLAN

VLAN 이란?

LAN을 논리적으로 분할, 구성하는 기술
VLAN 분리는 다수의 논리적인 스위치를 만드는 효과가 있음

  • 과도한 브로드캐스트로인한 성능저하, 보안향상을 위한 차단용도, 서비스 성격에 따른 정책적용과 같은 이유로 네트워크는 분리되어야 함
  • 스위치 포트에 VLAN을 설정하여 네트워크를 분리하면 물리적으로 스위치를 분리할 때보다 효율적으로 장비를 사용할 수 있음
VLAN으로 나누면 유니캐스트 뿐만 아니라 VLAN간에도 통신할 수 없으며 통신하기 위해서는 3계층 장비가 필요함
  • VLAN 끼리 통신하려면 VLAN의 개수 만큼 포트를 연결해야함
  • 분할된 스위치는 물리적인 별도의 스위치처럼 취급



VLAN의 종류와 특징

VLAN은 대표적으로 포트기반 과 MAC주소 기반으로 나눠져 있음

포트 기반
  • 논리적으로 분할하여 사용하는 것이 목적
  • 일반적으로 언급되는 VLAN
  • VLAN 선정 기준 : 스위치의 포트

MAC 기반
  • 사용자들의 자리 이동이 많아지게되어 개발됨
  • 스위치에 연결되는 MAC주소를 기반으로 할당
  • VLAN 선정 기준 : PC의 MAC주소

VLAN 모드 동작 방식

Trunk 또는 Tagged 포트

VLAN을 더 많이 사용하는 중대형 네트워크에서 VLAN별로 포트를 연결하려면 장비간의 연결만으로도 많은 포트가 낭비되는 문제가 있음

  • 이를 해결하기 위한 기능이 바로 태그 포트

    이처럼 태그포트를 사용하면 여러개의 포트를 하나로 묶어 사용할 수 있어 포트의 낭비 없이 네트워크를 더 유연하게 디자인할 수 있음


태그 포트는 통신할 때 이더넷 프레임 중간에 VLAN ID 필드를 끼워 넣어 이 정보를 이용함
  1. 태그 포트로 패킷을 보낼때는 VLAN ID를 붙임
  2. 수신 측에서는 이 VLAN ID를 제거
  3. 수신 측에서 VLAN ID의 VLAN으로 패킷을 보낼 수 있게됨

일반 이더넷 프레임과 태그 프레임의 차이

- FCS : Frame Check Sequence
- TPID : Tag Protocol Identifier
- CFI : Canonical Format Identifier

태그 포트기능을 사용하게 되면....

VLAN 끼리 통신하지 못하도록 MAC 테이블에 VLAN을 지정하는 필드가 추가됨

즉,

하나의 스위치에서 VLAN을 이용해 네트워크를 분리하게 되면 VLAN 별로 MAC 주소 테이블이 존재하는 것 처럼 동작함

VLAN MAC Address Type age Secure NTFY Ports
* 11 001c.7faa.9510 dynamic ~~~ F F Eth1/1
* 22 001c.7fbb.7b74 dynamic ~~~ F F Eth1/2
* 34 0009.0fcc.0122 dynamic ~~~ F F Eth1/3
* 84 001c.7fdd.395a dynamic ~~~ F F Eth1/4
* 86 001c.7fee.5e83 dynamic ~~~ F F Eth1/5
일반적인 포트를 언태그 포트 또는 엑세스 포트라 하고 VLAN 정보를 넘겨 여러 VLAN이 한꺼번에 통신하도록해주는 포트를 태그 포트 또는 트렁크 포트라고 칭함

태그포트는 여러 네트워크를 하나의 물리적 포트로 전달하는 데 사용되고
언태그 포트는하나의 VLAN에 속한 경우에만 사용됨


서버와의 연결인 경우

VMware의 ESXi와 같은 가상화 서버가 연결될 때는 여러 VLAN과 통신해야할 수도 있음

물론! 태그된 상태이므로 가상화 서버쪽 인터페이스에서도 태그된 상태로 설정해야함

가상화 서버 내부에 가상 스위치가 존재하므로 스위치간 연결 이라고 이해하면 됨


* VLAN간의 통신

스위치를 분할하는 기능 때문에 유니캐스트, 멀티캐스트, 브로드캐스트 모두 VLAN을 넘어가지 못함 일반적으로 VLAN이 다르다는 것은 별도의 네트워크로 분할한것 이므로 네트워크가 다르고 IP 주소 할당도 다른 네트워크로 할당됨



4.3 STP [Spanning Tree Porotocol]

Spanning Tree Protocol (STP)는 네트워크 루프를 방지하고 이더넷 네트워크에서의 안정적인 경로를 보장하기 위해 브리지와 스위치 간의 네트워크 토폴로지를 관리하는 프로토콜


SPoF

Single Point od Failure
하나의 시스템이나 구성요소에 고장이 발생했을 때 전체 시스템이 마비되는것

  • 이러한 네트워크가 마비되는 것을 방지하기 위해 이중화, 다중화된 네트워크를 디자인함
ex) 네트워크를 스위치하나로 구성했을 때 해당 스위치에 장애 발생시 전체 네트워크에 장애 발생

루프

Loop는 네트워크에 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황

루프상황이 발생하면 네트워크가 마비되고 통신이 불가능해짐
대부분 브로드캐스트 스톰으로 인한 문제


Broadcast Storm

브로드캐스팅된 하나의 패킷이 다시 하나 이상의 수신자에 의해 또다시 브로드캐스팅되어 나타나는 루프 상태

2계층 헤더에는 3계층의 TTL(Time To Live)같은 라이프타임 매커니즘이 없기 때문에 루프가 발생하면 패킷이 폐기되지 않고 계속 살아남아있게 됨

이로인해 네트워크 전체 대역폭을 차지하고, 네트워크에 연결된 모든 단말들이 브로드캐스트를 처리하기 위해 시스템 리소스를 사용하면서 스위치와 네트워크에 연결된 단말간 통신이 불가능한 상태가 됨


어드레스 플래핑

루프 구조 상태에서는 유니캐스트도 문제를 일으킴
동일한 MAC주소가 여러 포트에서 학습되어 MAC 주소 테이블이 반복 갱신되면서 정상적으로 작동하지 않는 현상을 어드레스 플래핑이라 함
스위치의 MAC 러닝 중복 문제

어드레스 플래핑이 발생하면 스위치에서 학습된 주소의 포트가 계속 변경되므로 정상적으로 동작하지 못하고 패킷을 플러딩함

이러한 현상을 예방하기 위해 루프 구성 포트중 하나의 포트만 사용하지 못하도록 셧다웃되어 있게하고, 경고 메시지를 알리거나 수시로 일어나는 플래핑 현상을 학습하지 않도록 자동으로 조치함

하지만 강제로 포트를 사용하지 못하게 하더라도 장애가 발생하면 해당 포트를 수동으로 다시 사용하도록 해야함. 이러한 이유로 루프를 자동으로 감지해 포트를 차단하고 장애 때문에 우회로가 없을 때 차단된 포트를 스위치 스스로 풀어주는 스패닝 트리 프로토콜이 개발됨



STP란

루프를 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 메커니즘

루프를 예방하기 위해서 스위치 연결 상황을 파악해야함 STP는 이를 위해 스위치간의 정보를 전달하는 방법으로 BPDU 프로토콜을 사용함


BPDU(Dridge Protocol Data Unit)

스패닝 트리 프로토콜(STP)에서 스위치 간에 루프를 방지하기 위해 정보를 교환하는 메시지

BPDU 프로토콜 헤터와 Bridge ID 정보

스위치가 갖고 있는 ID와 같은 고유값이 들어가고 이런 정보들이 스위치 간에 서로 교환되며 루프 파악이 가능해짐
  • 스위치들은 BPDU를 전달해 상호 정보와 토폴로지를 파악함



스위치 포트의 상태 및 변경과정

포트 차단상태에서 트래픽이 흐를 때까지 스위치 포트의 상태는 4가지로 구분됨

  1. Blocking
    • 패킷 데이터를 차단한 상태
    • 상대방이 보내는 BPDU를 기다림
    • Max Age(20초) 동안 상대방의 스위치에서 BPDU를 받지 못했거나 후순위 BPDU를 받았을 때 Listening 상태로 변경됨
    • 기본 교환 주기는 2초, 10번의 BPDU를 기다림
  2. Listening
    • 해당 포트가 전송 상태로 변괴는 것을 결정하고 준비하는 단계
    • 자신의 BPDU 정보를 상대방에게 전송하기 시작함
    • 총 15초 동안 대기함
  3. Learning
    • 이미 해당 포트를 포워딩하기로 결정하고 실제로 패킷 포워딩이 일어날 때 스위치가 곧바고 동작하도록 MAC 주소를 러닝하는 단계
    • 총 15초 동안 대기함
  4. Forwarding
    • 패킷을 포워딩하는 단계
    • 정상적인 통신이 가능함

  • 기본 STP 상태 변화 (50초)

  • STP 자체 포트 이상
    다운된 링크가 자신의 인터페이스인 경우, 토폴로지가 변했음을 직접 감지할 수 있어 Max Age를 거치지 않고 리스닝 부터 STP 상태 변화까지 즉시 이루어짐



STP 동작방식

스위치 간의 포트 역할을 결정하고, 최단 경로를 통해 데이터 전송을 최적화하며, 필요에 따라 포트를 차단

  1. 하나의 루트 (Root) 스위치 선정

    • 전체 네트워크에 하나의 루트 스위치를 선정
    • 루트 스위치는 자신을 전체 네트워크의 대표 스위치로 설정하고, 적은 BPDU (Bridge Protocol Data Units)를 인접 스위치로 전달
  2. 루트가 아닌 스위치에서 루트 포트 선정

    • 루트 포트 (Root Port): 루트 브릿지로 가는 경로가 가장 짧은 포트
    • 루트 브릿지에서 보낸 BPDU를 수신하는 포트가 루트 포트로 선정
  3. 하나의 세그먼트에서 지정 (Designated) 포트 선정

    • 스위치와 스위치가 연결되는 포트 중에서 하나의 지정 포트를 선정
    • 지정 포트 (Designated Port):
      • 스위치 간의 연결에서 이미 루트 포트로 선정된 경우, 반대쪽 포트가 지정 포트로 선정되어 양쪽 모두 포워딩 상태가 됨
      • 스위치 간의 연결에서 아무 쪽도 루트 포트가 아닌 경우, 한쪽 포트는 지정 포트로 선정되고, 다른 쪽 포트는 대체 포트 (Alternate, Non-designated)로 되어 차단 상태가 됨
    • BPDU가 전달되는 포트가 지정 포트

Port Fast

스위치가 아닌 일반PC나 서버가 연결되는 포트라면, 단말이 네트워크에 연결될 때까지 시간이 지연되는 문제 때문에 BPDU모니터링 메커니즘을 아예 없애거나 좀 더 빠른 시간안에 포워딩 상태로 변경되어야 함

  • 이런 경우 해당 포트를 Port Fast로 설정하면 BPDU 대기, 습득 과정 없이 곧 바로 푸워팅 상태로 포트를 사용할 수 있음



향상된 STP

STP의 문제를 해결하기 위한 향상된 STP

STP는 루프를 예방하기 위해 네트워크에 속한 모든 스위치까지 BPDU를 고려함, 이로 인해 블로킹 포트가 포워딩 상태로 변경될 때 까지 30~50초가 소요됨

  • TCP기반 애플리케이션의 네트워크가 단절됐을 때 30초를 기다리지 못하기 때문에 STP기반 네트워크에 장애가 발생하면 통신이 끊길 수 있음

  • 스위치에 여러개의 VLAN이 있을 시 각 VLAN별로 STP를 계산하면서 부하가 발생하기도 함


RSTP [Rapid Spanning Tree Protocol]

백업 경로를 활성화 하는데 오랜 시간이 걸리는 문제를 해결하기 위한 프로토콜

  • 2~3초로 절체 시간이 짧이 일반적인 TCP 기반 애플리케이션이 세션을 유지할 수 있게 해줌

특징

  • 빠른 네트워크 복구: STP보다 빠르게 네트워크 장애복구
  • 포트 역할 및 상태 개선: 포트 역할과 상태를 개선하여 트래픽 관리를 효율적
  • BPDU 포맷 개선: 다양한 BPDU 메시지로 네트워크 상태를 빠르게 전파
  • 호환성: STP와 호환되어 혼합 사용이 가능
  • 빠른 포트 전환: 포트가 신속하게 상태를 전환

    일반 STP의 토폴로지 발생시 보고와 알림


    RSTP의 토폴로지 발생시 보고와 알림

  • 루트 브릿지에 보고하는 형식이 아닌 터미널 스위치가 토폴로지 변화를 다른 브릿지에 직접 알려줌

PVST [Per Vlean Spanning Tree]

우선!
일반 스패닝 트리 프로토콜 CST(Common Spanning Tree)은 루프가 발생할 수 있는 토폴로지에서 단일 포트와 링크만을 활성화함. 이로 인해 VLAN마다 최적 경로가 달라질 수 있는 경우에도 하나의 포트만 사용하게 되어 자원을 효율적으로 사용할 수 없고, 통신 경로가 불필요하게 길어질 수 있음

이러한 문제를 해결하기 위해 VLAN 마다 다른 스패닝 프티 프로세스가 동작하고, VLAN마다 별도의 경로와 트리를 만들 수 있는 PVST가 개발됨

  • 이로인해 최적의 경로를 디자인하고 VLAN마다 별도의 블록 포트를 지정해 네트워크 로드를 셰어링 하도록 구성할 수 있게 됨

하지만 PVST는 모든 VLAN마다 별도의 스패닝 트리를 유지해야 하므로 더 많은 부담이 있음


MST [Multiple Spanning Tree]

CST와 PVST의 단점을 보완한 프로토콜

여러개의 VLAN을 묶고 그 그룹마다 별도의 스패닝 트리가 작동함

  • PVST보다 훨씬 적은 스패닝 트리 프로토콜 프로세스
  • PVST의 장점인 로드 셰어링도 가능
  • 리전 개념이 도입되어 여러 개의 VLAN을 하나의 리전으로 묶을 수 있음
    리전 하나가 스패닝 트리 하나

일반적으로 대체 경로의 개수나 용도에 따라 MST 스패닝 트리 프로토콜 프로세스 개수를 정의함



STP 프로토콜의 대안

  • SLPP
  • Extreme STP
  • Loop Guard
  • BPDU Guard
profile
지식을 쌓기 위한 기록 저장소

0개의 댓글