ARP
IP주소를 통해 상대방의 MAC 주소를 알아내기 위해 사용하는 프로토콜.
TCP/IP 뿐만아니라 3계층 논리 주소와 2계층 물리 주소 사이에 관계가 없는 프로토콜에서는 ARP 와 같은 매커니즘으로 물리-논리 주소를 연결한다.
주의
- 패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신 효율이 크게 저하되어 메모리에 정보 저장해두고 재사용한다.
- 일정 시간 통신이 없으면 삭제됨.
- 네트워크 장비에서는 ARP 가 CPU 에서 직접 수행하므로 짧은 시간에 많은 ARP 요청이 들어오면 큰 부하로 작용한다.
- 그래서 ARP 테이블 저장 기간을 일반 PC 보다 길게 설정하고 많은 ARP 요청이 들어오면 필터링하거나 천천히 처리할 수 있다.
- 일부 장비는 ARP 테이블을 수동으로만 갱신하도록 설정해 운영하기도 한다.
동작
ARP 데이터에 사용되는 송신자 하드웨어 MAC 주소 , 송신자 IP , 프로토콜 주소 , 대상자 MAC 주소 , 대상자 IP 프로토콜 주소 4개의 필드가 중요하다.
- 서버 A 에서 서버 B 로 ping 을 보내려고 하는데, 서버 A 에서는 목적지(서버B)의 MAC 주소를 모른다면
- 상대방의 MAC 주소를 알아내기 위해 ARP 브로드캐스트 로 네트워크 전체에 상대방 MAC 주소를 질의함.
- 출발지는 자기 MAC, 도착지는 브로드캐스트(FF-FF-FF-FF-FF-FF), 전송자는 자기 IP, MAC, 대상자 IP 넣고 대상자 MAC 주소는 00-00-00-00-00-00 으로 채움.
- ARP 브로드캐스트를 받은 목적지는 ARP 프로토콜을 이용해 자기 MAC 주소를 응답. 본인이 아니라면 패킷을 버림.
- ARP 요청에서 받은 서버A 의 정보로 모든 정보를 채워(MAC, IP) 유니캐스트 응답.
- 서버 A 는 응답을 받고 자신의 ARP 캐시 테이블 갱신.
- 이 작업이 완료되면 출발지, 목적지 둘 다 상대방에 대한 MAC 주소를 학습하게 됨.
- 패킷이 정상적으로 인캡슐레이션되어 상대방에게 전달.
GARP
자신의 IP와 MAC 주소를 알릴 목적으로 ARP 프로토콜 필드를 그대로 사용해서 대상자 IP 필드에 자기 IP 주소를 채워 보냄.
- 대상자 MAC 전부 0, 대상자 IP 주소 자기 IP 주소 넣어 브로드캐스트.
용도
- IP 주소 충돌 감지
- 상대방(동일 서브넷 상의 다른)의 ARP 테이블 갱신
- HA(고가용성) 용도의 클러스터링, VRRP, HSRP
IP 주소 충돌 감지
- IP 충돌 때문에 통신이 안 되는 것을 예방하기 위해
- GARP를 통해 현재 설정된 본인 IP가 네트워크에서 이미 사용되고 있는지 확인함.
상대방(동일 서브넷 상)의 ARP 테이블 갱신
- 단말의 ARP 테이블 변경 목적.
- 가상 MAC 주소를 사용하지 않는 데이터베이스 HA(고가용성) 솔루션에 주로 사용.
- 두 DB 서버가 하나의 가상 IP 주소로 서비스함. (액티브-스탠바이)
- 액티브 서버가 가상 IP 주소 요청에 응답하지만, MAC 주소는 실제 주소를 이용.
- 스탠바이 → 액티브가 되면 GARP 패킷을 네트워크에 보내 액티브 장비 변경을 알린다.
사실 확실히 업데이트 안 되는 경우가 있어 가상 MAC 을 사용하는 솔루션이 사용되긴함.
클러스터링, FHRP(VRRP, HSRP)
비슷한 데이터끼리 묶어 군집 만들기. 여러 대의 서버를 네트워크로 연결하여 전체적으로 하나의 서버로 보이게 하기. 전부 가상 MAC 사용.
- 네트워크에 있는 스위치 장비의 MAC 테이블 갱신 목적.
- 클러스터링 중간에 있는 스위치 MAC 테이블에 마스터 변경 시점에 MAC 테이블을 갱신하여 가상 MAC 주소 위치를 적절히 찾아가도록 업데이트.
RARP
IP 주소가 정해져있지 않은 단말이 IP 요청을 할 때 사용하는 프로토콜. GARP 처럼 ARP 프로토콜 구조는 같지만 필드에 들어가는 내용이 다르다.
- 내 MAC 주소는 알지만 IP 가 아직 할당되지 않아 IP 할당 서버에 어떤 IP 주소를 써야하는지 물어볼 때 사용.
- 지금은 BOOTP, DHCP 로 대체되어 사용되지 않음.
게이트웨이
원격지 네트워크와 통신하는 데에 사용하는 장비가 게이트웨이 . 3계층 장비(라우터, L3 스위치)가 이 역할을 한다.
- 브로드 캐스트의 성질 → 네트워크를 넘어 전달되지 못함. 그래서 네트워크 장비의 도움이 필요하다.
- 게이트웨이에 대한 정보를 PC 나 네트워크 장비에 설정하는 항목은 기본 게이트웨이
- 3계층 장비가 수행.
- 여러 네트워크와 연결되며 적절한 경로를 지정해준다.
서브넷 마스크
동일 네트워크 간의 통신과 서로 다른 네트워크 간의 통신을 구분하기 위해 사용하는 것.
- 출발지에서 먼저 목적지가 자신이 속한 네트워크 범위인지 확인하는데, 이 때 서브넷 마스크 를 확인한다.
- 로컬 네트워크 주소에 목적지가 속해있으면 로컬 통신, 아니면 원격지 통신.
- 원격지 통신은 ARP 가 라우터를 넘어가지 못하는 브로드캐스트이므로 외부 통신 가능한 장비의 도움이 필요하다.
2계층 통신 vs 3계층 통신
로컬네트워크 통신 vs 원격지 네트워크 통신
L2 통신 (2계층 통신)
- 로컬네트워크에서 직접 통신할 경우 라우터같은 3계층 장비 필요 없음.
- ARP 요청을 보낼 때 직접 브로드캐스트 이용.
L3 통신 (3계층 통신)
- 원격지 네트워크와의 통신은 라우터 같은 3계층 장비의 도움이 있어야만 통신 가능.
- 패킷의 3계층 정보까지 확인해야 함.
왜 L2, L3 통신이 다른가?
로컬과 리모트 통신을 위한 ARP 동작 방식이 달라서..
- 로컬은 직접 ARP 해서 찾음.
- 원격 통신은 ARP 요청을 기본 게이트웨이의 IP 주소로 요청함.
- 게이트웨이에서 ARP 응답을 받으면 도착지 MAC 주소(디폴트 게이트웨이)에 응답받은 기본 게이트웨이의 MAC 주소를 적어놓고 통신 시작.
728x90
'개발공부 개발새발 > Network' 카테고리의 다른 글
Network ) 라우터 (0) | 2024.07.19 |
---|---|
Network ) 스위치 (0) | 2024.06.14 |
Network ) TCP / UDP (0) | 2024.05.30 |
Network ) 통신 방식 , MAC 주소, IP 주소 (서브네팅) (0) | 2024.05.30 |
Network ) 네트워크 연결 (0) | 2024.05.08 |