[ODOP:19]ARP
Network 를 공부하며 정리 한 내용입니다 ARP(Address Resolution Protocol) 을 설명 합니다.
네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(Bind) 시키기 위해 사용 되는 프로토콜
여기서 물리적 주소는 NIC 의 MAC 주소를 뜻한다
NIC ?
NIC(Network Interface Card)
랜카드 라고 불리는 하드웨어로, 보통 컴퓨터에 탑재 되어있다
MAC 주소는 변경 할 수 없도록 하드웨어(NIC)에 고정되어 출하되기 때문에 네트워크 장비 제조 업체에서 출하 할 때 마다 MAC 주소를 할당하게 된다
Address Resolution Protocol
MAC 주소는 IOS 2 Layer 의 주소 지정 방식 이다
네트워크의 연결을 위해서는 서로 다른 2개의 PC 의 MAC 주소를 알아내고, 연결을 수립하는 과정이 필요한데 이 때 두 주소를 연결하는 프로토콜이 ARP 이다
일반적으로 2 개 의 PC 가 연결 할 때 이들은 서로의 IP 주소를 알고 있다. 이를 이용하여 MAC 주소를 검색하는 것이다
검색 된 매핑은 IP 주소와 함께 MAC 주소가 ARP 테이블에 추가 및 저장된다
![https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp](https://blog.pollra.com/content/images/2024/08/packtrav-arp-l2-l3.png)
https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp
Client → Purple Server
Client 가 Purple Server 와 통신을 하려는 경우, 먼저 로컬 네트워크에 존재 하는지 확인 한다
즉, Client 가 동일한 네트워크에 있는 호스트와 통신을 시도 할 때 클라이언트는 스위치에 ARP 로 요청하여 호스트의 MAC 주소를 알아낸다
이 때 만들어지는 Layer 2 의 헤더는 다음과 같다
![https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp](https://blog.pollra.com/content/images/2024/08/packtrav-packet-client-purple1-1.png)
https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp
Client → Red Server
Client 는 IP 주소를 통해 Red Server 가 외부에 존재하는 서버라는 것을 알 수 있다
따라서 네트워크 패킷은 가장 가까운 라우터(또는 게이트웨이 라고도 함) 로 전달 된다
(위 이미지를 기준으로는 R1 이 된다)
Client 는 외부 네트워크의 호스트와 통신을 시도하게 되며, 가장 가까운 라우터에게 MAC 주소에 대한 ARP 를 요청한다
이 때 만들어지는 헤더는 아래와 같다
![https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp](https://blog.pollra.com/content/images/2024/08/packtrav-packet-client-red1-1.png)
https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp
요약
- Client 가 동일한 네트워크에 있는 호스트와 통신 할 때 호스트의 MAC 주소에 대해 ARP 가 수행된다
- Client 가 다른 네트워크의 호스트와 통신 할 때 기본 게이트웨이(여기선 R1)의 MAC 주소에 대해 ARP 가 수행 된다
패킷의 전달은 항상 Layer 2 의 작업이다
Layer 2 의 주요 목표는 홉에서 홉으로 패킷을 가져오는 것이다
하지만 Layer 3 는 패킷을 유선으로 연결하여 다른 호스트의 NIC 로 보낼 수 없는데, 이 때 ARP 의 역할이 두드러진다
ARP 의 역할은 Client 가 한 홉에서 다음 홉으로 패킷을 가져오기 위해 L3 헤더를 기반으로 적절한 L2 헤더를 생성하도록 돕는 것이다
![https://www.practicalnetworking.net/series/packet-traveling/osi-model/#osi-layer-23](https://blog.pollra.com/content/images/2024/08/packtrav-l2-vs-l3.gif)
https://www.practicalnetworking.net/series/packet-traveling/osi-model/#osi-layer-23
또한, IP 주소(L3) 를 기반으로 패킷을 전달 하려는 모든 장치에는 패킷을 다음 홉(L2) 로 전달할 수 있는 기능도 있어야 한다. 이를 위해서는 IP 주소를 사용하는 모든 장치(L3)에 MAC 주소를 검색할 수 있도록 ARP 테이블이 있어야 한다
https://www.practicalnetworking.net/series/packet-traveling/key-players/#arp
https://www.practicalnetworking.net/series/packet-traveling/osi-model/#osi-layer-23