네트워크 - Address Resolution Protocol(2)

2021-02-10

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


이전 컴퓨터 네트워크 포스팅에선 링크 레이어 프레임을 만들어서

전송을 하면 그것이 어떻게 컴퓨터에 전달 되는지를 알아봤습니다.

그런데 이런 경우가 있었습니다.

ARP in Same LAN

앞서는 ARP 테이블에 그게 다 있다고 가정을 했지만

ARP 테이블에 없는 지금 막 랜에 접속한 컴퓨터(B)를 가정을 해봅시다.

그림상에서 A라는 컴퓨터가 데이터를 보내고 싶어합니다.

A는 IP 주소가 137.196.7.78이고 목적지 B의 IP 주소는 137.196.7.88입니다.

서브넷 개념으로 보면 앞의 137.196.7.xxx로 인해서

하나의 같은 서브넷에 속해 있다는걸 알 수 있습니다.

하나의 랜에서는 같은 랜에 속한 다른 컴퓨터들에 대한

ARP 테이블 entry를 가지고 있기 때문에

목적지에 해당하는 MAC 주소를 알아낼 수 있다 생각하고 ARP 테이블을 살펴봅니다.

보통의 경우라면 이 B 컴퓨터에 MAC 주소가 있기 때문에

MAC 주소를 담아서 바로 링크 레이어 프레임을 만들고,

전송 하게 되면 B측 에서는 해당 데이터를 받을 수 있습니다.

그러나 지금은 이제 B 컴퓨터가 막 랜에 접속했기 때문에

B의 MAC 주소는 모르는 상태입니다.

이때 ARP를 이용해서 해결 합니다.

ARP step

B 컴퓨터에 대한 IP 주소는 알고 있고, MAC 주소를 모르는 상태이므로,

1. A가 ARP query 메시지를 broadcasting 합니다.

MAC에서의 broadcasting은 MAC 주소를 FF-FF-FF-FF-FF-FF로 담습니다.

각각의 노드들은 broadcast된 Query 메시지를 열어 봅니다.

Query 메시지가 담고 있는 것은 B 컴퓨터에 대한 IP 주소 입니다.

2. B가 ARP 패킷을 받습니다.

다른 컴퓨터들은 IP 주소가 자기의 것이 아니기 때문에 무시하겠지만

B 컴퓨터는 자기 IP 주소와 일치하기 때문에

자신(B 컴퓨터)의 MAC 주소를 담아서 reply 합니다.

3. A가 reply를 받아서 테이블에 저장합니다.

reply된 곳에는 B 컴퓨터의 MAC 주소가 담겨 있기 때문에

보내려고 했던 데이터 프레임을 만들어서 전송하면서,

ARP 테이블에 B 컴퓨터의 MAC 주소를 저장하게 됩니다.

ARP : Routing to Another LAN

이번에는 서로 다른 랜에서 어떻게 ARP가 동작하는지 살펴 봅니다.

A가 source고 B가 destination일 때

서로의 IP를 비교해 보았을 때,

네트워크 ID가 다르기 때문에 서로 다른 네트워크라는 것을 판단 할 수 있습니다.

같은 네트워크가 아니라면 데이터그램을 라우터를 통해서 외부로 내보내야 됩니다.

그래서 중간에 있는 라우터 R의 MAC 주소를 데이터그램에 담아서 전달을 합니다.

라우터 같은 경우에는 왼쪽 랜과 오른쪽 네트워크에 다 소속이 됩니다.
인터페이스 카드, 주소를 두 개씩 가지고 있습니다.

그렇게 되면 라우터는 그것을 받아서 확인합니다.

열어 보는데 목적지 IP 주소가 B 컴퓨터에 해당하는 IP 주소입니다.

IP 주소가 같은 랜에 속한다는 것을 알 수 있는 라우터는

ARP 테이블을 봐서 B 컴퓨터의 MAC 주소49-BD-D2-C7-56-2A를 목적지 MAC 주소로 담고

source는 라우터의 MAC 주소1A-23-F9-CD-06-9B를 담아서 전송을 하게 됩니다.

이렇게 되면 B 컴퓨터가 전송 되어 온 링크 레이어 프레임을 받을 수가 있게됩니다.