본문으로 바로가기

2계층 스위치

category 🌐 Network/🌐 Network 2021. 3. 22. 17:07

2계층 간단한 복습

2계층에는 주요 장비로 NIC와 스위치가 있다고 알아본 바 있다.

 

NIC는 물리적 주소인 MAC 주소를 기반으로, 해당 패킷이 자신에게 온 정보인지 체킹하는 역할을 한다고 언급한 바 있다.

 

스위치는 MAC 주소를 이해하고 전기 신호를 모든 서버에 보내는 것이 아니라 목적지 주소를 인식하고 정확한 목적지로만 전기 신호를 보내어 때문에 해당 정보를 받지 않는 다른 포트들은 다른 일을 할 수 있게 되어 1계층 장비인 허브 대신 사용한다고도 공부했었다. - darrengwon.tistory.com/1306?category=907881

 

여기서는 2L 스위치에 대해서 조금 더 자세히 공부해보자.

 

스위치의 역할

 

스위치는 앞서 말한 MAC 주소에 해당하는 곳으로 패킷을 전달하는 기능 외에도

한 대의 장비에서 논리적으로 네트워크를 분리할 수 있는 VLAN,

네트워크의 루프를 방지하는 STP(스패닝 트리 프로토콜) 이 외에도 여러 기능을 동시에 수행한다고 합니다.

그래도 핵심은 MAC 주소 파악 및 해당 단말에게 패킷을 전달하는 일입니다.

 

 

MAC 주소 테이블과 스위치의 동작

 

이 역할을 하기 위해 MAC 주소와 포트가 매핑된 MAC 주소 테이블에 기반하여 역할을 수행한다.

특정 MAC 주소를 도착지로 가진 패킷이 들어오면 해당 포트로 패킷을 전송한다.

그런데 만약 테이블에 없는 MAC 주소를 가진 패킷이 스위치로 들어오면? 전체 포트로 패킷을 전송한다. 

 

이러한 스위치의 동작은 3가지로 정리될 수 있다.

 

  • 플러딩(Flooding)
  • 어드레스 러닝(Address Learning)
  • 포워드/필터링(Forwarding/Filtering)

 

플러딩, Flooding

 

스위치가 부팅되면 네트워크 관련 정보가 아무것도 없다. 

MAC 주소와 포트가 매핑되어 있는 정보가 아무 것도 없으므로(MAC 주소 테이블이 아무 것도 없으므로) 그냥 모든 포트로 패킷을 전달한다. 이럴 경우 1계층의 허브처럼 동작하는 것과 같다.

이러한 동작을 '플러딩'이라고 한다.

 

당연히 스위치가 제 역할을 하지 못하는 동작이다. 

 

실제로는 스위치가 플러딩할 경우는 드문 편인데, ARP 브로드캐스트를 통해 도착지 MAC 주소를 습득할 수 있고, 유니캐스트 통신이 시작되면 이미 만들어진 MAC 주소 테이블을 사용하기 때문에 곧바로 포워딩을 하기 때문입니다.

 

어드레스 러닝, Address leaning

 

MAC에 매핑된 포트 번호를 학습하는 동작이다. 

 

포워드/필터링, Forward/Filtering

 

패킷이 스위치에 들어왔는데, 도착지 MAC 주소가 MAC 주소 테이블 내에서 포트와 매핑되어 있는 경우 해당 포트로 패킷을 포워딩합니다. 해당 포트로만 패킷을 포워딩하므로 다른 포트에는 패킷을 안 보내는 말이죠? 다른 포트의 관점에선 이 동작이 Filtering입니다. 

 

스위치는 일반적으로 유니캐스트(1:1) 에서만 포워딩을 합니다. 브로드캐스트, 언노운 유니캐스트, 멀티 캐스트에서는 플러딩합니다.

 

 

VLAN

 

VLAN이란 Virtual LAN의 줄임말입니다. LAN을 논리적으로 분할, 구성하는 기술입니다. 가상의 망 분리라고 보시면 되겠습니다.

 

하나의 장비를 서로 다른 네트워크를 사용하고 있는 것마냥 논리적으로 분할한 것이므로 브로드캐스트를 날려도 VLAN 간에는 소통할 수 없습니다. 다른 네트워크니까 원격 통신을 해야 하는거죠. 원격 통신의 경우 3L을 거쳐야 합니다. 게이트웨이를 거쳐야겠죠.

 

VLAN에는 포트 기반 VLAN과 MAC 주소 기반 LAN이 존재합니다.

후자가 비교적 최근에 개발된 방식입니다.

전자인 포트 기반은 스위치의 특정 포트에 VLAN을 할당하는 것이고,

MAC 주소 기반은 스위치에 연결되는 단말의 MAC 주소를 기반으로 VLAN을 할당하는 겁니다.

 

 

STP

 

우선, STP가 왜 필요한지에 대해서 짚어봐야할 것 같습니다.

 

SPoF(single point of failure)란, 하나의 장비가 망가지면 네트워크 전부가 사용불가되는 경우를 말합니다. 예를 들어 스위치가 하나 뿐인데 그 스위치 하나 망가지면 네트워크 전부가 먹통이 되는 상황을 들 수 있습니다.

 

이러한 SPoF를 방지하기 위해서 이중화, 다중화를 꾀하게 되어 같은 역할을 하는 장비 여러대를 두게 되는데 이로써 패킷이 적절하게 소멸, 전달되지 않고 네트워크 내부를 영원히 떠도는 일이 생깁니다.

 

이러한 루프에서 문제가 발생하는 원인은 여러가지가 존재하지만 대표적인 것으로 '브로드캐스트 스톰'이란 것이 있습니다. 루프형 네트워크에서 브로드캐스트를 날리면 스위치 간에 브로드캐스트 통신을 무한히 주고 받는 폭풍 현상을 말합니다.

 

이럴 경우 네트워크에 접속한 단말의 컴퓨팅 리소스에 악영향을 미치고, 네트워크에 접속하게 어려워집니다.

 

어쨌거나, 이중, 다중화를 진행하면서 발생할 수 있는 루프 문제를 해결하기 위해 STP 프로토콜이 필요합니다.

STP 프로토콜은 BPDU 프로토콜을 통해 스위치 간의 정보를 전달하며 네트워크크의 전체 모양을 알아냅니다.

이로서 확인된 루프 지점을 통과하지 못하도록 막습니다.

 

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체