본문 바로가기
개발공부 개발새발/Network

Network ) ARP, GARP , 게이트웨이..

by 휴일이 2024. 5. 30.

ARP

IP주소를 통해 상대방의 MAC 주소를 알아내기 위해 사용하는 프로토콜.

TCP/IP 뿐만아니라 3계층 논리 주소와 2계층 물리 주소 사이에 관계가 없는 프로토콜에서는 ARP 와 같은 매커니즘으로 물리-논리 주소를 연결한다.

주의

  • 패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신 효율이 크게 저하되어 메모리에 정보 저장해두고 재사용한다.
    • 일정 시간 통신이 없으면 삭제됨.
  • 네트워크 장비에서는 ARP 가 CPU 에서 직접 수행하므로 짧은 시간에 많은 ARP 요청이 들어오면 큰 부하로 작용한다.
    • 그래서 ARP 테이블 저장 기간을 일반 PC 보다 길게 설정하고 많은 ARP 요청이 들어오면 필터링하거나 천천히 처리할 수 있다.
    • 일부 장비는 ARP 테이블을 수동으로만 갱신하도록 설정해 운영하기도 한다.

동작

ARP 데이터에 사용되는 송신자 하드웨어 MAC 주소 , 송신자 IP , 프로토콜 주소 , 대상자 MAC 주소 , 대상자 IP 프로토콜 주소 4개의 필드가 중요하다.

  1. 서버 A 에서 서버 B 로 ping 을 보내려고 하는데, 서버 A 에서는 목적지(서버B)의 MAC 주소를 모른다면
  2. 상대방의 MAC 주소를 알아내기 위해 ARP 브로드캐스트 로 네트워크 전체에 상대방 MAC 주소를 질의함.
    1. 출발지는 자기 MAC, 도착지는 브로드캐스트(FF-FF-FF-FF-FF-FF), 전송자는 자기 IP, MAC, 대상자 IP 넣고 대상자 MAC 주소는 00-00-00-00-00-00 으로 채움.
  3. ARP 브로드캐스트를 받은 목적지는 ARP 프로토콜을 이용해 자기 MAC 주소를 응답. 본인이 아니라면 패킷을 버림.
    1. ARP 요청에서 받은 서버A 의 정보로 모든 정보를 채워(MAC, IP) 유니캐스트 응답.
  4. 서버 A 는 응답을 받고 자신의 ARP 캐시 테이블 갱신.
  5. 이 작업이 완료되면 출발지, 목적지 둘 다 상대방에 대한 MAC 주소를 학습하게 됨.
  6. 패킷이 정상적으로 인캡슐레이션되어 상대방에게 전달.

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