1097. 브로드캐스트 스톰 (루프 발생) - Broadcast Storm L2 Switching Loop 네트워크 마비 스패닝 트리 프로토콜(STP) 이중화 구조 결함 BUM 트래픽
핵심 인사이트: 스위치(허브) 1대가 고장 나서 회사 인터넷이 죽을까 봐, 똑똑한 엔지니어가 스위치 2대를 사고 랜선을 빙빙 돌려 원형(이중화)으로 꽂아뒀다. "이러면 선 하나 끊어져도 반대쪽으로 돌아서 가면 되잖아!" 완벽해 보였지만 5분 뒤, 회사 전층의 스위치 불빛이 클럽 미러볼처럼 미친 듯이 깜빡거리더니 전체 네트워크가 폭발해버렸다. 왜? 컴퓨터 한 대가 "192.168.0.1 MAC 주소 누구냐!" 하고 뿜어낸 ARP 브로드캐스트 패킷 1개가, 둥글게 꽂힌 랜선을 타고 스위치 A와 스위치 B 사이를 메아리처럼 영원히 핑퐁 치며 복제(루핑)되었기 때문이다. 1개의 패킷이 1초 만에 10억 개로 증식하여 대역폭을 씹어먹는 스위치의 지옥, 브로드캐스트 스톰이다.
Ⅰ. L2 스위치 맹점 (태생적인 멍청함)
- Flooding (플러딩): 1075번에서 배웠듯, 스위치는 모르는 MAC 주소나
FF:FF:FF:FF:FF:FF같은 브로드캐스트(ARP) 패킷을 받으면, 묻지도 따지지도 않고 자기에 꽂힌 모든 포트로 복사해서 다 쏟아버립니다. - TTL(수명)의 부재: L3 라우터 패킷(IP)에는
TTL이라는 폭탄 타이머가 있어서 255번 점프하면 허공에서 자동 폭파됩니다. 하지만 L2 스위치 패킷(이더넷 프레임)에는 이 수명 타이머 껍데기가 아예 없습니다! 한 번 던져진 패킷은 누군가 랜선을 뽑지 않는 한 우주가 멸망할 때까지 허공을 날아다닙니다.
Ⅱ. 스위칭 루프(Switching Loop)와 스톰의 발생 원리 🌟
신뢰도를 높이려고 스위치 3대를 **삼각형(물리적 이중화 루프)**으로 선을 꽂는 순간 지옥이 열립니다.
- PC 1번이 "ARP 주소 좀요!" 하고 브로드캐스트 패킷 1개를 스위치 A에 던집니다.
- 스위치 A는 멍청하니까, 그 1개를 스위치 B와 스위치 C 두 방향으로 동시에 복사해서 쏩니다(플러딩).
- 스위치 B는 A한테 받은 걸 C한테 쏘고, C는 A한테 받은 걸 B한테 쏩니다.
- 이제 B와 C가 서로 주고받은 걸 또다시 복사해서 A, B, C 서로에게 미친 듯이 메아리치며 핑퐁 복제를 시작합니다.
- 결과 (브로드캐스트 스톰): 패킷에 TTL(폭파 타이머)이 없기 때문에 죽지 않습니다. 1개가 2개, 4개, 100만 개로 1초 만에 기하급수적으로 자가 증식하여(폭풍), 스위치 사이의 1Gbps 랜선을 쓰레기 패킷으로 100% 가득 채워버립니다. 정상적인 인터넷 통신은 0.1초도 불가능해지며, 쇳덩어리 스위치는 CPU가 100%를 찍고 다운(재부팅)됩니다.
Ⅲ. MAC 테이블 붕괴 (MAC Address Flapping)
스톰이 불 때 스위치의 뇌(MAC 테이블 장부)도 같이 타버립니다.
- 스위치 A의 장부: "아까 철수 PC(MAC
AA) 패킷이 1번 포트에서 왔지! 적어두자." - 근데 빙글빙글 루핑을 타고 한 바퀴 돌아온 똑같은 철수 패킷이 이번엔 2번 포트로 들어옵니다!
- 스위치 A의 뇌정지: "어? 철수가 1번 포트에서 2번 포트로 순간이동 했네? 장부 2번 포트로 수정!"
- 1초에 수만 번 장부를 지웠다 썼다(Flapping) 하다가 램(RAM)이 꽉 차서 스위치 기계가 벽돌로 변해버립니다.
Ⅳ. 유일한 구원자: STP (Spanning Tree Protocol) 🌟 핵심 기출 🌟
843번(복습) STP가 이 지옥을 막기 위해 탄생했습니다. (IEEE 802.1D)
- 물리적으로 삼각형 랜선을 꽂아두더라도, 스위치들끼리 0.1초 만에 대화를 나눠서 논리적으로 딱 1개의 길(포트)을 가위로 싹둑 잘라버립니다(Block).
- 삼각형이 아니라
ㄱ자 모양의 나뭇가지(Tree) 구조로 강제 변형시켜, 패킷이 빙글빙글 돌 수 있는 원형 트랙(루프) 자체를 애초에 원천 차단하는 가장 위대하고도 비효율적인 L2 보안 흑마법입니다. (선 하나를 일부러 끄고 놀려야 하므로 대역폭 낭비가 발생함)
📢 섹션 요약 비유: 스위칭 루프와 브로드캐스트 스톰은 거울로 둘러싸인 밀실에서 **'메아리가 영원히 증폭되는 지옥'**과 같습니다. 컴퓨터가 "야!" 하고 소리 한 번을 질렀습니다. 그런데 벽(스위치) 3개가 원형으로 둥글게 둘러싸고 있어서, 그 소리가 1번 벽에서 2번 벽으로 튕기고, 2번에서 3번으로 튕기며 메아리가 복제되기 시작합니다. 심지어 이 메아리는 산에서처럼 점점 작아져서 죽는 것(라우터 TTL 소멸)이 아니라, 벽에 튕길 때마다 스피커 앰프에 증폭되어 2배로 커집니다(스위치 플러딩). 단 1초 만에 "야!" 소리가 수백만 겹의 폭음으로 변해 밀실 전체를 찢을 듯이 채워버려, 그 안에 있는 모든 사람(스위치와 서버)의 고막을 터뜨리고 기절시키는 끔찍한 폐쇄회로 핑퐁 재앙입니다. 이를 막는 **STP(스패닝 트리)**는 밀실의 한쪽 벽(랜선 포트 하나)을 강제로 허물어버려, 소리가 빙글빙글 돌지 못하고 밖으로 빠져나가 소멸하게 만드는 환풍구 뚫기 수술입니다.