Switched Local Area Networks: 두 판 사이의 차이
| 77번째 줄: | 77번째 줄: | ||
==Virtual Local Area Networks(VLANs)== | ==Virtual Local Area Networks(VLANs)== | ||
현대의 이론적인 기관(institutional) 네트워크는 종종 계층 구조로 구성되어 있으며, 각 작업 그룹은 자체적으로 swithched LAN을 가지고 다른 그룹의 switched LAN과 스위치 계층 구조를 통해 연결되어 있다. 이는 이상적인 상황에서는 현실 세계는 이상적이지 않은 경우가 많다. Figure 1과 같은 구성에서는 다음 세 가지 단점이 식별된다: | |||
1. 트래픽 격리 부족 (Lack of traffic isolation)<br> | |||
해당 스위치 계층 구조 덕분에 그룹 내의 트래픽은 해당 스위치 내부로 제한되지만, 브로드캐스트 트래픽<ref>예를 들어 ARP, DHCP 메시지, MAC 주소가 아직 학습이 안된 경우 등이 있다.</ref>은 기관 전체의 네트워크를 가로질러 전송되어야 한다. 이때 브로드캐스트 트래픽의 범위를 제한하면 LAN 성능이 향상될 수 있다. 또한 보안/프라이버시 측면에서 브로드캐스트 범위를 제한하는 것이 필요할 수 있다.<ref>이는 figure 1의 스위치를 라우터로 교체하면 성취될 수 있다. 하지만, 스위치 만으로도 구현 가능하다.</ref><br> | |||
2. 스위치 자원의 비효율적인 사용 (Inefficient use of switches)<br> | |||
그룹이 3개가 아니라 10개라면, 10개의 1단계 스위치가 필요하다. 하지만 각 그룹이 작아서 각각 10명 미만의 구성원이라면, 하나의 스위치 하나로도 모두 처리할 수 있다. 하지만 이 경우 트래픽 격리가 제공되지 않는다.<br> | |||
3. 사용자 관리의 어려움 (Managing users)<br> | |||
직원이 다른 그룹으로 이동하면, 해당 직원을 물리적으로 다른 스위치에 다시 연결해야 한다. 또한 두 그룹에 동시에 소속된 지원은 더욱 복잡해진다. | |||
이에 대한 해결책이 바로 VLAN을 지원하는 스위치이다. VLAN이라는 이름에서 알 수 있듯이, VLAN을 지원하는 스위치는 하나의 물리적 LAN 인프라 위에 여러 개의 가상 LAN을 정의할 수 있도록 한다. 이를 통해 VLAN 내부의 호스트들은 마치 자신들만 스위치에 연결되어 있는 것처럼 서로 통신한다. | |||
===Port-based VLAN=== | |||
[[파일:Port-based VLAN.png|섬네일|Figure 6. Port-based VLAN]] | |||
포트 기반(Port-based) VLAN은 네트워크 관리자가 스위치의 포트들을 그룹으로 나누어 VLAN을 구성하는 방식이다. 이때 각 VLAN 그룹은 하나의 브로드캐스트 도메인을 형성하고, 하나의 포트에서 발생한 브로드캐스트 트래픽은 같은 VLAN의 다른 포트로만 전파된다. Figure 6는 16개의 포트를 가진 스위치와, 2~8번 포트는 EE VLAN으로, 9~15번 포트는 CS VLAN에 할당되어 있는 모습을 보여준다. 이는 위에서 언급한 모든 문제를 해결한다. 먼저 EE와 CS의 트래픽이 서로 격리될 뿐 아니라, figure 1에 나타난 두 스위치를 하나로 통합할 수 있다. 또한 포트 8번의 사용자가 CS 부서로 이동한 경우에는 VLAN 소프트웨어 설정만 바꾸면 된다. 이때 네트워크 관리자는 VLAN 구성 소프트웨어를 통해 포트-VLAN 매핑을 지정하고, 스위치 하드웨어는 같은 VLAN에 속한 포트 사이에서만 프레임을 전달한다. | |||
이때 VLAN 간의 통신을 구현하기 위해서는 놀고 있는 포트를 활용하면 된다. 해당 예시에서는 EE VLAN과 CS VLAN이 완전히 격리되어 있는데, 스위치의 포트 하나<ref>예를 들면 figure 6의 1번 포트가 있다.</ref>를 EE VLAN과 CS VLAN 모두에 속하게 설정하고, 이 포트를 외부 라우터에 연결하면 된다. 이렇게 하면: | |||
# EE → CS로 가는 IP 데이터그램은 | |||
# EE VLAN을 따라 라우터에 도달하고 | |||
# 라우터가 이를 받아서 다시 CS VLAN으로 전달 | |||
할 수 있다. 결과적으로, 물리적으로는 하나의 스위치지만, 논리적으로는 라우터로 연결된 두 개의 분리된 VLAN처럼 동작한다. 요즘 스위치 장비는 VLAN 스위치와 라우터 기능을 모두 내장하고 있어서 별도의 외부 라우터가 필요하지 않도록 설계되어 있다. | |||
===VLAN Trunking=== | |||
[[파일:Connecting two VLAN switches with two VLANs- two cables.png|섬네일|Figure 7. Connecting two VLAN switches with two VLANs: two cables]] | |||
위 예시에서 일부 EE/CS 교수들이 다른 건물에 있다는 조건을 추가하자. 당연히 이들 교수들도 자신의 부서의 VLAN에 소속되어야 한다. 가장 먼저 떠올릴 수 있는 방법은 figure 7과 같이 두 스위치 각각에서 EE VLAN용 포트, CS VLAN용 포트를 별도로 정해서 서로 직접 연결하는 것이다. 하지만 이는 확장성이 떨어지므로 사용되지 않는다. 이는 VLAN이 N개면 각 스위치마다 N개의 포트가 연결용도로만 소모되기 때문이다. | |||
[[파일:Connecting two VLAN switches with two VLANs- trunked.png|섬네일|Figure 8. Connecting two VLAN switches with two VLANs: trunked]] | |||
좀더 확장성있는 방식은 VLAN Trunking이라는 방식이다. VLAN Trunking이란, 두 스위치를 연결하는 특수한 포트를 지정해서 그 포트를 통해 모든 VLAN 트래픽을 전달하는 방식이다. 이는 figure 8에 잘 나타나 있다. 왼쪽 스위치의 포트 16, 오른쪽 스위치의 포트 1이 trunk 포트로 사용되고 있으며, 이는 모든 VLAN에 속하는 포트이다. 따라서 turnk 링크를 통해 VLAN에 속한 프레임이 반대쪽 스위치로 forwarding된다. | |||
이때 turnk 포트에서 온 프레임이 어떤 VLAN에 속해있는지 알기 위해서 IEEE는 이를 위해서 802.1Q라는 확장된 이더넷 프레임 포맷을 정의하였다. 802.1Q 프레임은 표준 이더넷 프레임에 4바이트 VLAN 태그가 추가되어 해당 프레임이 속한 VLAN 정보를 저장한다. trunk 송신 스위치는 태그를 붙이고, trunk 수신 스위치는 해당 태그를 해석하고 제거하는 방식으로 프레임이 어떤 VLAN에 속하였는지를 식별한다. | |||
==각주== | ==각주== | ||
[[분류:컴퓨터 네트워크]] | [[분류:컴퓨터 네트워크]] | ||
2025년 5월 22일 (목) 11:06 판
상위 문서: Data Link Layer
개요


Figure 1은 네 개의 스위치를 사용하여 세 개의 학과 부서와, 두 개의 서버와, 하나의 라우터를 연결한 스위치 기반 LAN(switched local area network)를 보여준다. 이 스위치들은 link layer에서 동작하며, network layer의 데이터 그램이 아닌, link layer의 프레임을 스위칭한다. 따라서 이들은 IP 주소, 즉 network layer에서의 주소를 인식하지 않으며, Intra-AS Routing의 RIP, OSPF와 같은 라우팅 알고리즘을 통해 경로를 결정하지 않는다. 따라서 IP 주소를 사용하는 대신, link-layer 주소를 사용하여 스위치 네트워크를 통해서 프레임을 전송한다.
MAC Addresses
호스트나 라우터의 NIC(네트워크 인터페이스)는 link-layer 주소인 MAC 주소를 가지고 있다. 따라서 하나의 호스트나 라우터가 여러 개의 네트워크 인터페이스를 가지고 있다면, MAC 주소도 여러 개가 존재하며, 마찬가지로 IP 주소도 여러 개가 존재해야 한다. 그러나 주의할 점은, link layer의 스위치의 인터페이스는 MAC 주소를 가지지 않는다는 것이다. 이는 스위치의 역할이 호스트와 라우터 사이에서 데이터그램을 중계하는 것이기 때문이다. 이는 figure 2에 잘 나타나 있다. MAC 주소는 LAN 주소, physical 주소, link-layer 주소라고도 불린다.
대부분의 LAN(예: Ethernet, WiFi)은 MAC 주소가 48비트이므로, MAC 주소는 총 248개가 존재한다. 이때 figure 2와 같이 MAC 주소는 16진수 표기법으로 표현되며, 각 바이트를 두 자리의 16진수로 나타낸다. MAC 주소는 로컬에서(locally) 한 인터페이스에서 다른 인터페이스로 프레임을 전달하는 데 사용된다. 또한 MAC 주소는 NIC의 ROM에 고정되어(burned) 있으며, 소프트웨어적으로 변경 가능하다. 이때 MAC 주소는 전세계적으로 고유하며, 이를 위해 IEEE에 의해서 관리된다. NIC의 제조사는 MAC 주소 공간의 일부를 구매하고, 이를 통해 각 NIC에 대한 MAC 주소 할당을 보장한다.
MAC 주소는 평면적인(flat) 구조를 가진다. 즉, NIC가 어떤 네트워크에 속하든지 그 주소는 변하지 않는다. 예를 들어, 노트북의 Ethernet NIC는 항상 같은 MAC 주소를 가지며, 스마트폰의 WiFi 인터페이스도 마찬가지이다. 이는 계층적인 구조[1]를 가지고 있어, 호스트가 속한 네트워크에 따라 변경되는 IP 주소와는 상당히 대비된다. 비유하자면 MAC 주소는 주민등록번호이고, IP 주소는 우편 번호이다. 즉, MAC 주소는 이사를 가더라도 바뀌지 않지만, IP 주소는 이사를 갈 경우 변경해야 한다.
NIC가 어떤 목적지 NIC로 프레임을 전송하고자 할 때, 송신측의 어댑터는 프레임의 목적지 주소 필드에 상대방의 MAC 주소를 삽입한다. 그리고 LAN에 프레임을 전송한다. 이때 스위치는 프레임을 브로드캐스트하기도 하며, 어떤 어댑터는 자신에게 주소 지정되지 않은 프레임을 받을 수도 있다. 따라서 수신측의 프레임은 프레임 안의 목적지 MAC 주소와 자신의 MAC 주소를 비교하여, 일치하면 프레임 내의 데이터그램을 추출하여 상위 계층에 전달하고, 일치하지 않으면 해당 프레임을 폐기한다. 이를 통해서 수신 측만 프레임에 반응할 수 있다.
브로드 캐스팅, 즉 LAN 내의 모든 어댑터에 프레임을 전송하고자 할 때에는 프레임의 목적지 주소 필드에 FF-FF-FF-FF-FF-FF를 넣는다.
Address Resolution Protocol(ARP)

ARP(Address Resolution Protocol)은 IP 주소와 MAC 주소 사이의 변환 작업을 담당하는 프로토콜이다. ARP 프로토콜의 필요성을 이해하기 위해서, figure 3와 같이 표시된 네트워크를 고혀하자. 해당 예시에서 각 호스트와 라우터는 하나의 IP 주소와 하나의 MAC 주소를 가진다. 이때 스위치가 모든 프레임을 브로드캐스트하여, 한 인터페이스에서 프레임을 수신하면 그 프레임을 연결된 모든 프레임에 전송한다고 하자.[2] 이 상황에서, IP 주소 222.222.222.220을 가진 호스트가 222.222.222.222 호스트로 IP 데이터그램을 보내고자 한다고 한다면 데이터그램을 보내기 위해, 출발지는 자신의 어댑터에게 IP 데이터그램뿐만 아니라 목적지 222.222.222.222의 MAC 주소도 제공해야 한다. 해당 정보를 받은 다음 송신 어댑터는 목적지의 MAC 주소를 포함하는 프레임을 구성하고, LAN에 이를 전송할 것이다. 이때 이를 구현하기 위해서 요구되는 것은 송신 호스트가 목적지 호스트 222.222.222.222의 MAC 주소도 알아야 한다는 것이다. 이때 사용되는 것이 바로 ARP 프로토콜이다. 이 상황에서 송신 호스트 222.222.222.220은 ARP 모듈에 IP 주소 222.222.222.222를 제공하고, ARP 모듈은 이에 해당하는 MAC 주소 49-BD-D2-C7-56-2A를 반환한다.
즉, ARP는 IP 주소를 MAC 주소로 해석(resolve) 한다. 이는 여러 면에서 DNS와 유사하다. DNS는 호스트 이름을 IP 주소로 해석하고, ARP는 IP 주소를 MAC 주소로 해석한다. 하지만 둘 사이에는 중요한 차이점이 존재한다. 이는 DNS는 인터넷 어디에 있는 호스트든 해석할 수 있는 반면, ARP는 같은 서브넷에 있는 호스트와 라우터 인터페이스에 대해서만 해석할 수 있다는 것이다.
ARP를 구현하기 위해서 각 호스트와 라우터는 메모리 안에 ARP 테이블을 가지고 있으며, 이 안에 IP 주소와 MAC 주소 간의 매핑이 저장되어 있다. 이 테이블에는 각 매핑이 언제 삭제되어야 하는지를 나타내는 TTL(Time-To_Live) 값도 포함된다. 이 테이블에는 반드시 서브넷 상의 모든 호스트나 라우터의 항목이 들어 있는 것은 아니다. 어떤 항목은 아직 설정되지 않았고, 어떤 항목은 만료되었을 수 있다. 일반적으로 항목의 만료 시간은 테이블에 삽입된 시점으로부터 약 20분이다. 아래는 ARP 테이블에 대한 예시를 보여준다:
| IP 주소 | MAC 주소 | TTL |
|---|---|---|
| 222.222.222.221 | 88-B2-2F-54-1A-0F | 13:45:00 |
| 222.222.222.223 | 5C-66-AB-90-75-B1 | 13:52:00 |
이제 다시 예제로 돌아가서, 호스트 222.222.222.220이 같은 서브넷에 있는 다른 호스트나 라우터로 IP 데이터그램을 보내고자 한다고 가정하자. 이때 송신 호스트는 주어진 IP 주소에 대한 MAC 주소를 알아내야 하는데, ARP 테이블에 해당 목적지에 대한 항목이 존재한다면 이 작업은 쉽게 이루어진다. 하지만 이 항목이 없다면 어떻게 될까? 예를 들어, 222.222.222.220이 222.222.222.222로 데이터그램을 보내려 한다고 하자. 이 경우 송신자는 ARP 프로토콜을 사용하여 주소를 해석한다. 먼저 송신자는 ARP 패킷이라는 특별한 패킷을 생성한다. ARP 패킷에는 송신 및 수신 IP와 MAC 주소를 포함한 여러 필드가 있다. ARP 쿼리 패킷의 목적은 해당 IP 주소에 매핑된 MAC 주소를 알아내기 위해 같은 서브넷에 있는 모든 호스트와 라우터에게 요청을 보내는 것이다.
해당 예시에서 222.222.222.220은 ARP 쿼리 패킷을 어댑터에 전달하며, 패킷을 MAC 브로드캐스트 주소(FF-FF-FF-FF-FF-FF)로 전송하라고 지시한다. 어댑터는 ARP 패킷을 링크 계층 프레임에 캡슐화하고, 프레임의 목적지 주소로 브로드캐스트 주소를 사용하여 서브넷에 프레임을 전송한다. ARP 쿼리를 담은 프레임은 서브넷 내의 모든 어댑터가 수신하며, 브로드캐스트 주소를 통해 전송되므로 같은 서브넷 안의 모든 어댑터는 해당 프레임 안의 ARP 패킷을 ARP 모듈로 전달한다. 각 ARP 모듈은 자신의 IP 주소가 ARP 패킷에 있는 목적지 IP 주소와 일치하는지 검사하고, 일치할 경우 요청한 호스트에게 응답 ARP 패킷을 전송한다. 그 후, 호스트 222.222.222.220은 ARP 테이블을 업데이트하고, 프레임의 목적지의 MAC 주소를 포함하는 프레임 안에 IP 데이터그램을 캡슐화하여 전송한다.
ARP 프로토콜에 대해 흥미로운 점이 몇 가지 있다. 첫째, ARP 쿼리 메시지는 브로드캐스트 프레임으로 전송되지만, ARP 응답 메시지는 일반적인 프레임으로 전송된다. 둘째, ARP는 플러그 앤 플레이다. 즉, ARP 테이블은 자동으로 구축되며, 시스템 관리자가 설정할 필요가 없다. 그리고 만약 호스트가 서브넷에서 사라지면, 해당 항목은 결국 다른 ARP 테이블에서 삭제된다. 마지막으로, ARP 프로토콜은 기본적으로는 link layer에 속한다고 보는 것이 타당하지만, 엄밀하게 따지면 link layer와 network layer의 경계에 걸쳐 있는 프로토콜이다. 이는 기본적으로 ARP 패킷은 프레임에 캡슐화되어 전송되므로 link layer에 속한다고 볼 수 있지만, ARP 패킷은 필드에 IP 주소와 MAC 주소를 모두 포함하기 때문이다.
Sending a Datagram off the Subnet

서브넷 내부에서 ARP가 어떻게 동작하는지는 명확해졌지만, 서브넷 외부의 다른 호스트에게 데이터그램을 보내는 것은 또 다른 문제이다. 이에 대해 살펴보기 위해, figure 4와 같이 제시된 라우터로 상호 연결된 두 개의 서브넷으로 구성된 간단한 네트워크를 살펴보자. 이때 해당 figure에서 각 호스트는 각각 하나의 IP 주소와 하나의 어댑터 만을 가진다. 하지만, 라우터는 두개의 인터페이스를 가지고 있고, 각 인터페이스에는 ARP 모듈과 어댑터가 하나씩 존재한다. 따라서 figure에 제시된 라우터는 두 개의 IP 주소와, 두 개의 ARP 모듈, 두 개의 어댑터와 MAC 주소를 가진다. 또한 주의해야 할 것은 서브넷 1의 네트워크 주소는 111.111.111/24이고, 서브넷 2의 네트워크 주소는 222.222.222/24라는 점이다.
이렇게 상황이 주어졌을 때, 호스트 111.111.111.111이 호스트 222.222.222.222로 IP 데이터그램을 보내고자 한다고 가정하자. 이때 어댑터가 사용하는 MAC 주소는 수신측 호스트의 MAC 주소인 49-BD-D2-C7-56-2A가 아니다. 이는 만약 송신 어댑터가 해당 MAC 주소를 사용한다면, 서브넷 1에 있는 어떤 어댑터도 이 프레임을 자신의 MAC 주소와 일치하지 않는다고 판단하여 프레임을 네트워크 계층으로 전달하지 않기 때문이다. 따라서 111.111.111.111에서 222.222.222.222로 데이터그램이 전송되기 위해서는 우선 라우터 인터페이스 111.111.111.110으로 전달되어야 하므로, 사용되는 MAC 주소는 해당 인터페이스의 주소인 E6-E9-00-17-BB-4B이다.[3] 이를 사용하여 프레임으로 캡슐화된 데이터그램은 송신 호스트로부터 서브넷1에 전송된다. 서브넷 1에 있는 라우터의 어댑터는 프레임의 MAC 주소가 자신의 것이라는 것을 감지하고, 프레임을 라우터의 network layer로 전달한다. 라우터는 데이터그램이 어떤 인터페이스를 통해 전달되어야 하는지를 forwarding table을 이용해 결정하며, 이에 따라 해당 데이터그램을 어댑터에 전달한 후, 이를 새로운 프레임으로 데이터그램을 캡슐화하여 서브넷 2로 전송한다. 이때 프레임의 목적지 MAC 주소는 최종 목적지 호스트의 MAC 주소가 된다.[4]
Ethernet
이더넷(Ethernet)은 유선 LAN을 장악하고 있는 프로토콜이다. 이더넷은 성공한 이유가 여럿이 있겠지만, 가장 주요한 이유를 꼽으라면 아래와 같다.
- 이더넷은 최초로 널리 배포된 고속 LAN 프로토콜이다.
- 이더넷은 구조가 간단하고, 비용이 저렴해서 다양한 환경에서 채택될 수 있다.
- 시대에 맞추어 성능을 계속 개선해왔으며, 현재는 10Gbps까지 지원한다.
- 하나의 칩으로 다양한 속도를 지원할 수 있다.

초기 이더넷 LAN은 노드들을 연결하기 위해서 동축 케이블을 사용하여 버스 토폴로지(bus topology)의 이더넷을 구현하였다. 버스 토폴로지의 이더넷은 브로드캐스트 LAN으로, 전송된 프레임은 모두 버스에 연결된 모든 어댑터에게 전송되며 처리된다. 이때 모든 노드는 동일한 collision domain에 속하며, 이 때문에 두 노드가 동시에 데이터를 전송하면 충돌(collision)이 발생한다. 이 때문에 CSMA/CD와 같은 메커니즘을 필요로 한다.
하지만 2000년대 초반 부터는 LAN을 스위치(switch) 기반의 스타 토폴로지 구조를 사용하는 이더넷이 대세가 되었다. 해당 방식에서는 호스트가 TP(twisted-pair) 구리선을 통해 스위치에 직접 연결된다. 이때 스위치는 액티브(active) 장비로서, 각 포트에서 독립적인 통신이 가능하다. 또한 각 노드는 충돌이 발생하지 않는데, 이는 각 spoke[5]는 별도의 이더넷 세션을 가지고, 각 노드 간의 통신은 스위치의 중재 하에서 이루어지기 때문이다.
Ethernet Frame Structure
Figure 6에 나타나 있는 이더넷 프레임은 이더넷에 대한 많은 것을 시사한다. 이에 대해 더욱 구체적으로 살피기 위해, 같은 이더넷 LAN에 속한 두 호스트 사이에서 IP 데이터그램을 전송하는 상황을 생각하자. 또한 송신 어댑터 A는 MAC 주소가 AA-AA-AA-AA-AA-AA이고, 수신 어댑터 B는 MAC 주소가 BB-BB-BB-BB-BB-BB라고 하자. 송신 어댑터는 IP 데이터그램을 이더넷 프레임에 캡슐화하고, 이 프레임을 물리 계층에 전달한다. 수신 어댑터는 물리 계층으로부터 프레임을 수신하고, IP 데이터그램을 추출한 뒤 네트워크 계층으로 전달한다. 이런 상황에서, 아래는 이더넷 프레임의 6개의 필드에 대한 설명이다:
- Data 필드(46~1500 바이트): 해당 필드는 IP 데이터그램을 저장한다.
- 이더넷의 MTU는 1500바이트이므로, IP 데이터그램이 1,500바이트를 초과하면, 호스트는 데이터그램을 분할(fragmentation)해야 한다.
- data 필드의 최소 크기는 46바이트이므로, IP 데이터그램이 46바이트보다 작으면 데이터 필드를 채우기 위해 패딩(stuffing)을 추가해야 한다.[6]
- Destination address 필드(6바이트): 이 필드에는 수신 어댑터의 MAC 주소가 들어간다. 이 예시에서는 BB-BB-BB-BB-BB-BB가 이에 해당한다.
- Source address 필드(6바이트): 이 필드에는 프레임을 전송한 어댑터의 MAC 주소가 들어간다. 이 예에서는 AA-AA-AA-AA-AA-AA가 이에 해당한다.
- Type 필드(2바이트): 이 필드는 이더넷이 여러 네트워크 계층 프로토콜을 다룰 수 있도록 해준다. 즉, IP 이외의 프로토콜도 이더넷을 통해 전달가능하다.
- CRC 필드(4바이트): CRC 필드는 수신 어댑터(B)가 비트 오류를 탐지할 수 있도록 해준다.
- Preamble 필드(8바이트): 이더넷 프레임은 8바이트의 preamble 필드로 시작한다. 해당 필드는 수신 어댑터들을 깨우고, 송신자의 클럭에 동기화시킨다.
모든 이더넷 기술은 네트워크 계층에 대해 비연결형(connectionless) 서비스를 제공한다. 따라서 이더넷은 unreliable한 서비스를 제공한다. 구체적으로, 어댑터 B는 어댑터 A로부터 프레임을 받으면 CRC 검사는 수행하지만, CRC를 통과하든지 실패하든지 해당 결과를 A에게 그 결과를 알려주지 않는다. 따라서, 어댑터 A는 프레임이 B에게 도달했는지, CRC를 통과했는지 전혀 알 수 없다. 이러한 신뢰성 없는 전송은 이더넷을 간단하고 저렴하게 만드는 데 기여한다.
Link-Layer Switches
자세한 내용은 Link-Layer Switches 문서를 참조하십시오.
Virtual Local Area Networks(VLANs)
현대의 이론적인 기관(institutional) 네트워크는 종종 계층 구조로 구성되어 있으며, 각 작업 그룹은 자체적으로 swithched LAN을 가지고 다른 그룹의 switched LAN과 스위치 계층 구조를 통해 연결되어 있다. 이는 이상적인 상황에서는 현실 세계는 이상적이지 않은 경우가 많다. Figure 1과 같은 구성에서는 다음 세 가지 단점이 식별된다:
1. 트래픽 격리 부족 (Lack of traffic isolation)
해당 스위치 계층 구조 덕분에 그룹 내의 트래픽은 해당 스위치 내부로 제한되지만, 브로드캐스트 트래픽[9]은 기관 전체의 네트워크를 가로질러 전송되어야 한다. 이때 브로드캐스트 트래픽의 범위를 제한하면 LAN 성능이 향상될 수 있다. 또한 보안/프라이버시 측면에서 브로드캐스트 범위를 제한하는 것이 필요할 수 있다.[10]
2. 스위치 자원의 비효율적인 사용 (Inefficient use of switches)
그룹이 3개가 아니라 10개라면, 10개의 1단계 스위치가 필요하다. 하지만 각 그룹이 작아서 각각 10명 미만의 구성원이라면, 하나의 스위치 하나로도 모두 처리할 수 있다. 하지만 이 경우 트래픽 격리가 제공되지 않는다.
3. 사용자 관리의 어려움 (Managing users)
직원이 다른 그룹으로 이동하면, 해당 직원을 물리적으로 다른 스위치에 다시 연결해야 한다. 또한 두 그룹에 동시에 소속된 지원은 더욱 복잡해진다.
이에 대한 해결책이 바로 VLAN을 지원하는 스위치이다. VLAN이라는 이름에서 알 수 있듯이, VLAN을 지원하는 스위치는 하나의 물리적 LAN 인프라 위에 여러 개의 가상 LAN을 정의할 수 있도록 한다. 이를 통해 VLAN 내부의 호스트들은 마치 자신들만 스위치에 연결되어 있는 것처럼 서로 통신한다.
Port-based VLAN

포트 기반(Port-based) VLAN은 네트워크 관리자가 스위치의 포트들을 그룹으로 나누어 VLAN을 구성하는 방식이다. 이때 각 VLAN 그룹은 하나의 브로드캐스트 도메인을 형성하고, 하나의 포트에서 발생한 브로드캐스트 트래픽은 같은 VLAN의 다른 포트로만 전파된다. Figure 6는 16개의 포트를 가진 스위치와, 2~8번 포트는 EE VLAN으로, 9~15번 포트는 CS VLAN에 할당되어 있는 모습을 보여준다. 이는 위에서 언급한 모든 문제를 해결한다. 먼저 EE와 CS의 트래픽이 서로 격리될 뿐 아니라, figure 1에 나타난 두 스위치를 하나로 통합할 수 있다. 또한 포트 8번의 사용자가 CS 부서로 이동한 경우에는 VLAN 소프트웨어 설정만 바꾸면 된다. 이때 네트워크 관리자는 VLAN 구성 소프트웨어를 통해 포트-VLAN 매핑을 지정하고, 스위치 하드웨어는 같은 VLAN에 속한 포트 사이에서만 프레임을 전달한다.
이때 VLAN 간의 통신을 구현하기 위해서는 놀고 있는 포트를 활용하면 된다. 해당 예시에서는 EE VLAN과 CS VLAN이 완전히 격리되어 있는데, 스위치의 포트 하나[11]를 EE VLAN과 CS VLAN 모두에 속하게 설정하고, 이 포트를 외부 라우터에 연결하면 된다. 이렇게 하면:
- EE → CS로 가는 IP 데이터그램은
- EE VLAN을 따라 라우터에 도달하고
- 라우터가 이를 받아서 다시 CS VLAN으로 전달
할 수 있다. 결과적으로, 물리적으로는 하나의 스위치지만, 논리적으로는 라우터로 연결된 두 개의 분리된 VLAN처럼 동작한다. 요즘 스위치 장비는 VLAN 스위치와 라우터 기능을 모두 내장하고 있어서 별도의 외부 라우터가 필요하지 않도록 설계되어 있다.
VLAN Trunking

위 예시에서 일부 EE/CS 교수들이 다른 건물에 있다는 조건을 추가하자. 당연히 이들 교수들도 자신의 부서의 VLAN에 소속되어야 한다. 가장 먼저 떠올릴 수 있는 방법은 figure 7과 같이 두 스위치 각각에서 EE VLAN용 포트, CS VLAN용 포트를 별도로 정해서 서로 직접 연결하는 것이다. 하지만 이는 확장성이 떨어지므로 사용되지 않는다. 이는 VLAN이 N개면 각 스위치마다 N개의 포트가 연결용도로만 소모되기 때문이다.

좀더 확장성있는 방식은 VLAN Trunking이라는 방식이다. VLAN Trunking이란, 두 스위치를 연결하는 특수한 포트를 지정해서 그 포트를 통해 모든 VLAN 트래픽을 전달하는 방식이다. 이는 figure 8에 잘 나타나 있다. 왼쪽 스위치의 포트 16, 오른쪽 스위치의 포트 1이 trunk 포트로 사용되고 있으며, 이는 모든 VLAN에 속하는 포트이다. 따라서 turnk 링크를 통해 VLAN에 속한 프레임이 반대쪽 스위치로 forwarding된다.
이때 turnk 포트에서 온 프레임이 어떤 VLAN에 속해있는지 알기 위해서 IEEE는 이를 위해서 802.1Q라는 확장된 이더넷 프레임 포맷을 정의하였다. 802.1Q 프레임은 표준 이더넷 프레임에 4바이트 VLAN 태그가 추가되어 해당 프레임이 속한 VLAN 정보를 저장한다. trunk 송신 스위치는 태그를 붙이고, trunk 수신 스위치는 해당 태그를 해석하고 제거하는 방식으로 프레임이 어떤 VLAN에 속하였는지를 식별한다.
각주
- ↑ 네트워크 부분 + 호스트 부분으로 나뉘어진다.
- ↑ 이 예제에서, 송신측과 수신측의 호스트는 IP 주소의 관점에서 같은 서브넷에 존재한다.
- ↑ 이때 해당 MAC 주소를 송신 호스트가 알아내는 방법이 ARP 프로토콜이다.
- ↑ 역시 해당 MAC 주소는 ARP 프로토콜을 통해서 얻어진다.
- ↑ 중앙에서 뻗는 연결선
- ↑ 이때 network layer로 전달되는 데이터에는 IP 데이터그램 + 패딩이 모두 포함되며, network layer는 IP 헤더의 length 필드를 보고 패딩을 제거한다.
- ↑ FF-FF-FF-FF-FF-FF이다.
- ↑ 그 외의 주소일 경우에는, 프레임을 폐기한다.
- ↑ 예를 들어 ARP, DHCP 메시지, MAC 주소가 아직 학습이 안된 경우 등이 있다.
- ↑ 이는 figure 1의 스위치를 라우터로 교체하면 성취될 수 있다. 하지만, 스위치 만으로도 구현 가능하다.
- ↑ 예를 들면 figure 6의 1번 포트가 있다.