일부 Mac 주소가 자주 반복되는 이유는 무엇입니까?


12

내 응용 프로그램은 클라이언트 컴퓨터가 실행되는 클라이언트 컴퓨터의 mac 주소를 쿼리하여 서버에 저장합니다. 서버 DB를 분석했을 때 일부 mac-address가 100-150 번 반복되는 것을 발견했습니다. 즉, 관련이없는 다른 조직의 다른 클라이언트 컴퓨터에는 동일한 mac이 있습니다. 따라서 일부 맥 주소는 "인기"입니다. 그들은 어떻게 든 구글 결과에 나타납니다. 예 : 58-2C-80-13-92-63. 왜 그런가요?

세부 정보 : 내 응용 프로그램은 Windows에서 실행되고 클라이언트 컴퓨터는 다른 조직에 속하며 다른 도시에 있습니다. 그리고 내 응용 프로그램은 일부 통계 (예 : mac-addresses)를 저장하는 웹 서버에 연결합니다.


1
글쎄, 그것은 찾을 때 '공급 업체를 찾을 수 없습니다'오류가 발생합니다. 아마도 라우터 / VPN / 방화벽에서 소프트웨어 파생 MAC, 아마도 일종의 내부 NAT 형태 일 것입니다.
Chopper3

공급 업체의 잘못된 관리 한때는 무선 MAC이 "01 : 23 : 45 : 67 : 89 : ab"인 D-Link 라우터를 가지고있었습니다.
Waleed Hamra

MAC을 변경하지 않고 가상 장치 구성 만 복사 / 붙여 넣기 가능 (이전 버전의 xen의 경우 가능)
Dennis Nolte

Xen의 새 버전에서도 VM NIC를 만들 때 새 MAC을 생성하도록 허용하지 않는 경우 (예를 들어 누군가가 시스템 템플릿을 사용하는 경우) 가능합니다. 무작위 스크립트가없는 단일 템플릿과 virsh 만 사용하는 경우 libvirt를 사용하여이를 수행 할 수도 있습니다.
스풀러

답변:


17

이 예에서 특히 ( 58-2C-80-13-92-63)는 Huawei에서 만든 USB 이더넷 칩입니다. 그들이 게으르고 MAC을 재사용하는 것처럼 보입니다. Google의 예 :

[50413.229125] cdc_ether 2-1:1.0: eth1: register 'cdc_ether' at usb-0000:00:1d.7-1, CDC Ethernet Device, 58:2c:80:13:92:63

[  122.660069] huawei_cdc_ncm 3-3:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:14.0-3, Huawei CDC NCM device, 58:2c:80:13:92:63

다른 하나는 VM이 ​​전달되는 경우 일 수도 있습니다. 그러나 다른 사람들이 말했듯이 가장 가능성이 높은 설명은 저렴한 하드웨어라는 것입니다.

이를 방지하려면 MAC이 전 세계적으로 고유한지 또는 로컬로 관리되는지 확인하십시오 ( https://en.wikipedia.org/wiki/MAC_address#Address_details).

58:2c:80:13:92:63이론적으로 주소 는 전 세계적으로 고유 해야 합니다.

0x58 → 1011000

그러나 VM의 MAC (예 :) 58:2c:80:13:92:63은 다음과 같지 않습니다.

0x52 → 1010010

더 많은 예 : 0C-5B-8F-27-9A-64, 02-00-4C-4F-4F-50, 36-4B-50-B7-EF-2D, 02-0C-E7-0B-01- 02, 00-16-76-C9-4E-DE. 첫째-화웨이처럼 보이며 전 세계적으로 고유 해야 합니다. (화웨이의 사람들은 LAN 충돌을 두려워하지 않습니까? -serverfault.com/questions/462178/… ) 두 번째는 루프백입니다. 기타-나는 정확히 무엇을 모른다. . 일반 맥 고유성에 (그들이 프로그램 설정되지 않은 경우에도) 신화 :(이다 - 첫 번째 8 진수의 두 번째 최하위 비트는 내가 볼 수있는 유일한 것은 1 또는 0이 될 수 있습니다
마이크 Siomkin

또 다른 이상한 점은 코드에서 루프백을 필터링한다는 것입니다.if (adapter.NetworkInterfaceType == NetworkInterfaceType.Tunnel || adapter.NetworkInterfaceType == NetworkInterfaceType.Loopback || adapter.NetworkInterfaceType == NetworkInterfaceType.Unknown) continue;
Mike Siomkin

-2

로컬 네트워크에서만 다른 Mac 주소를 볼 수 있습니다. IP 패킷이 라우터를 통과하면 소스 호스트의 mac 주소가 라우터 출력 인터페이스의 mac 주소로 변경됩니다. 따라서 동일한 mac-address를 사용하여 많은 IP 주소 (로컬 네트워크의 스위치가 아님)를 볼 수 있습니다.


아니요, 이것이 작동하는 방식이 아닙니다. 이들은 다른 OSI 계층입니다. 원격 IP가 라우터를 통해 사용자에게 도달하면 라우터의 (로컬) IP 만 해당 MAC과 연결합니다. 라우터가 마치 인터넷과 같은 다리 역할을하는 것처럼 보이는 매우 이국적인 설정을 상상할 수 있습니다. 단일 MAC
Hagen von Eitzen

네 말이 맞아 다른 OSI 계층이 있습니다. 그러나 라우터는 낮은 이더넷 계층에서 패킷을 가져온 다음 IP 계층에서이 패킷으로 수행 할 작업을 결정한 다음 낮은 이더넷 계층에서 다음 대상으로 다시 보냅니다. 이것이 라우터가 자체 맥 주소로 패킷을 보내는 이유입니다. 물리적 이더넷 계층에는 라우팅 프로토콜이 없습니다.
Mikhail Khirgiy 2012 년

실제로 IS-IS는 이더넷 계층에서 바로 실행되는 라우팅 프로토콜입니다. 그러나 시스템이 게이트웨이의 MAC 주소 를 가진 것으로 게이트웨이 넘어 도달 가능한 시스템을보고하지는 않습니다 .
MikeyB 2012 년


1. 내가 말했듯이, 다른 도시의 클라이언트 (하나의 LAN이 아닌)에서 동일한 Mac을 얻습니다! 2. 내 데스크탑 클라이언트 앱은 실행되는 컴퓨터 어댑터의 mac을 쿼리 한 다음 SOAP 웹 서비스를 사용하여 서버로 보냅니다. 라우터의 맥이 될 수 없습니다.
Mike Siomkin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.