Switched Local Area Networks

youngwiki
Pinkgo (토론 | 기여)님의 2025년 5월 22일 (목) 06:39 판

상위 문서: Data Link Layer

개요

Figure 1. An institutional network connected together by four switches
Figure 2. Each interface connected to a LAN has a unique MAC address

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)

Figure 3. Each interface on a LAN has an IP address and a MAC address

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.220222.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

Figure 4. Two subnets interconnected by a router

서브넷 내부에서 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

각주

  1. 네트워크 부분 + 호스트 부분으로 나뉘어진다.
  2. 이 예제에서, 송신측과 수신측의 호스트는 IP 주소의 관점에서 같은 서브넷에 존재한다.
  3. 이때 해당 MAC 주소를 송신 호스트가 알아내는 방법이 ARP 프로토콜이다.
  4. 역시 해당 MAC 주소는 ARP 프로토콜을 통해서 얻어진다.