[Network] LAN, MAC, ARP
본문 바로가기
IT 이야기/공부합시다

[Network] LAN, MAC, ARP

by 찬찬이 아빠 2023. 6. 28.
반응형

개인적으로 네트워크 공부를 위해 정리한 내용들입니다.

함께 공부하자는 취지로 내용을 공유합니다.


1. LAN(Local Address Network)이란?

근거리 통신망, 로컬 영역 네트워크(영어: local area network, LAN), 구내 정보 통신망은 네트워크 매체를 이용하여 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크이다.

출처 : 위키백과
  • 보통 네트워크를 정의할 때는 IP 주소와 Subnetmask를 이용하여 정의하기 마련인데 위의 정의는 꽤 추상적
  • 아무리 큰 규모의 네트워크일지라도 같은 IP 대역을 공유한다면 그것은 근거리 네트워크이기 때문
  • 동일한 Subnet Mask를 사용한다면 이는 곧 LAN이라고 할 수 있음
  • 사설 IP에 해당하는 192.168.0.0/24부터 10.0.0.0/8에 이르기까지 Subnet Mask만 같다면 모두 LAN이라고 볼 수 있음
  •  LAN 또한 Subnet Mask를 얼마만큼 정하느냐에 따라 크기가 달라지지만 Subnet Mask만 동일하다면 근거리 통신망이 되므로 같다고 볼 수 있음
  • 자신이 사용하는 IP 대역을 중심으로 변동 가능한 Subnet Mask 내 범위(크기)을 가리키는 것

LAN의 구성 예시(192.168.1.0/24)

  • 위의 구성에서 PC0(192.168.1.1)이 PC1(192.168.1.2)와 통신을 하기 위해서 사용자는 목적지를 192.168.1.2로 잡지만 실제 목적지는 PC1의 IP 주소와 함께 MAC 주소를 목적지로 지정하고 이를 활용하여 전달
  • LAN에 소속된 단말들은 ARP를 이용하여 LAN 내 다른 컴퓨터의 IP와 물리적 주소(MAC Address)를 확인, 매칭시키고 매칭된 정보가 적힌 ARP Table을 보유
  • LAN에서는 물리적 주소(MAC Address)를 사용하여 통신

내 컴퓨터의 ARP Table

  • 목적지에 대한 정보가 적힌 지도를 갖고 있는 것
  • 여러분의 컴퓨터에서 LAN 내 또다른 컴퓨터로 접속하고자 할 경우, IP를 지정하여 접속을 요청하면 이를 ARP Table에 매칭하여 해당 IP에 대한 물리적 주소(MAC Address)를 목적지로 지정하여 찾아가게 됨
  • 즉 동일한 IP 대역과 Subnet Mask를 갖는다면 그 안의 모든 단말들은 ARP의 영향을 받게 되며 LAN 내 모든 단말에 대한 ARP Table을 보유하게 됨

2. MAC 주소란?

  • 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자로 Network Interface Card(NIC)를 가진 단말이라면 공장에서 출고될 때 부여되고 평생 사용하는 고유한 주소를 의미
  •  LAN(Local Address Network)에서 목적지와 통신하기 위한 실질적인 주소가 바로 MAC 주소

MAC Address 확인

  • 네트워크 장비 혹은 컴퓨터는 모두 MAC 주소를 갖음
  • 좀 더 자세히 말하면 네트워크 장비 혹은 컴퓨터가 갖는 Network Interface Card마다 MAC 주소를 갖고 있음
  • LAN(Local Address Network, Layer 2)에서는 IP 주소를 MAC 주소에 매칭하여 통신

 

왜 MAC 주소가 필요한가?

LAN의 구성 예시(192.168.1.0/24)

  • MAC 주소 체계가 없는 상황을 가정하고 IP 주소만 있는 상황에서 PC0 사용자가 자신의 IP를 192.168.1.2로 바꾼다면 PC0와 PC1 모두 192.168.1.2 IP를 갖게 될 것이고 원래 IP 192.168.1.2 주인이 누군지 알 길이 없게됨
  • 사람은 동명이인이라도 주민번호가 다르기 때문에 구별할 수 있지만 고유한 정보인 MAC 주소 또한 웬만해서는 변하지 않음
  • 그렇기에 MAC 주소를 사용하여 전달하는 것이 확실함
  • 거꾸로 인터넷 상에서 IP 주소 없이 변화하지 않는 고유한 주소인 MAC 주소를 사용하여 라우팅을 한다면 각 고유한 주소를 라우팅 테이블에 일일이 입력하다간 라우터가 다운되고 말것임(숫자가 매우 많아질테니까)
  • IP 주소는 연속성을 갖기 때문에 IP 주소 다수를 한 줄로 지정해줄 수 있으니 편리

3. ARP란 무엇인가?

  • ARP는 Address Resolution Protocol의 약자로 IP 주소를 MAC 주소와 매칭 시키기 위한 프로토콜
  • ARP를 사용하는 이유는 로컬 네트워크(LAN, Local Area Network)에서 단말과 단말 간 통신을 하기 위해서는 IP 주소와 함께 MAC 주소를 이용하게 되는데, IP 주소를 MAC Address와 매칭하여 목적지 IP의 단말이 소유한 MAC 주소를 향해 제대로 찾아가기 위함
  • IP 주소와 MAC 주소를 일대일 매칭하여 LAN(Layer 2)에서 목적지를 제대로 찾아갈 수 있도록 도움
  • IP 주소와 MAC 주소를 일대일 대응하여 테이블로 정리하고, 목적지 IP에 맞는 목적지 MAC 주소로 전달
  • 이것을 ARP Table이라 부름(IP 주소와 MAC 주소를 일대일 매칭시킨 정보를 정리해둔 Table)

PC0의 ARP Table

  • 위 그림을 보시면 PC0의 ARP Table에 다른 PC들의 IP 주소와 함께 MAC 주소가 일대일 매칭되어 관리되고 있음
  • 사용자가 데이터를 보내기 위해 목적지 IP 주소를 지정한다면 PC0은 ARP Table에 있는 MAC 주소를 보고 해당 MAC 주소의 소유 PC로 전달

스위치의 MAC 주소 Table

  • 중간에서 데이터를 전달하는 스위치 또한 자신의 Port에 연결된 PC 들의 MAC 주소 정보를 갖고 있음
  • 어느 Port에서 어느 PC의 MAC 주소가 올라오는지 알아야 PC에게서 전달받은 데이터를 전달할 때 목적지 MAC 주소를 올바르게 지정할 수 있기 때문
  • 참고로 위 스위치의 MAC Table은 PC0에서 PC 1,2,3으로 Ping 명령을 실시한 후의 결과
  • LAN에서의 통신은 MAC 주소를 이용한다는 것을 알 수 있음

(1) ARP Table 생성 과정

  • IP 주소와 MAC 주소가 구비되어있다 하더라도 다른 PC의 IP 주소와 MAC 주소를 모르면 데이터를 전달할 수 없음
  • 그래서 ARP Table을 생성하여 다른 PC들에 대한 주소 정보를 확보하는 것이 필요

PC 0과 PC 2의 통신

  • PC 0, 1, 2, 3뿐만 아니라 모든 단말들은 자신만의 Routing Table이 있어 자신이 보내려는 패킷의 목적지 IP가 자신이 소속된 IP 대역인지 아닌지 알 수 있다는 것
1.  PC 0(192.168.1.1)은 PC 2(192.168.1.3)에게 데이터를 전달하려고 합니다.
일단 Routing table을 보니 자신과 PC 2가 같은 LAN에 속한다는 것을 알았습니다.
이제 PC 2의 MAC 주소를 알기 위해 ARP Request(Who has 192.168.1.3? Tell 192.168.1.1) 를 뿌립니다.

2. PC 0는 Broadcast(FF:FF:FF:FF:FF:FF)인 ARP Request를 날리고 PC 1, PC 2, PC 3에 전달됩니다.
그리고 ARP Request의 목표인 PC 2가 이에 반응하여 ARP Response(PC 2의 MAC 주소)를 보냅니다. 

3. PC 0(192.168.1.1)은 PC 2가 보낸 ARP Reponse를 받고 ARP Table에 PC2의 IP와 MAC 주소를 적습니다.
그리고 데이터를 보내려 목적지 IP를 192.168.1.3으로 지정하면 자연스레 ARP Table을 보고 PC 2의 MAC 주소를 목표로 전달합니다.

(2) ARP 프로토콜 구조

ARP 프로토콜 구조

  • Hardware type: Ethernet → 1
  • Protocol type : IP v4 → 0x800
  • Address length layer 2: 이더넷 → 8
  • Address length layer 3: IP v4 → 4
  • Operation : ARP Request → 1, ARP replay → 2
  • Source address(layer 2) : Mac address
  • Source address(layer 3) : IP address

(3) ARP Request 동작 구조 (MAC address 요청)

ARP Request 동작 구조 (MAC address 요청)

단계 동작
1단계 호스트 AD와 통신. 먼저 D로 가기 위한 MAC 주소를 획득해야한다. DIP주소 알고 있음
2단계 호스트 AARP Request 패킷을 생성
Source MACIP주소를 자신의 주소로 채워 넣고
Destination IP 주소는 DIP주소를 채워 넣고
Destination MAC주소는 0으로 지정
3단계 호스트 A는 생성된 ARP 패킷을 Broadcast

(4) ARP Replay 동작 구조 (MAC address 회신)

ARP Replay 동작 구조 (MAC address 회신)

단계 동작
1단계 호스트 D는 수신 받은 ARP Request에서 Destination IP주소가 자신인 것을 확인하고 ARP처리로 넘김
2단계 호스트 DARP Replay 패킷을 생성하고
Destination IPMAC주소는 ARP RequestSource IPMAC주소로 설정하고
Source IPMAC주소를 자신의 주소로 채워 넣음
3단계 호스트 DARP 패킷을 호스트 Aunicast
4단계 호스트 AARP Replay를 가지고 해당 MAC주소로 통신을 시도

(5) RARP (Reverse Address Resolution Protocol)

  • 전송하려 하는 상대방 혹은 자신의 하드웨어주소(MAC Address)는 알고, IP주소는 모를 경우 사용하는 프로토콜
  • Mac address로부터 IP주소를 알아내는 과정을 나타냄

4. ARP Spoofing 공격

(1)  ARP Spoofing 공격의 정의

  • MAC 주소를 기반으로 전송되는 LAN상의 IP-MAC 주소 매핑을 ARP Request Broadcasting을 통해 알아내어 공격자에게 정보를 전송하게 하는 방식의 공격

ARP Spoofing 공격

(2) 정상적인 통신상태

ARP 정상적인 통신상태

(3) ARP Spoofing 공격

ARP Spoofing 공격

  • 스니퍼는 각 호스트들에게 위조한 MAC 주소(상대방의 MAC 주소=스니퍼 MAC 주소)를 보내 각 호스트의 ARP Cache를 업데이트 시키게 되고 스위치에서 스니퍼 MAC 주소와 포트 매핑 정보 테이블에 등록
  • 공격에 성공하면 두 호스트는 서로의 MAC 주소를 스니퍼의 MAC 주소로 인식하고 있기 때문에 모든 트래픽을 스니퍼에게 전달

5. 정보 출처

http://blog.skby.net/arp-address-resolution-protocol/

 

ARP (Address Resolution Protocol) > 도리의 디지털라이프

I. 주소 결정 프로토콜, ARP 가. ARP (Address Resolution Protocol)의 정의 논리적 주소 체계인 IP 주소를 데이터 링크 계층의 48bit 하드웨어 주소(MAC)와 연계시키는 프로토콜(IP Address로 MAC address 확인) 이더

blog.skby.net

https://aws-hyoh.tistory.com/85

 

LAN 쉽게 이해하기

사람들은 자신이 사는 곳과 그 주변 일대를 친근하게 '동네'라고 부릅니다. 보통 집을 중심으로 걸어가기 쉬운 지근거리를 일컫는 말이기도 하지요. 저는 야탑동에 살고 있는데요. 누군가 제게

aws-hyoh.tistory.com

https://aws-hyoh.tistory.com/70

 

ARP 쉽게 이해하기

주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는

aws-hyoh.tistory.com

반응형

댓글