Network - STP

FromCloud·2023년 6월 26일
0

Network

목록 보기
8/8
post-custom-banner

1. SPoF

IT환경에서는 SPoF(Single Point Of Failure: 단일 장애점)로 인한 장애를 피하기 위해 노력하고 있다

SPoF: 하나의 시스템이나 구성요소에서 고장이 발생했을때 전체 시스템의 작동이 멈추는 요소

스위치 한대로 구성했을때 그 스위치에 장애가 발생하면 전체 네트워크에 장애가 발생

이런 SPoF를 피하기 위해 스위치 두 대로 네트워크를 디자인해도 두 대 이상의 스위치로 패킷이 네트워크를 따라 계속 전송이 되어서 네트워크를 마비 시킬 수 있다
-> 이것을 루프(Loop)라고 한다, 예방하기 위해선 별도의 메커니즘이 필요

2. 루프(Loop)

루프: 네트워크에 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황을 말함

루프상황이 발생하면 네트워크가 마비되고 통신이 안됨 대부분 브로드캐스트 스톰(Storm)으로 인한 문제이다

2.1. 브로드캐스트 스톰

브로드캐스트 스톰

2.1.1. 루프 구조로 네트워크가 연결된 상태에서 단말에서 브로드캐스트 발생하면 유입된 포트를 제외한 모든 포트로 플러딩
2.1.2. 플러딩된 패킷은 다른 스위치로 보내지고 유입된 포트를 제외한 모든 포트로 다시 플러딩 하는것

2계층 헤더에서는 이런 3계층의 TTL(Time to Live)와 같은 라이프타임 메커니즘이 없음

2.1.1. 브로드캐스트 스톰 상황이 발생하면?

2.1.1.1. 네트워크에 접속된 단말의 속도가 느려지고 CPU 사용률이 높아짐
2.1.1.2. 네트워크 접속 속도가 느려짐
2.1.1.3. 스위치에 모든 LED들이 동시에 빠른 속도로 깜빡임

2.2. 스위치 MAC 러닝 중복 문제

루프 구조에서는 브로드캐스트 뿐만아니라 유니캐스트 문제도 일어남

2.2.1. MAC 어드레스 플래핑(MAC Address Flapping)

  1. 스위치는 출발지 MAC을 학습하는데 직접 전달되는 패킷과 돌아서 들어간 패킷간의 포트가 달라 MAC 을 정상적으로 학습 할 수 없음
  2. MAC 주소 테이블에서는 하나의 MAC 주소에 대해 하나의 포트만 학습
  3. 동일한 MAC 주소가 여러 포트에 학습되며 MAC 테이블이 반복 갱신
    -> 정상 작동을 하지 않는것

2.2.2. 예방

스위치에 학습된 주소의 포트가 계속 변경되어 스위치가 정상동작하지 못하고 패킷을 플러딩하게됨

2.2.2.1. 스위치 설정에 따라 경고 메시지를 관리자에게 얼려줌
2.2.2.2. 플래핑 현상을 학습하지 않도록 자동조치
2.2.2.3. 루프 구성 포트중 하나의 포트만 사용하지 못하도록 셧다운

3. STP

스패닝 트리 프로토콜 (Spanning Tree Protocol): 루프를 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 메커니즘

3.1. 루프를 예방하기 위해선 스위치가 어떻게 연결되어있는지 알아야함
3.2. 스위치 간에 정보를 전달하는 방법이 필요하다
3.3. BPDU(Bridge Protocol Data Unit)라는 프로토콜을 통해 스위치간에 정보를 전달

3.1. 스위치 포트의 상태 및 변경 순서

STP는 루프를 막기위해 스위피 포트에 신규 스위치가 연결되면 바로 트랙이 흐르지 않도록 차단함
확인을 위해 BPDU를 기다려 학습하고 구조를 파악한뒤 트래픽을 흘리거나, 루프 구조인 경우 차단 상태를 유지

3.1.1. Blocking

3.1.1.1. 패킷을 차단한 상태로 상대가 보내는 BPDU를 기다림
3.1.1.2. MAX Age(20초) 동안 BPDU를 받지 못하거나 후순위 BPDU를 받으면 리스닝 상태로 변경
3.1.1.3. 기본 교환 주기 2초, 10번 BPDU를 기다림

3.1.2. Listening

3.1.2.1. 해당 포트가 전송 상태로 변경되는 것을 결정하고 준비하는 단계
3.1.2.2. 자신의 BPDU정보를 상대방에게 전송하기 시작
3.1.2.3. 총 15초 동안 대기

3.1.3. Learning

3.1.3.1. 포트를 포워딩하기로 결정하고 실제로 패킷 포워딩이 일어날때 곧바로 동작하도록 MAC 주소를 러닝하는 단계
3.1.3.2. 총 15초 동안 대기

3.1.4. Fowarding

3.1.4.1. 패킷을 포워딩하는 단계
3.1.4.2. 정상적인 통신이 가능함

3.2. STP 동작 방식

  1. 하나의 루트(Root) 스위치 선정
    1.1. 전체 네트워크에 하나의 루트 스위치 선정
    1.2. 자신을 전체 네트워크 대표 스위치로 적은 BPDU를 옆 스위치로 전달
  2. 루트가 아닌 스위치중 하나의 루트 포트 선정
    2.1. 루트 브릿지로 가는, 경로가 가장 짧은 포트 => 루트포트
    2.2. 루트브릿지에서 보낸 BPDU를 받는 포트
  3. 하나의 세그먼트에 하나의 지정포트 선정
    3.1. 스위치간에 연결되는 포트는 하나의 지정포트를 선정
    3.2. 스위치간의 연결에서 이미 루트포트로 선정된경우, 반대쪽이 지정포트로 선정
    3.3. 양쪽 모두 포워딩 상태가됨
  4. 스위치 간의 연결에서 아무도 루트포트가 아닐 경우
    4.1. 한쪽은 지정포트로 선정
    4.2. 다른 한쪽은 대체포트가 되어 차단 상태가됨
  5. BPDU가 절달되는 포트

4. RSTP

RSTP(Rapid Spanning Tree Protocol): STP가 시간이 너무 오래걸리는 문제를 해결하디 위해 개발

  • 2~3초 절체 시간이 짧아 일반적인 TCP 기반 애플리케이션 세션을 유지 가능함
  • 트폴로지가 변경이 일어난 스위치 자신이 모든 네트워크에 토폴로지 변경을 직접 전파 할 수 있음
profile
매일 발전하는 Cloud Engineer
post-custom-banner

0개의 댓글