글 작성자: nouu

참고

http://www.yes24.com/Product/Goods/58259041

 

킹 오브 네트워킹 KING of Networking - YES24

네트워킹 입문, 실습 한 번씩이면 족하다. 예제 720개로 입문부터 실전까지 끝낸다.프로그래밍 분야와 달리 네트워킹 분야는 연습과 반복이 중요하지 않다. 길게 풀어쓴 백 마디 이론보다 정확한

www.yes24.com

https://www.inflearn.com/course/%ED%8C%A8%ED%82%B7%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%84%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

 

패킷트레이서를 활용한 컴퓨터네트워크 - 인프런 | 강의

컴퓨터 네트워크의 이론을 학습합니다. 시뮬레이션 프로그램을 사용하여 네트워크를 직접 구성해봄으로써 네트워크에 대해서 확실하게 공부해보세요. 설명이 잘 되어 있는 강의 자료를 제공합

www.inflearn.com

 

 

목적

네트워크 CS 이론에 대해 머릿속에 다시 상기시키고자 해당 글을 작성한다.

 

 

 

스패닝 트리 프로토콜이 없다면 생기는 문제

더보기

이더넷 프레임이 스위치 사이에 빙빙 도는 것을 이더넷 프레임 루핑이라고 한다. IP 패킷은 TTL(TimeToLive)이 있어 패킷의 무한루프를 막아준다. 그러나 이더넷 프레임 헤더에는 루프를 방지하는 필드가 없어 대신 STP가 사용된다. 

 

 

만약 이더넷 프레임 루프가 발생하면 다음과 같은 세 가지 현상이 발생한다.

1. 브로드캐스트 스톰 

링크의 주황색 표시가 초록색으로 됐다고 가정

만약 PC0가 브로드캐스트 프레임 하나를 Switch0로 전송하는 경우를 생각하자. Switch0는 이를 수신 포르를 제외한 나머지 포트로 플러딩(flooding) 시킨다. 만약 STP가 제대로 동작하지 않다면 Switch0는 Switch1과 Switch2에 전송하며, Switch2는 다시 Switch1으로 전송해서 프레임 루핑이 일어난다. 

 

그러면 결과적으로 무한하게 프레임 루핑이 될 것이며, 브로드캐스트 스톰을 맞게 된다.

 

 

2. MAC 주소 테이블 불안정

프레임 루핑이 발생한다면 각 스위치들은 동일한 출발지 MAC 주소를 가진 이더넷 프레임을 서로 다른 인터페이스를 통해 수신하게 된다.

만약 PC0가 특정 프레임을 어딘가에 보낸다고 가정하자. 이 프레임을 Switch0이 받고 해당 프레임을 플러딩 시킬 것이다. 그렇다면 Switch2는 출발지 MAC 주소를 바탕으로 MAC 주소 테이블에 정보를 기입할 것이다.

그런데 이후 Switch1이 Switch2에게 PC0에 대한 프레임을 플러딩에 의해 준다면 Switch2는 다시 MAC 주소를 기입하는데 "어?! MAC 주소 0000.0000.0001이 이미 저장되어 있잖아? 새로 기입 할 필요없이 포트 번호만 수정하면 되겠다." 라고 인식하여 Switch1과 연결 된 포트 F0/2를 등록할 것이다. 

 

결과적으로 MAC 주소 테이블이 수시로 변경되는 MAC 주소 테이블 불안정 현상이 발생

 

 

3. 프레임 이중 수신 

이더넷 프레임 루핑이 발생된다면 종단 장비는 동일한 프레임을 여러개 수신할 수 있을 것이다. 이 경우 프레임을 사용하는 Application이 동작하지 않을 수 있으며 오류가 생길 수 있다.

 

 

 

 

STP 동작 방식 

더보기

STP가 동작한다면 물리적으로 루프 구조인 네트워크에서 특정 포트를 차단상태로 바꾸어 논리적으로 루프가 발생하지 않도록 한다. 만약 동작중인 스위치나 포트가 다운된다고 했을 때 차단상태 포트를 다시 전송상태로 바꾸어 계속적인 통신이 보장된다.

 

STP는 BPDU(Bridge Protocol Data Unit)라는 프레임을 이용하여 루프가 없는 경로를 구성한다. BPDU는 두 가지 종류가 있는데 설정 BPDU, TCN(TopologyChangeNotification)BPDU가 있다.

 

설정 BPDU는 스위치 및 포트의 역할을 결정하기 위해 사용한다. 

TCN BPDU는 스위치 네트워크 구조(topology)가 변경되었을 때 이를 알리기 위해 사용한다.

 

스위치는 설정 BPDU를 이용하여 루트(root) 스위치를 선출한다. 이후 스위치 포트의 역할을 결정한다. 설정 BPDU루트 스위치가 만들어 2초마다 전송하고 다른 스위치들은 이것을 또 다른 스위치에 중계하는 역할을 한다. 설정 BPDU는 브릿지 ID, 루트 브릿지 ID, 경로값 및 포트 ID 등과 각종 타이머 값들이 포함되어 있다. 

 

 

STP의 전체적인 동작 흐름은 다음과 같다. 

1. 전체 스위치 중 루트(root) 스위치를 선출한다.

- 루트 스위치를 선출하는 기준은 다음과 같다. 

1순위 : 전체 스위치 중 브릿지 ID 값이 가장 낮은 것이 루트 스위치가 된다. 

브릿지 ID의 구성은 2bytes의 우선순위(priority)와 6bytes의 MAC 주소로 이루어준다. 브릿지 ID에서 사용하는 우선순위는 기본값이 16진수로 8000이며, 10진수로 변환하면 32768이다. 여기에 Vlan이 더해진 수가 우선순위가 된다. 

ex1) PVST+가 동작하는 스위치의 vlan 1의 브릿지 ID를 보고싶어요! 32768 + 1 = 32769가 우선순위가 된다.

 

ex2) 32769.0000.0000.0001의 브릿지 ID를 가지고 있는 스위치는 32769.0000.0000.0002의 브릿지 ID를 가지고 있는 스위치와 루트 스위치 선출 경쟁에서 이겨 루트 스위치가 된다.

 

 

2. 루트 스위치가 선출되었다면 루트 스위치가 아닌 모든 스위치에서 루트 포트를 하나씩 선택한다.

- 일단 루트 포트를 선택할 때 하나의 스위치의 포트끼리의 경쟁을 붙인다. 루트 포트를 선택하는 기준은 다음과 같다. 

1순위 : 루트 스위치 까지 경로값(Path Cost)의 합이 가장 작은 포트 (경로값은 포트의 속도로 값이 정해짐. 속도가 빠를수록 경로값이 작다.) 

2순위 : 인접 스위치의 브릿지 ID가 가장 낮은 포트 

3순위 : 인접 스위치의 포트 ID가 가장 낮은 포트 

 

포트의 속도 경로값
10Mbps(이더넷) 100
100Mbps(패스트 이더넷) 19
1Gbps(기가비트 이더넷) 4
10Gbps(10 기가 이더넷) 2

 

경로값의 합은 해당 스위치에서 루트 스위치까지 각 포트의 경로값을 합산한 것이다. 

포트 ID는 BPDU를 전송하는 포트의 포트 우선순위포트 번호로 구성된다. 포트 우선순위의 기본값은 128이다.

 

 

3. 한 세그먼트(segment, 쉽게 링크라고 생각하면 됨) 당 지정 포트를 하나씩 선택한다. 

-지정 포트를 결정할 때 다음 세가지 우선순위 사항을 차례로 비교하여 우열이 가려지면 해당 포트를 지정포트로 동작시킨다. 

1순위 : 루트 스위치까지 경로값의 합이 작은 스위치의 포트

2순위 : 브릿지 ID가 낮은 스위치의 포트 

3순위 : 포트 ID가 낮은 포트 

 

 

 

 

 

STP 동작 방식 실습

더보기

1. 루트 스위치의 선출 

위의 그림과 같이 Switch0의 브릿지ID는 32769.0007.EC1C.CD9B로 다른 스위치의 브릿지ID보다 우선순위가 더 높기 때문에 루트 스위치로 선출됨. 

 

2. 루트 포트의 선출

위의 그림에서 루트 스위치인 Switch0의 건너편 경로인 Switch2의 루트 포트는 경로 값의 합이 작은 Fa0/1이 루트 포트가 되며, Switch1도 마찬가지로 Fa0/1이 RootPort가 된다.

 

3. 지정 포트의 선출 

루트 스위치는 기본적으로 건너편 장비의 포트가 root 포트가 되기 때문에 지정포트로 선출된다. 이후 Switch1과 Switch2 세그먼트 부분에 있는 포트들이 desg 경쟁을 하는데 1순위 고려사항인 스위치의 경로값(path Cost)는 19로 같으며, 2순위인 브릿지ID는 Switch2가 더 낮기 때문에 Switch2의 fa0/2가 desg 포트가 되며 Switch1의 Fa0/2가 대체 포트가 되어 차단 상태가 된다. 

 

 논리적으로 구성하면 위와 같은 이미지의 토폴로지로 나타낼 수 있다. 하지만 Switch1과 Switch2의 세그먼트를 영원히 사용하지 않는 것은 낭비가 되고 뭔가 아깝지 않은가? 따라서 cisco는 PVST+라는 프로토콜로 Vlan 별로 서로 다른 경로를 이용할 수 있도록 경로 재조정을 할 수 있다.