STP 동작방식

STP알고리즘에 대해서 이야기를 해보겠습니다.


스위치들이 서로 라인이 연결되면 다음과 같이 동작합니다.


1. 전체 스위치중에서 루트스위치를 선택한다.


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


3. 한 스위치 세그먼트 (segment)당 지정 (designated)포트를 하나씩 선택한다.


4. 루트포트도 아니고 지정포트도 아닌 포트를 대체포트라고 한다. 이 포트는 항상 차단상태이다.



여기서 세그먼트라 함은 아래 그림처럼 장비들 간에 연결된 라인을 이야기 합니다.





STP가 완성되는 순서입니다.


이제 차근차근 뜯어서 보겠습니다.




루트스위치 선출


루트스위치가 선출되는 조건은 간단합니다. 걍 브릿지ID가 가장 낮은 스위치가 루트 스위치가 됩니다.


브릿지 ID를 결정하는 방법은 지난 포스팅에서 이야기를 했으니 생략하겠습니다.





루트포트 선택


루트스위치가 결정이 되면 나머지 스위치에서 루트포트를 결정하게 됩니다.


루트포트를 결정할 때 경쟁포트간에 아래와 같은 순서로 비교하게 됩니다.


1. 루트 스위치의 ID가 낮은 BPDU를 수신한 포트


쉽게 이야기해서 루트스위치와 가까운 쪽 포트가 루트포트가 된다는 이야기입니다.







2. 경로값이 가장 작은 포트

루트스위치까지의 경로를 계산하였을 때 cost가 작은 쪽이 루트포트가 된다는 이야기입니다. 역시 1번과 마찬가지로 루트스위치와 가까운 쪽 포트가 RP가 된다는 이야기입니다.



100Mbps라고 했을 때 SW2를 기준으로 한쪽은 cost가 19이고 한쪽은 cost가 38이니 19인쪽이 RP가 됩니다.






3. 인접 스위치의 브릿지ID가 가장 낮은 포트

루트스위치와 2홉 이상 떨어져 있고 cost값이 같다면 넥스트 홉 스위치의 브릿지 ID가 적은쪽이 RP가 된다는 이야기입니다.









4. 인접 스위치의 포트 ID가 가장 낮은 포트

   

하나의 세그먼트에 2개의 라인이 연결되었을 때 자신의 스위치가 아닌 건너편 스위치의 포트ID가 낮은쪽이 RP로 결정됩니다.




일반적으로 포트ID의 우선순위가 같은경우라면 인터페이스 번호가 적은쪽이 우선순위를 가지게 됩니다.








5. 자신의 포트ID가 가장 낮은 포트


하나의 세그먼트에 그림과 같이 허브를 이용하여 1:N의 연결시에는 상대편의 포트ID도 완전히 동일하기 때문에


자신의 포트ID를 보고 ID값이 낮은 포트를 루트포트로 결정합니다.






루트포트를 결정하는 건 조금 복잡하네요.


하지만 잊지말아야 할 내용은 1번만으로 RP가 결정될 수 있고, 1에서 같은 조건이면 2 -> 3 -> 4 등으로 넘어가는 구조라는 겁니다.








루트포트를 결정하게 되면 이제 지정포트를 결정하게 됩니다.


지정포트는 한 세그먼트 당 하나씩 존재합니다. 세그먼트에 대해서는 위에서 이야기했습니다.


지정포트 역시 루트포트처럼 결정 순서가 있습니다.



1. 루트 스위치의 각 포트 (루트스위치의 모든 포트가 DP가 되는 것은 아닙니다)




2. 후 순위 BPDU를 수신한 포트

루트포트의 경우가 반대입니다. 가장 낮은 순위의 BPDU를 받으면 루트포트라고 했죠? 이것보다 높은순위(후순위)의 BPDU를 수신하게 된 포트가 DP로 지정되는 겁니다. 즉, RP가 아닌 다른 포트가 DP가 된다. 이렇게 이해하시면 편할 것 같네요.











3. 경로값이 작은 스위치의 포트

이것도 2번과 비슷하다 생각하시면 됩니다. 루트스위치까지의 경로값이 작은경우 RP가 되는거죠? RP가 아닌 포트 (경로값이 큰 포트)가 DP가 되는 겁니다.









4. 브리지 ID가 낮은 스위치의 포트

여기서 브리지 ID가 낮다라고 표현한것은 브릿지ID의 절대값이 낮은게 아니고 우선순위가 낮은 쪽 포트를 이야기하는 겁니다. 아무래도 절대값이 낮은 숫자가 우선순위가 앞서게 되는 경우이니 용어에 따라 반대로 이해할 수도 있으니 주의하셔야 할 것 같습니다. 역시 RP선출의 반대경우라 생각하시면 될 것 같습니다.








5. 포트 ID가 낮은 포트

1번에서 언급한 모든 루트스위치가 DP가 되지 않는 경우를 예로 들 수 있습니다.

중간에 허브가 위치하여 두개이상의 포트가 반대편 스위치와 하나의 세그먼트를 이룰 때는 포트ID가 낮은 포트가 DP가 됩니다. 역시 숫자가 낮은 쪽이 우선순위가 높아지는거죠.









STP토폴로지에서 모든 RP와 DP가 결정되고 어느쪽에도 선택받지 못한 불쌍한 인터페이스가 하나생깁니다. 이 친구가 대체포트(alternated port)가 되어 block상태로 변하게 됩니다.


이렇게 되면 STP토폴로지가 완성됩니다.










그럼 위 그림을 가지고 STP가 완성되는 과정을 시뮬레이션 해보겠습니다.


4개의 스위치는 모두 100Mbps로 연결되어 있고 각 스위치들의 우선순위값과 MAC 주소는 그림과 같습니다.


모두 VLAN1으로 연결되어 있다고 가정해보겠습니다.




1. 루트스위치를 선출합니다. priority값이 SW1이 제일 적으니 SW1이 STP의 루트 스위치가 됩니다.


2. 루트포트를 선출합니다.

루트 스위치와 인접한 SW2의 F0/1과 SW3의 F0/1이 루트포트로 설정됩니다.

또 SW4는 인접한 스위치들의 브릿지ID를 비교하여 SW2와 인접한 F0/1이 루트포트로 설정됩니다.


3. 지정포트를 선출합니다.

루트스위치인 SW1의 F0/1과 F0/2가 지정포트로 설정됩니다.

SW2의 F0/2는 같은 세그먼트에 루트포트가 존재하므로 지정포트가 됩니다.

SW3의 F0/2와 SW4의 F0/2이 연결된 세그먼트에는 루트포트가 존재하지 않습니다. 따라서 각각의 스위치가 루트스위치까지의 경로값으로 경합하여 SW3는 19, SW4는 38이므로 SW3의 F0/2가 지정포트가 됩니다.


4. 대체포트 선출 및 차단

SW4의 F0/2는 루트포트도 아니고 지정포트도 아닙니다. 따라서 대체포트로 설정하고 논리적 Block상태로 설정됩니다.






이렇게 완성되겠죠?



댓글

이 블로그의 인기 게시물

ping 일반오류 (General failure)를 고쳐보자

Windows 10. 공유폴더 쉽게 삭제하기 (feat. CMD)

Piolink TiFront Switch password recovery (파이오링크 스위치 비밀번호 초기화)