Post

스위치

허브를 이용하는 호스트 간 통신에는 반이중 모드와 브로드캐스팅으로 인한 문제가 있다. 이 두 문제는 허브를 사용하면서 생기는 문제의 근본적인 것이여서 없앤다면 문제가 사라질 것이다.

그를 위해 만들어진 네트워크 장비가 스위치이다. 스위치는 전이중 모드를 지원하고 수신지 호스트가 연결된 포트로만 신호를 내보낸다.

스위치가 전달받은 신호를 원하는 포트로만 내보낼 수 있는 것은 스위치가 MAC 주소를 학습할 수 있기 때문이다.

스위치는 데이터 링크 계층의 장비로 2계층에서 사용한다고 해서 L2 스위치라고도 부른다.

앞서 언급한 기능들때문에 포트별로 콜리전 도메인이 나뉘고, 전이중 모드로 통신하기에 CSMA/CD 프로토콜을 사용할 필요가 없다. 그리고 CSMA/CD 프로토콜의 대기 시간이 없어지기 때문에 성능 상에 이점이 있다.

1. 스위치의 특징

스위치의 가장 중요한 특징은 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소의 관계를 기억하는 것이다. 이 기능을 MAC 주소 학습이라고 부른다.

이 학습은 포트와 MAC 주소 간의 연관 관계를 메모리에 표 형태로 저장하는 것으로 이루어진다. 이 표를 MAC 주소 테이블이라고 부른다.

2. MAC 주소 학습

스위치는 아래의 세 가지 기능을 통해 주소를 학습하고 원하는 포트로만 프레임을 보낸다.

  1. 플러딩
  2. 포워딩과 필터링
  3. 에이징

위의 세 가지 기능이 쓰이면서 스위치가 동작하는 것을 설명해보겠다.

처음은 스위치로 호스트가 프레임을 송신하는 것에서부터 시작된다. 학습된 바 없는 스위치로 호스트 A가 프레임을 송신하면, 프레임 내의 ‘송신지 MAC 주소’ 정보를 읽어서 호스트 A의 MAC 주소와 연결된 포트를 MAC 주소 테이블에 저장한다. 이 시점에는 아직 수신지 호스트가 어느 포트에 연결되어있는지는 알지 못한다.

이런 상황에서 스위치는 허브와 같이 송신지 포트를 제외한 모든 포트로 프레임을 전송한다. 이 동작이 플러딩(flooding)이다.

그렇게 수신지 호스트 C는 프레임을 받고 응답 프레임을 전송한다. 이 응답 프레임을 스위치가 송신하면 호스트 C의 MAC 주소와 C에 연결된 포트를 알아내서 그 정보를 MAC 주소 테이블에 기록한다.

이 시점 이후에 스위치는 호스트 A, C의 MAC 주소와 각 호스트에 연결된 포트를 알고 있어 두 호스트가 프레임을 주고받을 때 브로드캐스팅할 필요가 없게 된다.

필터링은 전달되는 프레임을 어디로 내보내고 내보내지 않을지 결정하는 스위치 기능이다.

그리고 프레임이 전송될 포트에 실제로 프레임을 내보내는 것을 포워딩이라 한다.

만약 MAC 주소 테이블에 등록된 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했다면 그건 삭제된다. 이를 에이징이라 한다.

3. VLAN

VLAN은 Virtual LAN의 줄임말로, 한 대의 스위치로 가상의 LAN을 만드는 방법이다.

이 기술은 스위치에 연결된 호스트들 중 굳이 같은 LAN에 속할 필요가 없을 때 사용하기 위한 용도를 가진다. 서로 메세지를 주고받을 일이 적거나 브로드캐스트 메세지를 받을 필요가 없으면 LAN을 구분 짓는게 효율적이기 때문에 이 기능도 스위치의 중요한 기능이다.

스위치도 브로드캐스팅해야 하는 순간들이 있는데, 하나의 LAN에 너무 많은 호스트가 연결되어 있으면 네트워크 상에 불필요한 트래픽이 늘어나고 성능에 저하로 이어지기 때문이다.

참고로 VLAN 기술로 하나의 스위치를 논리적으로 분리해 VLAN1, VLAN2를 만들었는데 이 두 VLAN끼리 통신하고자 한다면 데이터 링크 계층의 장비가 아닌 상위 계층의 장비가 필요하다.

3-1. 포트 기반 VLAN

가장 단순하고 대중적인 VLAN 방식으로 ‘스위치의 포트가 VLAN을 결정하는 방식’이다.

img.png

이 방식은 사전에 특정 포트에 VLAN을 할당하고, 해당 포트에 호스트를 연결해서 VLAN에 포함시킬 수 있다. 그런데, 스위치 하나를 가지고 포트 기반 VLAN을 나누면 포트 수가 부족해질 수 있다는 문제가 있다. 예를 들어, VLAN1 호스트 4개, VLAN2 호스트 3개, VLAN3 호스트 3개를 포트가 8개인 스위치 하나에 연결하는 건 불가능하다. 만약 VLAN 스위치 여러 대를 VLAN 포트끼리 연결해서 VLAN을 확장할 수 있지만, 그렇게 되면 또다시 포트를 낭비하게 된다.

img_1.png

이럴 때 사용할 수 있는 방법이 VLAN 트렁킹이다. VLAN 트렁킹(VLAN Trunking)은 두 대 이상의 VLAN 스위치를 효율적으로 연결해서 확장하는 방법이다. 스위치 간의 통신을 위한 특별한 트렁크 포트에 VLAN 스위치를 서로 연결하는 방식이다.

img_2.png

3-2. MAC 기반 VLAN

포트 기반 VLAN 이외에도 사전에 설정된 MAC 주소에 따라 VLAN이 결정되는 MAC 기반 VLAN도 있다. 이는 포트가 VLAN을 결정하는 것이 아니라 송수신하는 프레임 속 MAC 주소가 호스트에 속할 VLAN을 결정하는 방식이다.

참고자료

This post is licensed under CC BY 4.0 by the author.