아마 제 글을 읽으시는 분들은 처음 시작하시는 분들이거나, 어떤 문제가 생겨서 검색을 하다가 들어오실 분들이실겁니다.
조금만 검색하면 L2가 어떻게 동작하고 어떤 원리로 실행되는지 알 수 있을 거에요.
제가 이 글을 통해 정리하고자 하는 이유는 당연스럽게 쓰고 있던 장비에 대해서, 아무것도 모르는 것과 같은 느낌을 강하게 받았기 때문이에요.
참 당황스러운 기분이였어요. 이제 실무를 4년하고도 반정도를 했지만, L2 스위치가 정확히 어떤 매커니즘으로 동작하고, 그 많은 패킷들이 어떻게 고속으로 처리되고있는지 한개도 대답을 못하겠는거에요. 그 단순한 L2 임에도 말이죠
어려운 얘기 들어가기전에, 제가 원래 알고 있던 기본적인 내용으로 시작을 해볼까합니다.
이번에 포스팅을 잘 따라오실 수 있으시다면, 심화편이 더욱 재밌을거라 자신합니다. 그럼 시작해보시죠 !
=====================================================================================
우선 핵심부터 말하고 넘어가겠습니다
L2스위치는 Mac address table에서 시작해서 Mac address table에서 끝나는 장비라고 봐도 무방합니다.
여러 사이트에서 말하는 Learning, Forwarding, Flooding, Filtering, Aging 이런것들을 이 Mac table과 연관하여 학습하면 쉬우실 거에요 !
L2스위치는 frame forwarding이 특화된 computer라고 봐도 무방합니다
Port를 통해 들어온 전기 신호를 해석해서 원하는 곳으로 전달하는 역할을 하는 것이죠.
아래 그림을 한번 보시죠
Switch 라고 하는 L2스위치에 PC 4대와 Router가 연결되어 있습니다.
최초의 L2 스위치에는 자기 자신 Port MAC만을 알고 있을거에요.
왜냐하면 L2 스위치는 Frame이 왔다갔다할때, Source MAC을 보고 자기 Mac address table에 기록하기 때문이에요.
이 과정이 Learning이고, Mac address를 작성하는데 가장 중요한 과정이라고 봐도 무방합니다.
그럼 전체적인 flow가 어떤지 한번 열거해보겠습니다. (틀린게 있다면 댓글로 알려주시면 감사하겠습니다.)
0) 각 PC들의 Gateway는 Router Gi0/0/1 port의 IP로 설정되어있다고 가정
Switch의 모든 port는 동일한 VLAN으로 되어있다 가정
1) PC1이 외부와 통신하고자하는데, IP는 아는데 GW의 MAC을 모르기에 ARP request (broadcast)
2) Switch Gi0/0/1로 들어온 Broadcast packet을 보고 'MAC A는 Gi0/0/1에 있음을 확인하고 기록(Learning 과정)
3) Broadcast packet을 받은 L2 switch는 '들어온 Port를 제외한 동일 VLAN 모든 port에 패킷을 전달
4) PC 2-4 와 Router 모두 해당 Broadcast packet을 수신하나, IP Address가 다른 PC들은 해당 Packet을 무시하며, Router만이 자기 IP에 대한 MAC을 묻는 Request를 받았으므로 ARP reply를 함
5) ARP reply를 보고 L2스위치는 MAC X는 Gi1/1/1 에 있음을 확인(Learning 과정)
6) ARP reply의 D mac은 2)과정을 통해 이미 MAC address table에 있기에, Gi0/0/1 port 로 전달(Forwarding 과정)
7) PC1은 GW의 MAC을 확보, 이후 통신에서 사용
위 과정이 PC 1 뿐만아니라 다른 PC 및 Router에서 동작하게 되면, 아래 Table이 완성이 됩니다.
VLAN | MAC | Port |
1 | X | Gi1/1/1 |
1 | A | Gi0/0/1 |
1 | B | Gi0/0/2 |
1 | C | Gi0/0/3 |
1 | D | Gi0/0/4 |
L2 switch의 기능 중 위에 언급이 안된 filtering의 경우에는, A라는 네트워크 즉, 여기선 1번 VLAN이 통신할 때, 다른 VLAN에 영향을 주지않게끔 영역을 나눠주는것이라고 보면 됩니다.
본 예에서는 전부 VLAN이 같다라고 언급을 해서 기회가 없었네요.
Filtering이 됨으로써, Broadcast domain이 줄어들고, 각각 VLAN 통신에 방해를 얼마 받지않고 통신이 가능해지는것인데, 말할수록 어려워지네요.
L2스위치는 기본적으로 MAC통신을 담당하며, IP를 확인하지 않습니다.
이때, 다른 Network다 라고 인지하는것은 VLAN의 번호로 확인합니다.
예를 들어, VLAN 1에서 Broadcast packet이 발생했다고 가정했을때, VLAN 1에 속한 Port에만 Flooding을 하지, 그 외 VLAN에는 전달하지 않습니다. 이를 Filtering에 의한 Network 분리라고 이해해주시면 될거같습니다.
언급이 안된게 좀 많네요
Flooding의 경우에는, Mac address table에 등록이 되어있지않은 D MAC이 들어왔을때, 들어온 포트를 제외한 동일 VLAN port 전체에 전달해주는것을 말하는데, Broadcast와 동작이 얼추 비슷하나, 살짝 다르다고 이해해주시면 될거같습니다.
또 Aging이라는 기능도 언급이 안되었는데, 이는 Mac address 용량과 밀접한 관련이 있습니다.
새로운 장비들이 계속 붙는 가령 카페같은곳에서 Mac address가 끊임없이 생성되는데, 만약 이 Mac address table이 한정된 용량을 가지고 있다고한다면, 언젠가 문제가 생기겠죠??
MAC address table 한계치 이상의 MAC이 등록되면, 추후에 등록이 안될거고 그러면 바로 서비스 이슈가 발생하게 되는거죠.
이를 방지하기 위해, 특정 시간 (default : 300s) 동안 해당 Source MAC에서 통신이 없다면 MAC address table에서 삭제시켜버리는거죠. 이러면 사용하지않는 단말에 대한 MAC이 MAC address table에서 삭제가 될거고, 신규 장비들이 들어와도 임계치만 넘지않는다면 서비스에는 지장이 없겠죠?
두서 없이 적어서 죄송합니다..
아래에 한번 정리를 하겠습니다
1) Learning
L2 Switch에서 들어온 Frame의 Source MAC을 보고 MAC address table을 작성하는 과정
기본적으로 위와 같이 학습하며, 고정적으로 MAC address table을 작성할 수 있으며, 이 경우 Aging에 의한 Table 항목이 삭제 되지않는다.
Static MAC 명령어(Cisco) :
mac address-table static xxxx.xxxx.xxxx vlan 1 interface gi0/0/1
2) Forwarding
인입된 Frame에 대해서 D MAC을 확인했을때, Mac address table에 있는 경우, 해당 Interface로 전달하는 과정
이 기능으로 인해 Collision domain이 Port별로 분리 ( Collision에 의한 전송 대기 최소화 )
3) Flooding
인입된 Frame에 대해서 D MAC이 MAC address table에 없을 경우, 인입된 포트를 제외한 동일 VLAN 모든 포트에 해당 Frame을 전달함. (Broadcast와 혼동하지 않도록 주의)
4) Filtering
다른 Network간 통신을 막는 역할. L2 스위치의 경우 VLAN으로 Network가 같냐 다르냐 판단할 수 있으며, VLAN이 다른 경우 통신되지 않도록 막는 역할을 함
Broadcast domain을 분리하며, 다른 Network의 간섭을 막게끔 동작함
5) Aging
MAC address table이 가지는 한정된 용량의 Full을 방지하기위하여, 특정 시간 통신이 없는 Source MAC은 MAC address table에서 삭제됨
Aging timer가 초기화될때는 해당 Source MAC으로 통신이 들어왔을때 Timer가 초기화 되고, MAC address table에서 유지됨
마치며,
동작만 보면 너무나 간단한 L2지만 장애의 Point가 되는경우가 적지 않습니다.
예를 들어, 이런 경우도 있었습니다.
LAN 구간에서 Network분리 작업을 수행하고 있었는데, 분리 작업 이후 L2스위치의 모든 Port에서 100Mbps의 트래픽이 감지되는겁니다.
전 Port에서 저렇게 트래픽이 동일한 패턴으로 발생하는것은 문제가 있었고, 확인 결과 MAC address table에 등록되지않은 D MAC으로 어떤 PC에서 계속 트래픽을 발생하고 있는것이였습니다.
PC에 고정 MAC을 등록해놨는지 모르겠지만, 해당 Port를 차단하고나니, 이상현상이 줄어든것을 확인했습니다.
물론 흔한 경우는 아니지만, L2의 기본 동작 원리를 알고 있어야 원인 파악 및 해결이 용이할거라고는 말씀 안드려도 아실겁니다.
그리고 STP나 SPAN, Link aggregation 등 부가기능들이 많지만 이후에 제가 하려는 내용은 Hardware에 관련된 내용이라, 그 부분은 심화편 이후에 시간내서 작성해보도록 하겠습니다.
궁금하신 내용은 언제든지 댓글을 통해 알려주시면, 시뮬레이션이던지 실물 장비를 통한 테스트 후에 자세히 알려드릴게요 !
'Network 모험기' 카테고리의 다른 글
[#3-1]BGP Path best selection에 대한 간단한 설명 (0) | 2024.03.01 |
---|---|
[#2] L2는 어떻게 동작할까 (심화편) (1) | 2023.12.30 |
[#1]나는 누구,, 여긴 어디,, (DHCP) 2탄 (2) | 2023.12.02 |
[#1]나는 누구,, 여긴 어디,, (DHCP) (0) | 2023.07.01 |
[#0] 네트워크를 시작하며.. (0) | 2023.04.24 |