한 걸음 두 걸음

스마트 네트워크 ] 이더넷 스위치 & STP 본문

CSE/Network

스마트 네트워크 ] 이더넷 스위치 & STP

언제나 변함없이 2019. 10. 10. 17:09
반응형

★루트경로비용 중요!

1. STP

backbone switch는 access switch들을 연결하고 access switch들은 pc들을 연결합니다.

STP: 스위치 사이에 존재하는 순환 경로를 자동으로 탐지하고 해제

스위치가 고장날 때를 대비해서 반드시 이중화를 해야하나, 이중화를 했을 때 발생하는 순환경로문제가 있으므로, STP(spanning tree protocol)을 사용한다. -> 일부 경로 논리적으로 blocking시킨다.(루프의 일부 경로의 가상 단절을 통해 트리 형태의 경로 구성) -> 가장 좋은 경로만 사용함

*순환경로문제 : Broadcast Storm, 특정 스위치에서 출발한 프레임이 여러 경로를 거쳐 다시 출발지 스위치로 돌아올 수 있는 순환 경로 (loop, 특정 스위치에서 출발한 프레임이 다른 스위치를 거쳐 다시 출발지 스위치로 되돌아 올 수 있는 경로) 형성으로 인해 발생

하지만 오른쪽 사진처럼 사용되던 경로가 고장이 나는 경우 논리적으로 막아두었던 경로를 다시 사용할 수 있도록 자동 설정해주어야한다.(자동으로 하게 해주는 것 또한 STP)

2. STP 동작 절차

다음과 같이 연결된 네트워크가 있을 때,

루트포트(가장 ID값이 작은 브릿지(스위치))가 이미 정해져있으므로, 루트포트를 링크비용에 따라 설정하여 사용하게 됩니다.(Giga = 4, Fa = 19) 여기서 같은 비용이 드는 경로가 있다면, 더 작은 ID를 가진 경로를 사용합니다. 이렇게 계산한 경로만 사용하고 나머지는 논리적으로 막게되죠.

지정포트 정하고 이제 둘 다 설정되지 않은 포트가 있는 건 모두 block합니다.(특정 LAN 세그먼트(링크)로부터 루트 브리지까지 루트 경로 비 용이 가장 작은 브리지의 포트)

왼쪽 루트포트, 오른쪽 designated port

루트포트 선정절차

특정 브리지(스위치)의 포트 중에 루트 경로 비용이 가 장 작은 포트

1. 수신된 BPDU의 루트 경로 비용에 수신 포트의 링크비용을 더하여 포트의 루트 경로 비용을 계산한다.

  1. 루트 경로 비용이 가장 작은 포트를 루트 포트로 선정한다.

3. 루트 경로 비용이 동일한 경우 송신자 BID가 가장 작은 BPDU를 수신한 포트를 루트 포트로 선정한다.

  1. 송신자 BID까지 같으면 포트 ID가 가장 작은 BPDU를 수 신한 포트를 루트 포트로 선정한다.

지정포트 선정절차

특정 LAN 세그먼트(링크)로부터 루트 브리지까지 루트 경로 비용이 가장 작은 브리지의 포트

1. 특정 포트로 BPDU를 송신하는 브리지는 해당 포트를 통해 수신되는 BPDU의 루트 경로 비용과 자신의 루트 경로 비용을 비교한다.

  1. 비교 결과 자신의 루트 경로 비용이 가장 작으면 자신의 해당 포트를 지정 포트로 선정한다.

3. 루트 경로 비용이 동일한 경우 송신자 BID를 비교하여 자신의 BID가 더 작으면 자신의 해당 포트를 지정 포트로 선정한다.

  1. 송신자 BID까지 같은 경우 포트 ID가 더 작은 포트를 지정 포트로 선정한다.

이렇게 동작하게 위해서는 스위치간에 정보 업데이트를 주기적으로 해주어야하는데, 이 떄 사용하는 것이 BPDU(Bridge Protocol Data Unit)입니다.

브리지 ID의 구체적인 구조 (오른쪽)

이는 루트스위치만 2초마다 업데이트하는 BPDU를 보내면되는데, 처음에 스위치들은 자기 자신밖에 모르기때문에 자신이 Root스위치인줄 알고 있습니다. 그래서 스위치가 처음엔 다른 스위치들에게 BPDU를 다 보내지만, 다른 스위치가 주는 BPDU의 루트아이디와 비교해서 자신이 가장 작은 것이 아니라면 더 이상 업데이트하는 BPDU를 보내지 않게 됩니다. 때문에 시간이 지나서, 자신의 ID가 제일 작은 경우가 아니라면 BPDU를 그만 보내겠죠?

처음에 포트가 2개인 스위치가 brige라고 했었기 때문에 브릿지라고 부르는데도 많으나, 결국 스위치임.

루트 경로 비용(Root Path Cost) : 루트 브리지와 특정 브리지간에 존재하는 모든 링크 비용의 합(루트브리지까지 가는데 걸리는 비용 합)

포트상태 변환

막힌 상태 : BPDU 교환을 통해 루트 포트와 지정 포트 선정 과정에 참여,특정 포트가 루트 포트 또는 지정 포트로 선정되면 해당 포트의 상태는 듣기 상태로 변환.데이터 프레임의 송신과 수신 기능 비활성화

듣기 상태 : 막힌 상태로 되돌아 가지 않는다는 것을 확인하기 위해 일정한 진행 지연시간(Forward Delay) 동안 대기, 듣기기 상태의 진행 지연시간의 기본값(default)은 15초, 듣기 상태에서 막힌 상태로 되돌아가지 않으면 학습 상태로 변환

학습 상태 : 자가 학습(self-learning)을 통해 주소 테이블에 엔트리 추가 , 충분한 엔트리 추가 보장을 위해 일정한 진행 지연시간 (Forward Delay)을 기다린 후 전달 상태(Forwarding State)로 변화 ,진행 지연시간의 기본값은 15초

전달 상태 : 완전히 활성화되어 데이터 프레임 송.수신 가능

3. 경로 고장이 났을 경우 반응 / 토폴로지 변경

B1은 루트브리지

  1. 스위치B2가 최대 수명 20초 동안 BPDU를 수신하지 못하면 B2를 경유한 루트 브리지로의 경로에 고장이 발생하였음을 알게됩니다.

    B4의 3번 포트는 듣기 상태로 변환되어 15초 동안 대기

B4의 3번 포트는 다시 학습 상태로 변환되어 15초 동안 대기

B4의 3번 포트가 전달 상태로 변환되어 토폴로지 변경함으로 다시 경로를 설정하게 됩니다.
-> 정상적으로 쓸 수 있도록 맥주소 테이블을 갱신하는데 필요한 시간이 필요합니다.

= >(STP에서 최대 50초)

-> 오래 걸리니까 RTSP를 사용하기도 함!

토폴로지 변경 통지 필요성
B4뿐만 아니라 B3의 주소 테이블이 변경된 토폴로지를 반영하여 적절하게 갱신되어야 함
최악의 경우 B3 주소 테이블의 수명 시간(aging time, 기본값 – 300초) 동안 A와 B간의 통신 불능 상태가 지속

토폴로지 변경 보고
1. 토폴로지 변경을 수행한 브리지가 루트 브리지에게 TCN(Topology Change Notification) BPDU 전송
2. TCN BPDU를 수신한 지정 브리지는 표시기(flag) 필드의 TCA(Topology Change Acknowledgement) 비트가 1로 설정된 TCA BPDU를 송신 브리지에게 전송
(3. TCN BPDU를 수신한 지정 브리지는 자신의 루트 포트를 통해 TCN BPDU를 다시 송신)
4. TCA BPDU를 수신한 브리지는 TCN BPDU 송신을 중단

참고링크

https://okjh.tistory.com/22

http://blog.naver.com/PostView.nhn?blogId=heavenksm&logNo=80019808030&redirect=Dlog&widgetTypeCall=true

https://4network.tistory.com/entry/BPDUBridge-Protocol-Data-Units-%EA%B0%9C%EC%9A%94

 

가장 작은 브리지ID를 가진 브리지만 루트 브리지로써 BPDU를 연결된 포트로 전송시키기위해 스위치들은 BPDU의 값을 자신의 브리지ID와 비교하여 자신의 ID가 가장 작은 경우가 아닐 경우 BPDU송신을 중단한다. 즉, 루트브리지만 BPDU를 주기적으로 전송시키기 위해서는 자신의 ID가 가장 작은지만 확인 후 생성할 것인지 결정하면 된다. (만약 자신의 브리지가 루트브리지가 아닌 경우 루트 브리지로부터 2초마다 오는 BPDU를 수신하고 갱신하여 다른 브리지로 보낸다.)

 

가장 좋은 경로의 기준은 루트 스위치까지 가는데 가장 적은 비용이 드는 경로가 가장 좋은 경로이다.

루트 스위치는 가장 작은 MAC주소를 가진  B5스위치이다. 

B1의 루트 포트는

오른쪽이랑 왼쪽이 비용이 같은데, B2의 Bridge ID가 더 작은 값이므로 왼쪽 포트가 루트포트이다. (브리지아이디까지 같으면 포트ID를 비교한다.) 


보면 스위치1에서 0으로 가는 경로는 막혀있기때문에 1-2-0-PC1로 이동한다.

모든 스위치의 STP와 arp테이블을 해제하면 순환경로문제로 인해 브로드캐스트스톰문제가 발생한다.

그 이유는 특정 스위치에서 출발한 프레임이 여러 경로를 거쳐 다시 출발지 스위치로 돌아올 수 있는 순환 경로가 형성되어있기 때문이다.

Base MAC주소는 직접 패킷트레이서로 설계 후 CLI에서 조사하여 넣었다.

루트스위치로 변경하기위해 우선순위를 결정하는 비트를 변경했다. 

PC3은 VLAN20에 속해있다. 그러므로 PC3이 브로드캐스트 프레임을 송신하면 같은 VLAN20에 있는 PC8, PC9로만 프레임을 전달해야한다.

판단할 수 있다. 왜냐하면 destination Address는 모두 1로 설정되어있기때문에 사용하지 못하지만, Type에 기록되어있는 VLAN에 대한 정보를 확인하여 판단 후 프레임을 전송한다.

반응형