네트워크

인터넷에서 웹브라우저까지 (4) - DNS, ARP

예 찬 2021. 12. 12. 15:52

 

 

인터넷을 통해 웹사이트에 접속할 때 사용자들은 일반적으로 도메인 네임을 사용합니다.

 

 

 

 

도메인 네임은 사용자가 IP Address나 MAC Address를 모두 기억할 수 없기 때문에 사용자의 편의를 위해 쓰입니다.

 

하지만 인터넷 프로토콜은 IP Address를 통해 동작하기 때문에 도메인 네임은 IP Address로 변환되어야 합니다.

 

이런 변환은 DNS(Domain Name System)를 통해 수행합니다.

 

 

 

 

먼저, DNS를 사용하려면 DNS를 사용하려는 클라이언트에 DNS 서버의 IP Address가 등록되어 있어야 합니다.

 

 

MAC과 Windows

 

 

클라이언트는 도메인 네임을 포함하는 DNS Query 메시지를 등록된 DNS 서버로 보냅니다.

 

 

 

 

DNS 서버는 도메인 네임과 대응하는 IP Address가 매핑된 테이블을 가지고 있습니다.

 

이 테이블을 보고 DNS Query 메시지로 받은 도메인 네임에 대응하는 IP Address를 DNS Response 메시지에 포함하여 클라이언트로 보냅니다.

 

 

 

 

DNS 서버가 도메인 네임에 대응하는 IP Address를 가지고 있지 않다면 DNS 서버는 DNS Query 메시지를 루트 도메인의 DNS 서버에 보내 DNS Response 메시지를 받습니다.

 

만약 루트 도메인의 DNS 서버에도 정보가 존재하지 않는다면 하위 도메인으로 내려가면서 DNS Query 메시지를 보내 DNS Response 메시지를 받습니다.

 

 

      예시입니다

 

 

이로써 클라이언트는 DNS를 통해 도메인 네임에 대응하는 IP Address를 알 수 있게 됩니다.

 

 

 


 

 

Network Layer의 패킷에는 수신지의 IP Address는 포함되어 있지만 MAC Address는 포함되어 있지 않습니다.

 

그러므로 패킷이 Physical Layer를 통과하여 수신지로 데이터가 전송되기 위해서는 수신지의 MAC Address를 알아야 합니다.

 

이를 위해 Network Layer에는 IP Address를 MAC Address로 변환해 주는 ARP(Address Resolution Protocol)가 존재합니다.

 

그림과 함께 ARP가 동작하는 과정을 알아보겠습니다.

 

클라이언트 A가 클라이언트 D의 도메인 네임을 사용하여 데이터를 보냅니다.

 

 

예시입니다.

 

 

클라이언트 A는 DNS 서버의 IP Address는 가지고 있지만 MAC Address를 모릅니다.

 

 

 

 

따라서 ARP 프로토콜을 사용합니다.

 

클라이언트 A는 같은 네트워크 상의 모든 장치들에게 DNS 서버의 IP Address가 포함된 ARP 리퀘스트 패킷을 보냅니다.

 

 

브로드캐스트

 

 

DNS 서버는 ARP 리퀘스트 패킷을 확인하여 클라이언트 A에게 자신(DNS 서버)의 MAC Address가 포함된 ARP 리플라이 패킷을 보냅니다.

 

그리고 자신의 ARP 캐시에 클라이언트 A의 MAC Address를 등록합니다.

 

클라이언트 A 또한 ARP 리플라이를 확인하여 DNS 서버의 MAC Address를 ARP 캐시에 등록합니다. 

 

 

유니캐스트

 

 

이제 클라이언트 A는 DNS 서버에 DNS Query 메시지를 보낼 수 있고 DNS 서버로부터 DNS Response 메시지를 받아 클라이언트 D의 IP Address를 알게 되었습니다.

 

 

 

 

클라이언트 A는 클라이언트 D의 IP Address에 서브넷 마스크를 AND 연산한 결과를 통해 클라이언트 D가 다른 네트워크에 존재한다는 것을 알게 되었습니다.

 

그러므로 클라이언트 A는 데이터를 라우터 R로 보내야 합니다. 

 

 

 

 

클라이언트 A에는 라우터 R의 IP Address(11.1.1.5)만 등록되어 있기 때문에 라우터 R의 MAC Address를 알기 위해 다시 ARP를 사용합니다.

 

ARP로 라우터 R의 MAC Address를 얻어 데이터를 전송합니다.

 

 

 

 

데이터를 받은 라우터 R의 ARP 캐시를 살펴보면 클라이언트 D의 정보가 이미 등록되어 있습니다.

 

 

 

 

따라서 라우터 R은 클라이언트 D에게 바로 데이터를 전송합니다.