STP Toplogy Change Notification(TCN)
by 댄싱인더뭉라잇이번에는 STP에서 토폴로지에 변화가 생겼을때 발생하는 TCN에 대해 정리하려고한다.
토폴로지
# ESW4
spanning-tree vlan 1 priority 4096
# ESW1
interface fa1/2
spanning-tree cost 50
ESW4를 루트브리지로 설정하고 ESW1의 1/2포트에 Cost 비용을 수동 설정하여 ND포트로 만들었다.
PC1에서 PC2로 통신을하기 위해서는 ESW1 ESW3 ESW4 ESW2를 통해서 통신을 하게 된다.
만일 위와같이 ESW3에서 ESW4로 가는 경로에 장애가 생기면 어떻게 될까?
트래픽이 ESW1 ESW2를 통해서 바로 전달될까?
ESW1의 FastEthernet1/2 포트는 Blocking 상태에 있기 때문에 Listenting(20초) learning(15초) forwarding(15초) 총 50초의 시간이 걸리게된다.
게다가 ESW1은 PC2의 MAC주소가 MAC Address Table에 남아있어서 트래픽을 계속해서 Fastethernet1/1경로로 보내게된다.
그렇기 때문에 300초(기본값)동안 PC1과 PC2는 통신이 불가능하게된다.
TCN
토폴로지에 변화가 생기게 되면 스위치는 루트 스위치에게 TCN 메세지를 전송하게 된다.
루트 스위치는 다시 토폴로지내 스위치에 TCN 메세지를 전송한다.
TCN 메세지를 받은 스위치들은 MAC 주소의 유효시간을 15초로 변경한다.
토폴로지 그림에 맞게 ESW3에서 ESW4로가는 포트를 죽였다.
ESW1의 스위치는 루트브리지로가는 경로의 최단경로가 바뀌었기 때문에 루트포트를 변경하고 ND포트가 포워딩까지 가는데 50초정도의 시간이 소요된 것을 볼 수 있다.
위 그림은 PC1에서 PC2로 지속적으로 핑을 보내고 있던 화면을 캡처한 것으로 중간에 통신이 끊겼다가 STP에의해 토폴로지가 살아나면서 복구된 것을 볼 수 있다.
TCN 전파 과정
토폴로지에 변화가 생긴것을 감지한 스위치는 루트스위치에게 TCN 메세지를 전송하고 루트스위치는 응답으로 TCA응답을 보낸다.
루트스위치는 토폴로지내의 모든 스위치에게 TCN 메세지를 전달하여 토폴로지의 변화를 알린다.
TCN메세지는 BPDU 타입필드를 통해 구분 할 수 있다.
TCN문제점
서버에서 백업디바이스로 백업을 위해 많은 유니캐스트 트래픽을 보내는 도중 토폴로지에 변화가 생겨서 TCN 메세지를 스위치가 받았다고 가정해보자. 스위치의 MAC주소의 aging time은 15초로 줄어들게 되고 백업 디바이스의 MAC 주소는 모든 스위치에서 사라질 것이다.
서버는 계속해서 백업 디바이스로 유니캐스트 트래픽을 보낸다, 스위치는 백업디바이스의 맥주소를 모르기때문에 백업 디바이스의 MAC 주소를 학습하기 전까지 트래픽을 브로드캐스트 할 것이다.
이러한 문제를 해결하기 위해서 portfast라는 기능을 사용할 수도 있다.
블로그의 정보
인프라공방
댄싱인더뭉라잇