가장 기본적인 스위치는 2계층에서 동작하는 L2이다.
네트워크 망에서 가장 핵심장비이며 2계층 주소인 MAC 주소를 기반으로 동작한다.
스위치는 전송하려는 패킷의 헤더 안에 잇는 MAC 주소를 확인하고 'MAC 주소 테이블' 에서 해당 주소가 어느 포트에 있는지 확인해 해당 패킷을 그 포트로만 전송한다.
스위치의 동작 방식은 아래와 같이 크게 3가지로 정리할 수 있다.
플러딩은 스위치에 연결된 모든 포트로 패킷을 전달하는 방식을 말한다.
스위치는 처음 부팅하면 MAC 주소 테이블에 네트워크 관련 정보가 아무것도 없어 허브처럼 동작한다. 허브는 패킷이 들어온 포트를 제외하고 모든 포트로 패킷을 전달하는데 이러한 동작을 플러딩이라고 한다.
❓그렇다면 MAC 주소 테이블에는 언제 정보가 쌓이나?
💡 패킷이 스위치에 들어오면 해당 패킷의 MAC 주소를 보고 이를 학습해 MAC 주소 테이블에 저장한다.
❓ MAC 주소를 학습한다고? 어떻게?
💡 보다 정확한 표현은 스위치는 MAC 주소 테이블을 만들고 유지를 하는데 이 과정을 Address Learning이라고 한다.
스위치가 목적지 포트로 적확히 포워딩하려면 MAC 주소 테이블을 만들고 올바르게 유지해야 하는데 이 과정을 어드레스 러닝이라고 한다.
러닝 과정
예시 : 출발지 MAC (AA-AA-AA), 스위치 Port : 4321
위 러닝 과정을 보면 스위치의 Address Learning은 출발지 MAC 주소를 이용한다.
이로 인해 목적지 MAC 주소 필드만 사용되는 브로드캐스트나 멀티캐스트에 대한 MAC주소는 학습 할 수 없다.
❓ 브로드캐스트, 멀티캐스트 할 때도 출발지 필드에 데이터를 넣지 않나? 그걸로 학습 못하나? 왜 안된다고 하는거지?
💡 브로드캐스트, 멀티캐스트 동작시 패킷 정보를 알아보자.
포워딩과 필터링은 스위치의 필수 기능이다.
패킷이 스위치에 들어온 경우 목적지 MAC를 확인할 후 MAC 주소 테이블을 통해 해당 포트로 전송하는 것을 포워딩이라고 하며, 다른 포트로는 패킷을 전송하지 않는 것을 필터링이라고 한다.
스위치에서는 이 기능을 여러 포트에서 동시에 수행 할 수 있다.
포워딩 필터링은 유니캐스트에 대해서만 작업을 수행한다.
Unknown 유니캐스트 : MAC 주소 테이블에 정보가 없으므로 수행 불가능
브로드캐스트, 멀티캐스트 : 출발지 MAC 주소를 사용하지 않으므로 수행 불가능