[RE] MAC 어드레스 설정에 관한 질문(VxWorks)
Reg. Date: April 16, 2002 By 주관중
>>MAC 어드레스를 setting 하려면 어떻게 해줘야 되죠?
>>이건 BSP 에서 해줘야 되나요? 아님 다른 방식이 있나요?
>>만약 BSP 에서 해줘야 한다면, config.h 파일에 define 해주고 나서 어디서 어느 파일에서 어떻게 이어드레스가 사용되나요?
>>
>>- 답변 기다릴께요.. 고수님들..^^
>
>일반적으로 MAC 어드레스면 (media access control) 이거 아닌가요..?
>제가 알고있는 맥어드레스말구 다른어드레스인지 아님 맞지만 설정을
>다시해야하는지 모르겠습니다... --;
>맥어드레스는 48bit구성되어있는 주소이죠..
>앞의 24bit는 밴더의 고유한주소이고 뒤의 24bit는 그밴더에서 부여한 고유한주소가
>됩니다. 때문에 아이피와는 달리 별다른 설정을 하지않으셔두 되는걸구 알구있는데
>꼭 설정을 해주셔야되나요...? ^^;
>
아이피래이어에서 사용되는 IP 어드래스(10.0.0.1)와 마찬가지로 이더넷에서 프래임을 전송할때 사용되는 MAC 어드래스(00:01:02:03:04:05)입니다.
위에서 말씀드린바와 같이 두개의 서로다른 어드래스는 ARP라고 하는 프로토콜을 통해 서로 아이피와 이더넷어드래스간의 변환표를 유지합니다.
이렇게 작성된 변환표(ARP 케시테이블)는 상위프로그램이 아이피패킷을 전송할때 참조하여 이더넷프레임을 작성할때 사용되며 이러한 MAC 어드래스는 제조사에서 제품을 출하할때 유니크한 값으로 설정되어 출하되며 변경되어지지 않아야 합니다.
그리고 각장비에 할당된 MAC 어드래스는 NIC에서 관리하고 각 업체는 이를 NIC에 신청하여 할당받고 이에대한 비용을 지불합니다.
어째든 이와같은 MAC 어드레스를 VXWORKS와 같은 RTOS에서는 다음과 같이 설정 할수 있습니다.
대게의 경우에는 BOOTROM에 이러한 기능이 구현되어 있습니다.
VXWORKS와 같은 경우에는 BOOTROM 프롬프트([VxWorks Boot]:)상에서 N이라는 명령을 치면 맥어드래스를 장비에 부여할수있으며 이값은 장비의 상황에따라서 플래쉬또는NVRAM에 저장됩니다.
이렇게 설정된 값을 확인할려면 N명령을 다시수행하면 볼수있습니다.
PS : N명령어는 상황에따라서 M또는 다른 문자로 변환되어 있을수 있으며 이는 bootConfig.c에 있는 bootCmdLoop()라는 함수내에 나타나 있습니다.