Tech Juny

MAC 주소와 ARP 란? 본문

네트워크

MAC 주소와 ARP 란?

태크주니 2022. 12. 14. 21:57

MAC 주소 / ARP


01. MAC 주소 [ MAC Address ]

MAC 주소는 단말이 가지고 있는 물리적인 주소이다.

논리적인 IP와 다르게 변경이 어렵고, 네트워크 인터페이스가 가지게 되는 고유 식별자이다.

IP로만 통신을 하게 되면 원활한 통신이 되지 않아 혼선이 온다.

그 이유는 IP 주소는 논리적인 주소로 언제든지 변경이 될 수 있다는 점 때문에 단말마다 통신을 하기 위해서는

변하지 않는 고유 값인 MAC 주소가 필요하다.

MAC 주소 없이 통신 불가

예를 들어 PC_C는 192.168.10.1으로 데이터를 전송하려한다.

하지만 누가 192.168.10.1이라는 IP 주소를 가진지 모르기 때문에 PC_A나 PC_B에 데이터를 전송할지 했갈리게 된다.

쉽게 비유하자면 IP 주소는 사람이름 MAC 주소는 핸드폰 번호라고 생각하면된다.

홍길동이라는 사람이 이벤트에 당첨되었다면 전국의 모든 홍길동에게 상품을 주는것은 말도 안된다.

홍길동이라는 이름에 010-1234-1234라는 번호를 가진 사람이 이벤트에 당첨되었다면

상품은 해당 번호를 가진 홍길동 한명에게만 상품을 전달 하게 된다.

이처럼 이름은 동명인이 있을 수 있지만 핸드폰 번호는 나만 가지고 있는 고유 번호이다.

그리고 이 IP와 MAC을 연결 시켜주는 프로토콜이 ARP 프로토콜이다.

 

02. MAC 조회 방법

윈도우 환경에서 MAC 조회하는 방법은 cmd 창에 ipconfig /all 명령어를 입력하면 조회가 가능하다.

물리적 주소 항목이 MAC 주소를 의미 한다.

Window MAC 주소 조회

리눅스 환경에서는 ifconfig 명령어를 통해 조회가 가능하다

HWaddr 부분이 MAC 주소를 의미한다.

Linux MAC 주소 조회

MAC 주소는 윈도우 환경에서는 하이픈(-) 기호로 구분하고 리눅스 환경에서는 콜론(:) 기호로 구분하는 차이점이 있다.

  • 윈도우 MAC 주소 표현 예시 : aa-aa-aa-aa-aa-aa
  • 리눅스 MAC 주소 표현 예시 : aa:aa:aa:aa:aa:aa

 

MAC 주소의 48bit

또한 MAC 주소는 48bit의 숫자로 표기되며, 앞의 24bit는 OUI(Organization Unique Identifier)라고 불리는

제조사 식별 코드이고 뒤의 24bit는 단말의 일련번호이다.

 

 

03. ARP [ Address Resolution Protocol ]

ARP는 직역하면 주소 결정 프로토콜로 논리적인 IP 주소를 물리적인 MAC 주소로 매칭 시키는 프로토콜이다.

ARP는 LAN 통신 환경에서 데이터를 통신하기 위해 IP와 MAC을 이용하여 통신한다.

MAC 주소를 매칭 시키기 때문에 데이터링크 계층(2계층)에서 동작하는 프로토콜로 착각하는 경우도 있지만

ARP는 IP주소와 MAC 주소 둘다 필요하기 때문에 IP가 속해있는 네트워크 계층(3계층)에서 사용되는 프로토콜이다.

ARP의 통신 과정은 다음과 같이 2단계로 이루어 진다.

  • ARP Request : 상대의 IP를 가지고 MAC 주소 정보를 요청하는 패킷
    • ARP Request는 LAN 구간의 모든 호스트에게 전달해야 되기 때문에 Brodcast(ff:ff:ff:ff:ff:ff) 통신을 한다. 
    • Ex) Request who-has 192.168.10.1 tell 192.168.10.3, length 46-> 나는 192.168.10.3인데, 192.168.10.3을 가진 호스트의 MAC 주소는 무엇인가
  • ARP Reply : ARP Request를 받은 호스트가 해당 IP를 가지고 있으면 자신의 MAC 주소를 담아 응답하는 패킷
    • ARP Request를 요청한 호스트에게만 전달하면 되기 때문에 해단 호스트에게 Unicast 통신으로 응답한다.
    • 자신의 IP와 다른 ARP Request를 받은 호스트들은 해당 패킷을 무시하고 해당 IP를 가진 호스트만 응답한다
    • Ex) ARP (0x0806), length 62: Reply 192.168.10.1 is-at aa:aa:aa:aa:aa:aa, length 46-> 내 IP는 192.168.10.1이고 나의 MAC 주소는 aa:aa:aa:aa:aa:aa 이다.

 

04. MAC 테이블 [ MAC Table ]

매번 통신 전에 ARP Request와 ARP Reply를 보내는 과정을 수행하면 네트워크 망은 매우 혼잡한 상태가 된다.

때문에 호스트들은 ARP를 통해 얻은 IP 주소와 MAC 주소 정보들을 Table에 저장하고 다음 통신이 이루어 질때 참고 한다.

이러한 Table을 MAC Table 또는 ARP Table이라고 한다.

그림처럼 L2_SW에 PC_A, PC_B, PC_C의 MAC Table이 저장 되어있다면

PC_C에서 192.168.10.1 통신을 할 때 L2_SW는 자신의 MAC 테이블을 참고하여 PC_A에게 패킷을 바로 전송한다.

불필요한 ARP Requset와 ARP Reply 통신을 줄여 네트워크 혼잡을 방지하고 패킷의 전송 속도도 빨라지는 효과가 있다.

  • 윈도우 환경에서는 arp -a 명령어로 MAC Table을 조회 가능하다.

Window MAC Table 조회

  • 리눅스 환경에서는 arp 명령어로 MAC Table을 조회 가능하다.

Linux MAC Table 조회

 

05. LAN [ Local Area Network ]

ARP를 정의하면서 LAN 이야기를 빼먹을 수는 없어 간단히 정의만 하겠다.

LAN은 직역하자면 근거리 통신 망이다.

일부에서는 내부망, 사설망, 같은 네트워크 대역이라 칭하는데 다 맞는 말이다.

그러나 네트워크 측면에서 말하면 ARP Request가 전송되는 구간이 LAN 영역이라고 볼 수 있다.

 

06. RARP [ Reverse Address Resolution Protocol ]

Reverse라는 의미와 같이 ARP 프로토콜과는 반대로 MAC 주소를 IP 주소로 매칭시켜주는 프로토콜이다

 

07. GARP [ Gratuious  Address Resolution Protocol ]

출발지 IP와 목적지 IP가 같은 ARP로 자신의 MAC 주소의 존재를 다른 단말들에게 광고하는 목적으로 사용한다.

GARP는 다른 호스트들의 MAC 테이블을 갱신 시켜주는 역할 뿐만아니라 IP 충돌을 방지하는 역할도한다.

'네트워크' 카테고리의 다른 글

Unicast / Multicast / Broadcast 통신 방식 이란?  (0) 2022.12.21
DHCP Relay와 DHCP Proxy 란?  (0) 2022.12.17
DHCP 란?  (2) 2022.12.17
OSI 7 계층 이란?  (0) 2022.12.13
IP 주소와 Subnet Mask 란?  (0) 2022.12.12
Comments