본문 바로가기
[네트워크]/[시스코 네트워킹]

[CISCO Networking] MAC 주소와 IP 주소

by Hevton 2020. 8. 27.
반응형

장치들끼리 통신을 위해선 주소가 필요합니다. 제가 누군가의 집에 편지를 보낼 때와 동일한 요건입니다.

그 주소에는 MAC(Media Access Control) 주소와 IP(Internet Protocol) 주소가 있습니다.

 

간단하게 말해서 MAC주소는 물리적, 불변의 주소 그리고 IP 주소는 가상의, 가변의 주소라고 생각하시면 됩니다.

제 집의 MAC 주소가 제 집 위치 그 자체라면, IP 주소는 도로명주소 같은 개념입니다.

 

보통 통신을 위해 IP 주소만 사용한다고 생각할 수 있는데, 사실은 IP주소만 사용하는게 아니라 MAC 주소도 함께 사용합니다.

IP 주소만 있으면 통신이 일어날 것 같지만, 사실은 IP 주소를 다시 MAC으로 바꾸는 절차(ARP)를 밟으면서 통신하고 있는 것입니다.

( 통신 과정에서 IP 주소를 MAC 주소로 변환하는 과정이 필요로 됩니다. 그리고 이 과정을 ARP(Address Resolution Protocol) 이라고 합니다. )

 

통신의 근본주소는 MAC 주소라고 생각하시면 됩니다. 제가 누군가에게 편지를 쓰기 위해 도로명주소를 입력하면, 그 도로명 주소는 실제 위치에 대한 것이 아니라 약속으로 정한 이름이고, 그 명칭에 맞는 위치가 찾는 느낌입니다.

 

간단한 실전으로, 같은 네트워크 상에 있는 두 장치가 통신할 경우를 예로 들겠습니다.

같은 네트워크 상에 있는 A라는 컴퓨터(198.0.0.5)가, 같은 네트워크 상에 있는 B라는 컴퓨터(198.0.0.3)과 통신을 하고 싶습니다.

그러면 A라는 컴퓨터는 같은 네트워크 상에 있는 모든 장치에게, "여기 198.0.0.3인 사람 손좀 들어봐라~" 라는 데이터를 보냅니다.

(이처럼 같은 네트워크 상의 모든 장치에게 데이터를 보내는 작업을 브로드캐스트라고 합니다) 그러면 B라는 컴퓨터가 그 데이터를 받고, A라는 컴퓨터에게 "나의 MAC 주소는 xx:xx:xx:xx:xx:xx 이란다" 라고 데이터를 보내게 되고, A 컴퓨터는 B 컴퓨터의 맥 어드레스를 알게 된 다음부터 비로소 통신을 할 수 있게 됩니다. IP 주소는 가변의 주소이므로, "이 IP 가진 사람 누구(MAC)야" 하고, 보낸 뒤 누구(MAC)를 알게 된 뒤에 IP를 이용해 통신이 가능한 것이죠.

 

※ IP 주소는 가상의 명칭 주소, MAC 주소가 물리적인 불변의 근본 주소인 것이죠. 따라서 IP 주소는 바뀔 수 있지만, MAC 주소는 바뀌지 않습니다.

 

▶︎ MAC 주소에 대해 더 설명

네트워크 장비들은 전 세계에서 유일한, 고정되어있는 48bit의 주소를 갖습니다. 이를 MAC 주소라고  합니다.

MAC 주소는 1. xx:xx:xx:xx:xx:xx 2. xx-xx-xx-xx-xx-xx 3. xxxx.xxxx.xxxx 이렇게 표기하는데(x는 미지수)

1비트는 2진수 한개이므로, 48비트면 2진수 48자리여야하는데, 그렇게 되면 너무 길게 표기되므로 위와 같이 표기합니다.

그럼 이것이 48비트 주소가 되기 위해선 'x' 하나 안에 몇 진수가 들어가야 할까요?

 

48자리가 12자리가 되었으니 한 자리 당 4비트의 크기를 채운 느낌이므로 2진수의 4승 즉 16진수가 되게 됩니다. 2진수 48자리를 16진수 12자리로 채운 것이죠.

 

이때 주소의 앞쪽 6자리는 (xx:xx:xx) 벤더, 즉 생산자를 나타내는 코드로, 이 코드를 OUI(Organizational Unique Identifier) 라고 합니다.

이 부분은 메이커에 따라 다르기 때문에 MAC 주소의 앞부분을 보면 어느 회사에서 만든 제품인지 알 수 있습니다.

그리고 뒤에 오는 나머지 6자리의 수가 메이커에서 각 장비에 분배하는 Host Identifier입니다. 

 

출처 - '후니의 시스코 네트워킹'

 

참고

m.blog.naver.com/PostView.nhn?blogId=stop2y&logNo=220535105368&proxyReferer=https:%2F%2Fwww.google.com%2F

bnzn2426.tistory.com/71

netdream.tistory.com/59

movefast.tistory.com/97

 

Q_통신을 할 때 패킷에 맥주소와 아이피를 함께 보내는 거면,

 

a가 다른 네트워크의 b와 통신할 때

ip는 b의 주소, mac은 a의 라우터주소로 보내면 라우터가 ip주소가 자신의 것이 아닌걸 보고 ip에 맞는 라우팅을 해주듯이(arp 과정이후)

 

arp spoof를 할 때 1이라는 ip주소의 맥주소가 내 것이라는 알림을 줬을 때

피해 컴퓨터가 ip주소는 1, 맥주소는 내 것인 패킷을 보내게 될 테고, 내 컴퓨터는 맥주소를 보고 cpu에 올렸다가(정확하게 말하면 MAC주소만 같다고 올리지 않음. 책에서는 아직 안배웠으니 설명이 그런거지, 다음 계층으로 올라가면서 확인작업을 해줌)

ip주소가 다르니 넘겨줘야(또는 버리거나) 하는 아닐까?(버려주므로 그 전에 스푸핑 어플리케이션이 탈취해야함/fragrouter로 넘겨줄 경우에도 마찬가지) 이건 라우터 한정 역할인가?(PC도 fragrouter로 해줄 수 있음) 즉, 라우터의 경우에만 자신의 맥주소에 대한 데이터가 와도 아이피를 또 비교하는 작업을 하는 것인가?(라우터만 이러는 게 아님)

->그런듯? 동일네트워크에선 맥주소만 보고 메모리에 올리고,(말했듯, 책의 설명에선 아직 배우지 않은 내용이니 이렇게 말한거지, 다음 계층으로 올라가서 확인해줘야함) 라우터의 경우엔 맥주소가 그렇더라도 아이피를 보고 라우팅을(arp spoof 느낌으로는 포워딩을) 해주어야 하는지를 체크하는듯. 다시말해 IP/MAC을 포함한 패킷을 받을 때, IP주소가 같던 다르던 MAC주소 비교를 통해 판단하여 메모리 영역에 데이터를 올리게 되고, 이후 처리는 알아서인듯(라우터의 경우 IP주소를 보고 라우팅 유무(이는 arpspoof를 통한 스니핑 이후에 fragrouter -B1과 같은것)를 결정하는거지)

 

-> 이에 대한 정리 hevton.tistory.com/318

반응형