[네트워크] MAC 주소

공부중인 개발자·2021년 9월 12일
0

네트워크

목록 보기
2/10
post-thumbnail
초보개발자입니다. 틀린내용이 있다면 언제든지 알려주시면 감사합니다!

3.2 MAC 주소

MAC 주소는 Media Access Control의 줄임말로 2계층(Data link)에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자입니다.

네트워크 인터페이스는 컴퓨터가 네트워크에 연결하기 위해 필요한 하드웨어 장치가 있는데 이것을 네트워크 인터페이스 카드 또는 네트워크 인터페이스 컨트롤러 (NIC)라고 하며 소위 부르는 명칭은 랜카드같은 것을 뜻합니다.

NIC 네트워크 인터페이스 카드의 주요역할은 다음과 같습니다.

  • 직렬화
    NIC는 전기적 신호를 데이터 신호 형태로 또는 데이터 신호 형태를 전기적 신호 형태로 변환합니다. 네트워크 카드 외부 케이블에서는 전기 신호 형태로 데이터가 전송되는데 이런 상호 변환작업을 직렬화라고 합니다.

  • MAC 주소
    네트워크 인터페이스 카드는 MAC 주소를 가지고 있습니다. 받은 패킷의 도착지 주소가 자신의 MAC 주소가 아니면 폐기하고 자신의 주소가 맞으면 시스템 내부에서 처리할 수 있도록 전달합니다.

  • 흐름 제어
    패킷 기반 네트워크에서는 다양한 통신이 하나의 채널을 이용하므로 이미 통신 중인 데이터처리 때문에 새로운 데이터를 받지 못할 수 있습니다. 이런 현상으로 인한 데이터 유실 방지를 위해 데이터를 받지 못할 때는 상대방에게 통신 중지를 요청할 수 있습니다. 이 작업을 흐름 제어라고 합니다.

MAC 주소는 이더넷과 와이파이를 포함한 대부분의 IEEE 802 네트워크 기술에서 2계층 주소로 사용됩니다. 네트워크에 접속하는 모든 장비는 MAC 주소라는 물리적인 주소가 있어야하고 이 주소를 이용해 서로 통신하게 됩니다.

IEEE 802는 근거리 통신망과 도시권 통신망을 관할하는 전기 전자 기술자 협회(IEEE) 표준 규칙들의 계열을 말한다.

구체적으로 말해, IEEE 802 표준은 가변 크기 패킷을 전달하는 네트워크에 제한되어 있다. (이와 반대로 셀 릴레이 망에서 데이터는 '셀'이라 불리는 짧고 통일성 있는 크기의 단위로 전송된다)

IEEE 802 계열의 표준들은 LAN/MAN 표준 위원회(IEEE 802 LAN/MAN Standards Committee, LMSC)에 의해 유지보수되고 있다.

IEEE 802 - 위키디피아

MAC 주소 체계

MAC 주소는 변경할 수 없도록 하드웨어에 고정되어 출하되므로 네트워크 구성 요소마다 다른 주소를 가집니다.(예외적으로 MAC 주소를 변경할 수 있습니다.) 모든 네트워크 장비 제조업체에서 장비가 출하될 때 MAC 주소를 할당하는데 각 제조업체에 주소 풀을 주고 그 풀안에서 제조업체가 자체적으로 MAC 주소를 할당합니다. 제조업체에 주소 풀을 할당하는 것을 제조사 코드라고 부르며 국제기구인 IEEE가 관리합니다.

MAC 주소는 48비트의 16진수 12자리로 표현됩니다. 24비트의 앞자리와 24비트의 뒷자리 두개로 구분 되는데 앞의 24비트는 제조사 코드인 OUI 값이며 뒤의 24비트는 제조사에서 자체 할당한 UAA 입니다.

네트워크 카드나 장비를 생산할 때 하드웨어적으로 정해져 나오므로 MAC 주소를 BIA(Burned-In Address)라고도 부릅니다.

참고
유일하지 않은 MAC 주소
MAC주소는 실수나 의도적으로 중복되는 경우가 있습니다.
동일 네트워크에서만 중복되지 않는다면 동작하는 데 문제는 없습니다. 네트워크 동신을 할 때 네트워크가 달라 라우터의 도움을 받아야 할 경우 라우터에서 다른 네트워크로 넘겨줄 때 출발지와 도착지의 MAC 주소가 변경 되므로 네트워크를 넘어가면 기존 출발지와 도착지 MAC 주소를 유지하지 않습니다.

이 그림은 클라이언트와 서버간의 데이터 요청과 응답에 대한 그림으로 위에 나오는 스위치와 라우터에는 모두 각자의 MAC 주소를 가지고 있습니다. 그렇기 때문에 MAC 주소의 요청과 응답은 다음과 같이 변하게 됩니다.

논리 주소인 IP의 경우는 송신IP 와 수신IP의 변화가 없지만 MAC 주소의 경우 Client에서 Switch 로 갈 때, Switch에서 Router 로 갈 때, Router 간의 전송, Router에서 Switch로 갈 때, Switch에서 Server로 갈 때 모두 바뀌는 모습을 볼 수 있습니다.
네트워크 구성 요소마다 각각의 MAC 주소가 있기 때문입니다. 이렇기 때문에 처음 Client의 2계층에서 보내는 MAC 주소와 Server에서 받을 때 요청 MAC 주소는 다르게 되고 그렇기 때문에 네트워크에서만 중복되지 않으면 문제가 없습니다.
그렇다면 어떻게 Client에서 Server까지의 MAC 주소를 알 수 있을까요?
IP주소만 알고 MAC 주소를 모를 때 ARP를 이용하여 목적지의 MAC 주소를 알아오는 것입니다.
ARP는 추후에 블로깅할 예정입니다.

참고
MAC 주소는 BIA 상태로 NIC에 할당 되어 있습니다. 그래서 NIC에 고정된 MAC 주소를 변경하기는 어렵습니다. 하지만 MAC 주소도 메모리에 적제되어 구동되므로 다른 방법을 이용해서 MAC 주소를 변경한다면 변경된 MAC 주소로 NIC를 동작시킬 수 있습니다.

MAC 주소 동작

NIC는 자신의 MAC 주소를 가지고 있고 전기 신호가 들어오면 2계층에서 전기신호를 데이터 형태로 변환하여 내용을 구분한 후 도착지 MAC 주소를 확인합니다. 도착지 주소가 자신의 MAC 주소와 다르면 그 패킷을 폐기합니다. 패킷의 목적지 주소가 자기 자신이거나 브로드캐스트, 멀티캐스트와 같은 그룹 주소라면 패킷 정보를 상위 계층으로 넘겨줍니다.

패킷의 목적지 주소가 자기 자신이거나 브로드캐스트와 같은 경우 NIC 자체적으로 패킷을 처리하는 것이 아니라 OS나 애플리케이션에서 처리해야 하므로 시스템에 부하가 작용합니다. 브로드캐스트 스톰같이 루프구조의 상태에서 패킷이 순환하게 되면 시스템에 부하가 생기게 됩니다.

참고
기본 NIC 동작 방식은 도착지 MAC 주소가 일치하지 않을 경우 자체적으로 폐기됩니다. 디버그, 분석 용도로 네트워크 전체 패킷을 수집해서 분석해야하는 경우, NIC가 정삭적으로 동작하면 MAC 주소가 일치하지 않은 경우의 패킷을 분석할 수 없습니다.
네트워크 전체 패킷을 분석해야하는 경우 무차별 모드(Promiscuous Mode)를 통해 NIC를 구성합니다. 무차별 모드의 경우 자신의 MAC 주소와 상관없는 패킷이 들어와도 분석할 수 있도록 메모리를 올려 처리할 수 있도록합니다. 대표적인 애플리캐이션인 와이어샤크가 있습니다.
와이어샤크 - 위키디피아

참고
MAC주소는 컴퓨터에 종속되는 것이 아닌 NIC에 종속됩니다. 컴퓨터는 여러 개의 NIC를 가질 수 있으므로 MAC 주소 역시 여러 개를 가질 수 있습니다. 컴퓨터 외에도 멀티레이어 스위치, 라우터 같은 복잡한 네트워크 장비에도 NIC가 여러개이고 MAC 주소 역시 여러개가 할당됩니다.


배운 점

  • OSI 7계층 MAC 주소와 IP 주소가 있는데 주소가 왜 두개씩이나 있어야하는지 이해할 수 있었다.
  • MAC 주소 체계에 대해 더 알아볼 수 있었고 랜카드가 하는 일에 대해서도 알게 되었다.

참고자료

https://icarus8050.tistory.com/103
http://www.ktword.co.kr/test/view/view.php?m_temp1=2989
https://bnzn2426.tistory.com/71

profile
열심히 공부하자

0개의 댓글