스위치
허브는 주소 개념이 없는 물리 계층 장비이기 때문에 전달받은 신호를 다른 모든 포트로 내보내기만 한다. 또 반이중 모드를 사용하기 때문에 충돌의 위험성이 있으며, CSMA/CD 프로토콜을 사용하여 완화하는 방법이 있지만 좀 더 근본적인 있으면 좋을것같다. 스위치를 사용하면 이런 문제로부터 벗어날 수 있다.
스위치는 데이터 링크 계층 장비이기 때문에 MAC주소를 사용하여 수신을 받아야 하는 장치에만 신호를 보낼 수 있다. 또 전이중 모드를 사용하기 때문에 신호의 송수신을 동시에 수행할 수 있다.
스위치의 특징
스위치는 포트에 연결된 호스트의 MAC 주소와의 관계를 기억할 수 있다. 이 것을 MAC 주소 학습(MAC address learning)이라 부른다.
스위치는 MAC 주소 학습을 위해 포트와 연결된 호스트의 MAC 주소간의 연관 관계를 메모리에 표 형태로 저장한다. 이 정보를 MAC 주소 테이블(MAC address table)이라고 부른다.
MAC 주소 학습
MAC 주소 테이블이 채워지고 유지되기 위해선 다음 세 가지 기능에 대한 이해가 필요하다.
- 플러딩
- 포워딩과 필터링
- 에이징
스위치는 처음엔 포트에 연결된 호스트의 MAC 주소를 알지 못한다. 때문에 프레임 내 ‘송신지 MAC 주소’ 정보를 바탕으로 호스트의 MAC 주소와 연결된 포트의 연관 관계를 MAC 주소 테이블에 기록하여 학습한다.
어떤 호스트가 신호를 보냈을때 스위치는 그 호스트의 포트와 신호에 명시된 ‘송신지 MAC 주소’를 연결하여 MAC 주소 테이블에 기록한다.
하지만 어떤 포트로 이 신호를 보내야 하는지 알 수 없다면, 다른 모든 포트로 신호를 보낸다. 이러한 동작을 플러딩(flooding)이라고 한다.
신호를 전달받은 호스트는 신호에서 ‘수신지 MAC 주소’와 자신의 MAC 주소를 비교한다. 만약 MAC 주소가 다르다면 폐기하고, MAC 주소가 같다면 스위치에게 응답 프레임을 전송한다. 스위치는 응답 프레임을 통해 포트와 MAC 주소의 연관 관계를 알게되고, 이를 MAC 주소 테이블에 기록한다.
전달받은 프레임을 어디로 내보낼지 결정하는 스위치의 기능을 필터링(filtering)이라고 한다. 그리고 프레임이 전송될 포트에 실제로 프레임을 내보내는 것을 포워딩(forwarding)이라고 한다.
만약 MAC 주소 테이블에 등록된 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했다면 해당 항목은 삭제된다. 이를 에이징(aging)이라고 한다.
위에 내용을 정리하자면 다음과 같다.
- 플러딩 : MAC 주소와 포트의 연관 관계를 모를때 학습하기위해 다른 모든 포트에 신호를 보내는 것
- 필터링 : 전달받은 프레임을 어디에 내보낼지 결정하는 기능
- 포워딩 : 실제로 프레임을 내보내는 것
- 에이징 : 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했을때 MAC 주소 테이블에서 정보가 삭제되는 것
💡 데이터 링크 계층의 스위치와 유사한 장비로 브리지(bridge)라는 장비도 있다. 이는 다리를 의미하며 콜리전 도메인을 나누거나 네트워크를 확장하는 용도로 사용한다. 다만 스위치 또한 네트워크 구획 및 확장을 지원할 뿐더러 성능이 우수한 이유로 스위치에 비해 사용빈도가 줄어들고 있다.
VLAN
VLAN(Virtual LAN)은 스위치가 제공하는 또 다른 중요한 기능으로 한 대의 스위치로 가상의 LAN을 만드는 것을 말한다.
허브는 송신지 포트를 제외한 모든 포트로 신호를 보내기 때문에 불필요한 트래픽이 발생한다. 스위치 또한 연결된 호스트 중에서 서로 메시지를 주고받을 일이 적거나 없는 호스트 끼리도 브로드캐스트 메시지를 받기 때문에 불필요한 트래픽이 발생한다. 이를 분리하기 위해서 새로운 스위치 장비를 구비하는 방법도 있지만, 이를 가상의 LAN을 구축하는 기술로 해결할 수 있다. 이 기술이 바로 VLAN이다.
VLAN을 사용하면 물리적 위치와 관계없이 논리적인 LAN을 구성하여 호스트끼리의 묶음을 나눌 수 있다.
포트기반 VLAN
VLAN을 구성하는 방법중에 가장 단순하고 대중적인 방식으로는 포트 기반 VLAN이 있다. 포트 기반 VLAN(port based VLAN)은 한 마디로 ‘스위치의 포트가 VLAN을 결정하는 방식’이다. 사전에 특정 포트에 VLAN을 할당하고, 해당 포트에 호스트를 연결함으로써 VLAN에 포함할 수 있다.
그런데, 한 대의 스위치만으로 포트 기반 VLAN을 나누면 포트 수가 부족해지는 문제가 있다. 물론 여러대의 스위치를 구비하고 같은 VLAN 포트끼리 연결하는 방법도 있지만 이 또한 포트의 낭비이다.
이때 사용할 수 있는 방법이 VLAN 트렁킹(VLAN Trunking)이다. VLAN 트렁킹은 두 대 이상의 VLAN 스위치를 효율적으로 연결하여 확장하는 방법이다. 스위치 간의 통신을 위한 특별한 포트인 트렁크 포트(trunk port)에 VLAN 스위치를 서로 연결하는 방식이다.
이미지의 스위치 A에서 스위치 B로 프레임이 넘어왔다고 가정했을때 스위치 B는 트렁크 포트로 전달받은 프레임이 어떤 VLAN에 속하는지 어떻게 알 수 있을까? 이는 일반적인 이더넷 프레임만으로는 알 수 없고, 어떤 VLAN에 속하는지 식별하기 위한 정보까지 확장된 이더넷 프레임을 사용해야한다. 이를 802.1Q 프레임이라고 한다.
802.1Q프레임의 헤더엔 32비트 크기의 VLAN 태그라는 정보가 추가된다. 이를통해 어떤 VLAN에 속해있는지 알 수 있다.
MAC 기반 VLAN
포트 기반 VLAN외에도 사전에 설정된 MAC주소에 따라 VLAN이 결정되는 MAC 기반 VLAN(MAC based VLAN)도 있다. 이는 포트가 VLAN을 결정하는 것이 아니라 송수신하는 프레임 속 MAC 주소가 호스트가 속할 VLAN을 결정하는 방식이다.
'도서 정리 > 혼자 공부하는 네트워크' 카테고리의 다른 글
[혼자 공부하는 네트워크] Chapter 3 - 2 IP 주소 (0) | 2024.07.21 |
---|---|
[혼자 공부하는 네트워크] Chapter 3 - 1 LAN을 넘어서는 네트워크 계층 (0) | 2024.07.21 |
[혼자 공부하는 네트워크] Chapter 2 - 3 허브 (0) | 2024.07.14 |
[혼자 공부하는 네트워크] Chapter 2 - 2 NIC와 케이블 (0) | 2024.07.12 |
[혼자 공부하는 네트워크] Chapter 2 - 1 이더넷 (0) | 2024.07.11 |