본문 바로가기
네트워크

스위치 근거리 네트워크 - 링크 계층 주소체계와 ARP

by 학식러 2023. 4. 29.

 

스위치는 링크 계층에서 동작하기 때문에 링크 계층 프레임을 교환한다.

또한, 네트워크 계층 주소를 인식하지 않으며, 2계층 스위치들로 구성된 네트워크에서 경로를 결정하는 데 OSPF 같은 라우팅 알고리즘을 사용하지 않는다.

즉, IP 주소가 아닌 링크 계층 주소를 사용한다.

 

6.4.1 링크 계층 주소체계와 ARP

 

1. MAC 주소

실제로 링크 계층 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑터(네트워크 인터페이스)다. 그러므로 다수의 네트워크 인터페이스를 갖고 있으면 여러 개의 링크 계층 주소를 갖게된다.

 

그러나 링크 계층 스위치는 호스트와 라우터 간에 데이터그램을 전달하는 일을 하기 때문에 호스트나 라우터를 연결해주는 인터페이스에 링크 계층 주소를 할당받지 않는다.

 

링크 계층 주소는 랜 주소(LAN address), 물리 주소(physical address), MAC 주소(MAC address)라고 알려져 있다. 그 중 가장 널리 알려진 용어가 MAC 주소이다.

 

특징

1) MAC 주소는 링크 계층 주소로, 대부분의 랜의 경우 MAC 주소는 길이가 6바이트이며, 따라서 2^48개만큼의 사용 가능한 랜 주소가 있다. 위 그림처럼, 주로 각 바이트는 2개의 16진수로 표기된다.

 

2) 본래 MAC 주소는 영구적으로 설계되었으나, 이제는 소프트웨어를 사용해서 어댑터의 MAC 주소를 변경할 수 있다.

 

3) IEEE가 MAC 주소 공간을 관리하여 모든 어댑터가 다른 주소를 갖게끔 한다.

즉, 어떤 회사가 어댑터를 제조하려면 2^24개의 주소로 이루어진 주소 영역을 구매 후 첫 24비트를 고정하고, 나머지 24비트는 회사로 하여금 각 어댑터에게 유일하게 부여하는 방식으로 2^24개 주소를 할당한다.

 

3) MAC 주소는 계층 구조가 아닌 평면 구조를 가지고, 위치가 변하더라도 바뀌지 않는다.

<-> IP주소는 호스트가 이동하면 다른 서브넷에 속하게 되어 변경되어야 한다.

 

IP 주소가 마치 우편번호 처럼 쓰였다면 MAC주소는 주민등록번호처럼 사용되는 것이다.

 

MAC 주소를 활용한 어댑터의 송수신

1) 송신 어댑터는 프레임에 목적지 어댑터의 MAC 주소를 넣고 랜상으로 전송한다.

스위치는 프레임을 자신의 모든 인터페이스로 브로드캐스트한다. 즉, 자신을 목적지로 하지 않는 프레임을 수신할 수도 있다.

2) 프레임을 수신한 어댑터는 프레임 안의 목적지 MAC 주소와 자신의 MAC 주소가 일치하는지 검사한다.

3) 일치하면 데이터그램을 추출하여 프로토콜 스택의 위쪽으로 전달한다.

4) 일치하지 않으면 폐기한다.

 

랜상의 다른 모든 어댑터가 자신이 전송한 프레임을 수신하고 처리하기를 원할 때 MAC 브로드캐스트 주소(broadcast address)를 넣는다. 이 주소는 모든 비트가 1로된 6바이트 주소이다. (FF-FF-FF-FF-FF-FF)

 

 

2. ARP(Address Resolution Protocol)

네트워크 계층 주소와 링크 계층 주소가 있으므로 이들 주소 사이에 변환을 해주는 프로토콜을 ARP(Address Resolution Protocol) 이라고 한다.

ARP 모듈은 IP와 MAC 주소와 마찬가지로 인터페이스마다 존재한다.

 

 

위 그림에서 A에서 C로 데이터그램을 전송하려고 한다고 가정해보자.

데이터그램을 전송하기 위해 목적지 IP 뿐만 아니라 MAC 주소도 주어야만 랜이 적절하게 C로 전달할 수 있다.

 

송신 호스트 즉, A는 목적지 IP주소를 가진 호스트(C)의 MAC 주소를 알아야하는데 이를 ARP가 해준다.

송신 호스트의 ARP 모듈은 입력값으로서 동일한 랜상의 임의의 IP 주소에 대해 대응되는 MAC 주소를 돌려준다.

 

이러한 면에서 DNS와 비슷한 면이 있다.

그러나 DNS는 인터넷의 임의의 장소에 있는 호스트의 호스트 네임을 해결하는 반면에, ARP는 동일한 서브넷상에 있는 호스트나 라우터 인터페이스의 IP 주소만을 해결한다.

 

동작 과정

각 호스트와 라우터는 자신의 메모리에 ARP 테이블(ARP table)을 갖고 있다. 이 테이블은 IP 주소와 MAC 주소 간의 매핑 정보를 포함하며, 테이블에서 각 매핑이 언제 삭제되는지를 나타내는 TTL(time-to-live) 값을 포함한다. 일반적으로 삭제 시간은 엔트리가 테이블에 들어간 후 20분이다.

 

테이블에 서브넷상의 모든 호스트와 라우터에 대한 엔트리를 갖고 있지 않아도 된다.

즉,데이터그램을 전송하려할 때, ARP 테이블에 목적지 노드에 대한 엔트리가 없을 수 있다.

 

 

1) 송신 노드는 MAC 주소를 해결하기 위해 ARP 프로토콜을 사용하여 ARP 패킷이라는 특수 패킷을 어댑터에 보낸다.

: ARP 패킷은 송수신 IP주소와 MAC 주소를 포함하는 필드를 가지며 질의(query) 패킷과 응답(response) 패킷 모두 같은 형식을 갖는다.

질의 패킷의 목적은 해결하려는 IP주소에 대응되는 MAC 주소를 결정하기 위해 서브넷의 다른 모든 호스트와 라우터들에게 질의하는 것이다.

질의 패킷은 브로드캐스트 프레임으로 전송된다.

2) 어댑터는 ARP패킷을 링크 계층 프레임에 캡슐화하고, 목적지 주소를 MAC 브로드캐스트 주소(FF-FF-FF-FF-FF-FF)로 하여 패킷을 전송한다.

 

 

3) 이 질의는 서브넷 상의 다른 모든 어댑터에 의해 수신되며, 브로드캐스트 주소 때문에 각 어댑터는 프레임에 들어있는 ARP 패킷을 자신의 ARP 모듈로 전달한다.

4) ARP 모듈은 자신의 IP 주소가 ARP 패킷에 들어 있는 목적지 IP주소와 일치하는지 검사한다.

5) 일치하는 노드는 요구된 매핑 정보가 포함된 응답 패킷을 돌려보낸다.

질의 패킷은 브로드캐스트 프레임으로 전송되는 반면 응답 패킷은 표준 프레임으로 전송된다.(질의 패킷은 FF-FF-FF-FF-FF-FF이지만 응답 패킷은 정상적인 주소라는 의미)

 

 

6) 질의 호스트는 자신의 ARP 테이블을 갱신한다.

 

 

3. 서브넷에 없는 노드로의 데이터그램 전송(다른 서브넷으로 라우팅)

 

위 그림에서 호스트 111.111.111.111이 호스트 222.222.222.222로 IP 데이터그램을 전송하려한다고 가정하자.

라우터는 2개의 IP 주소, 2개의 ARP 모듈, 2개의 어댑터(어댑터는 고유한 MAC 주소를 가지고 있으므로 MAC주소도 2개다.)를 가지고 있다.

송신 호스트는 적절한 목적지 MAC 주소와 IP 주소가 포함된 데이터그램을 자신의 어댑터로 전달해야한다.

 

만약, 송신 어댑터가 목적지 MAC 주소를 49-BD-D2-C7-56-2A 를 사용한다면 목적지 주소는 111.111.111.111 호스트가 포함된 서브넷에 있는 어떤 어댑터의 MAC 주소와도 일치하지 않으므로 서브넷에 있는 어떤 어댑터도 IP 데이터 그램을 자신의 네트워크 계층으로 전달하지 않는다.

즉, 데이터그램은 전달되지 않고 사라진다.

 

데이터그램이 전달되기 위해서는 라우터 인터페이스 111.111.111.110으로 전달해야만 한다. 따라서 이 프레임에 대한 적절한 MAC 주소는 라우터 인터페이스의 E6-E9-00-17-BB-4B 이다.

 

 

동작 과정

1) 송신 호스트가 111.111.111.110 의 MAC 주소를 ARP를 사용하여 알게된다.

 

2) MAC주소를 알게 되면 송신 호스트는 IP 목적지 주소가 222.222.222.222 를 포함하는 데이터그램을 알아낸 MAC 주소와 함께 서브넷으로 전송하고 서브넷의 라우터 어댑터는 MAC 주소가 일치하므로 네트워크 계층까지 전달한다.

 

3) 라우터의 포워딩 테이블을 통해 라우터에게 데이터그램을 라우터 인터페이스 222.222.222.220 을 거쳐서 전달하도록 지시한다.

4) 인터페이스는 데이터그램을 자신의 어댑터로 전달하고 어댑터는 데이터그램을 새 프레임에 캡슐화하여 그 프레임을 다른 서브넷으로 전달한다.

여기서의 목적지 MAC 주소는 당연히 ARP를 통해 알게된다.

 

 

'네트워크' 카테고리의 다른 글

가상 근거리 네트워크(VLAN)  (0) 2023.05.01
이더넷, 링크 계층 스위치  (0) 2023.04.30
다중 접속 링크와 프로토콜  (0) 2023.04.28
오류 검출 및 정정 기술  (1) 2023.04.25
링크 계층 소개  (0) 2023.04.25

댓글