리눅스 Tips, 리눅스 C/C++ 프로그래밍, 모바일 클라우드 동향 및 테스트 등

2013년 4월 26일 금요일

네트워크 기본이론 : 06 스위치를 켜라(1)


1. 스위치와 브리지

 - 스위치 또는 브리지는 콜리전 도메인을 나누어 주는 장비이다.
 - 브리지와 스위치는 둘다 데이터 링크 레이어이지만 다음과 같은 차이점이 존재한다.
  1) 스위치는 하드웨어 방식으로, 브리지는 소프트웨어 방식으로 프레임을 처리한다.
  2) 브리지는 포트들이 같은 속도를 지원하지만, 스위치는 서로 다른 속도를 연결해줄 수 있는 기능을 제공한다.
  3) 스위치는 브리지에 비해 제공하는 포트 수가 훨씬 많다.
  4) 스위치의 경우 cut-through 또는 store-and-forward 방식을 사용하는데 비해서 브리지는 오로지 store-and-forward 방식만을 사용한다.

2. 본격적으로 스패닝 트리를 공부하기 전에

 - 스패닝 트리 알고리즘이란 스위치나 브리지에서 발생하는 루핑을 막기 위한 프로토콜이다.
 - 스패닝 트리 프로토콜을 이해하기 위해 다음과 같은 두 가지 개념을 이해할 필요가 있다.
  1) 브리지 ID
    - 브리지나 스위치들이 통신할 때 서로의 확인을 위해 하나씩 가지고 있는 번호
    - Bridge Priority(2byte) + MAC Address(6byte) 로 구성되어 있음
    - 디폴트 값은 중간값인 32768
  2) Path Cost
    - 브리지가 얼마나 가까이, 그리고 빠른 링크로 연결되어 있는지를 알아내기 위한 값
    - (Bandwidth - Path Cost) : (10Mbps - 100), (100Mbps - 19), (1Gbps - 4)

3. 본격적으로 스패닝 트리를 공부하기 전에

 - 스패닝 트리를 이해하기 위해 외어야 할 기본 동작 세가지는 다음과 같다.
  1) 네트워크당 하나의 루트 브리지(Root Bridge)를 갖는다.
  2) 루트 브리지가 아닌 모든 브리지(Non Root Bridge)는 무조건 하나씩의 루트 포트(Root Port)를 갖는다.
  3) 세그먼트(Segment) 당 하나씩의 데지그네이티드 포트(Designated Port)를 갖는다.
    * 스패닝 트리 프로토콜에서 루트 포트, 데지그네이티드 포트를 제외한 모든 포트는 막는다.

4. STP(Spanning Tree Protocol)에서 힘 겨루기

 - 루트 브리지, 루트 포트, 데지그네이티드 포트를 정하기 위한 4가지 단계는 다음과 같다.
  1) 누가 더 작은 Root BID를 가졌는가?
  2) 루트 브리지까지의 Path Cost 값은 누가 더 작은가?
  3) 누가 더 작은 Sender BID를 가졌는가?
  4) 누구의 Port ID가 더 낮은가?
 - 스패닝 트리 정보를 주고받기 위해 BPDU(Bridge Protocol Data Unit)이라는 특수한 프레임을 사용하며, 2초마다 주고받는 BPDU에는 Root BID, Path Cost, Sender BID, Port ID 등의 정보가 실려있다.

5. Root Bridge 선정하기

 - 다음은 루트 브리지 선정 Flow이다.
  1) 스위치(브리지) 부팅
  2) BPDU 프레임 주고받기(Root BID, Sender BID 모두 자신의 BID 값)
  3) 전달 받은 BPDU 프레임에서 BID 값을 비교하여 낮은 값의 브리지가 루트 브리지
  4) 루트 브리지가 아닌 스위치(브리지)의 BPDU에서 Root BID값을 선정된 루트 브리지 값으로 대체
 - 강제적으로 다른 스위치(브리지)를 루트 브리지로 선정하고 싶은 경우에는 BID의 Bridge Priority 값을 낮은 값으로 변경하면 된다.

6. Root Port 선정하기

 - 다음은 루트 포트 선정 Flow이다.
  1) 루트 브리지가 아닌 스위치(브리지)의 각 포트에서 루트 브리지까지의 Path Cost 비교
  2) 각 스위치(브리지)에서 가장 낮은 Root Path Cost를 가진 포트가 루트 포트로 선정

7. Designated Port 선정하기

 - 세그먼트(Segment) 당 하나씩의 데지그네이티드 포트를 지님을 기억하자.
 - 다음은 데지그네이티드 포트 선정 Flow이다.
  1) 루트 브리지의 포트는 모두 데지그네이티드 포트
  2) 루트 브리지가 아닌 스위치 사이에 생성된 세그먼트에서는 Root BID, Root Path Cost, Sender BID, Port ID 값을 순서대로 비교하여 낮은 값을 지닌 포트가 데지그네이티드 포트 선정

8. 스패닝 트리 프로토콜의 5가지 상태 변화

 - STP의 구현 과정에서 모든 스위치(브리지)들의 포트들은 다음의 5가지 상태로 변화한다.
  1) Disabled : 포트 고장, 관리자가 포트를 Shut Down 시킨 상태
    - 데이터 전송 : 불가능
    - MAC Address Learning : 불가능
    - BPDU 전송 :  불가능
  2) Blocking : 스위치를 처음 켜거나 Shut Down 상태의 포트를 살린 경우로 BPDU 전송을 통해 루트 브리지, 루트 포트, 데지그네이티드 포트 선정이 이 단계에서 이루어짐
    - 데이터 전송 : 불가능
    - MAC Address Learning : 불가능
    - BPDU 전송 :  가능
  3) Listening : 블로킹 상태에서 루트 브리지, 루트 포트, 데지그네이티드 포트 선정이 완료된 상태로 네트워크 상황에 따라 다시 블로킹 상태로 되돌아 갈 수 있음
    - 데이터 전송 : 불가능
    - MAC Address Learning : 불가능
    - BPDU 전송 :  가능
  4) Learning : 리스닝 상태를 포워딩 딜레이인 15초 동안 유지하면 러닝 상태로 변경되며, 맥 어드레스 테이블을 만드는 작업을 수행하는 단계
    - 데이터 전송 : 불가능
    - MAC Address Learning : 가능
    - BPDU 전송 :  가능
  5) Forwarding : 러능 상태를 포워딩 딜레이인 15초 동안 유지하면 포워딩 상태로 변경되며, 이때부터 데이터 프레임 전송이 가능
    - 데이터 전송 : 가능
    - MAC Address Learning : 가능
    - BPDU 전송 :  가능
 * 리스닝, 러닝, 포워딩 상태에 있던 포트도 루트 포트나 데지그네이티드 포트에서 탈락되면 바로 블로킹 상태로 넘어갈 수 있으며, 고장이나 Shut Down 여부에 따라서도 디스에이블드 상태로 넘어갈 수 있다.

9. 스패닝 트리의 변화

 - 링크의 속도와 루트 브리지를 어디로 잡느냐의 여부를 항상 염두해서 네트워크를 디자인
 - 스패닝 트리의 변화를 공부함에 앞서 알아야할 용어
  1) Hello Time : 루트 브리지가 헬로 BPDU를 보내는 시간 간격으로 디폴트는 2초
  2) Max Age : 브리지들이 루트 브리지로부터 얼마 동안 헬로 BPDU를 받지 못했을 때 루트 브리지가 죽었다고 생각하고 새로운 스패닝 트리를 만들기 시작하는가에 대한 시간으로 디폴트는 20초
  3) Forwarding Delay : 브리지 포트가 리스닝 상태에서 러닝 상태로, 러닝 상태에서 포워딩 상태로 바뀌는데 걸리는 시간으로 디폴트는 각 15초

'네트워크 기본이론 : 06 스위치를 켜라(2) '에 이어서...

댓글 1개:

  1. 출처 : 후니의 쉽게 쓴 시스코 네트워킹(사이버출판사)

    답글삭제