این مقاله را به زبان دیگر ببینید:
MAC مخفف Media Access Control، یک آدرس ۴۸ بیتی یا ۶۴ بیتی فزیکی منحصر به فرد برای هر یک از deviceهای شبکه میباشد. MAC Address بر روی NICهای شبکه یا کارتهای شبکه تعریف میشود. MAC یک آدرس Burn-in میباشد یعنی توسط کارخانه سازنده بر روی سختافزار حک شده.
کارخوانه سازنده کارتهای شبکه نیز اجازه ندارد هر MAC را به دلخواه خود بر روی NICهایی که تولید میکند قرار دهد. تصور کنید تمامی کارخانههایی که قصد داشتند کارتهای شبکه تولید کنند بصورت رندوم MAC انتخاب میکردند.
اگر چنین اتفاقی رخ میداد احتمال اینکه در یک شبکه کامپیوتری دو کارت شبکه یک MAC Address داشته باشند، افزاریش مییافت و در نتیجه دو device در شبکه شما دارای MAC Address و آدرسهای فیزیکی یکسانی میشدند.
پس راه حل چیست؟
در دنیا یک سازمانی بنام IEEE وجود دارد که یکی از کارهای این سازمان این است که تمامی MAC Addressها را مدیریت کند. IEEE مخفف Institute of Electrical and Electronics Engineers هست و در واقع کار استانداردسازی MAC Address را انجام میدهد.
استانداردی که سازمان IEEE برای MAC Address در نظر گرفته است EUI-48 نام دارد. که این استاندارد جایگزین استانداردهای MAC-48 و EUI-64 شده است. هر دستگاهی مانند کامپیوترهای خانگی (PC)، لبتاب، پرینتر، تلفن و گجتهای هوشمند، مودمهای خانگی و… که قرار است ئر بستر شبکه فعالیت کنند باید از این استاندارد پیروی کنند.
EUI-48 به معنای Extended Unique Identifier برای ۴۸ بیت میباشد. استانداردهای EUI-48 و MAC-48 تقریبا شباهت زیادی به یکدیگر دارند.
MAC Address دارای ۴۸ بیت میباشد که همیشه ۲۴ بیت از آن را همین سازمان IEEE برای کارخانهها تعیین میکند. ۲۴ بیت دوم توسط کارخانه تعیین میشود. ۲۴ بیت به معنای ۲۴ تا ۰ و ۱ میباشد. یعنی تعداد NICهایی کخه یک کارخانه با ۲۴ بیت میتواند تولید کند برابر معادل ۱۶.۷۷۷، ۲۱۶ عدد خواهد بود.
به قسمت اول MAC Address که توسط IEEE تعیین میشود OUI میگویند و به ۲۴ بیت دوم MAC Address که توسط کارخانه تولید کننده روی سختافزار حک میشود، Device ID میگویند. همچنین آدرس فیزیکی MAC دارای یک ساختار نوشتاری نیز میباشد.
MAC Address بصورت هگزادسیمال (hexadecimal) نوشته میشود و دوبهدو با یک کاراکتر «:» از هم جدا میشوند. در هگزادسیمال اعداد پایه ۱۶ میباشند. یعنی در این سیستم از نمادهای ۰ تا ۹ برای مقادیر ۰ تا ۹ مورد استفاده میشود و از نمادهای A تا F برای مقادیر ۱۰ تا ۱۵ استفاده میشود.
پس از ۰ تا ۱۵ ارزش ارقامی میباشند که هگزادسیمال توسط آن ایجاد میشود. شما باید تبدیل ارقام باینری، هگزادسیمال و دسیمال رابه یکدیگر بلد باشید.
Hex |
Binary |
Decimal |
0 |
0000 |
0 |
1 |
0001 |
1 |
2 |
0010 |
2 |
3 |
0011 |
3 |
4 |
0100 |
4 |
5 |
0101 |
5 |
6 |
0110 |
6 |
7 |
0111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
A |
1010 |
10 |
B |
1011 |
11 |
C |
1100 |
12 |
D |
1101 |
13 |
E |
1110 |
14 |
F |
1111 |
15 |
MAC های 64 بیتی
در برخی از شبکهها که از IPv6 استفاده میشود، برای هر یک از Deviceهای شبکه از MAC Addressهای ۶۴ بیتی استفاده میشود. دلیل استفاده از این نوع از آدرسهای فیزیکی این میباشد که انتظار میرور MAC Addressهای ۴۸ بیتی یک روزی تمام شوند.
با در اختیار داشتن ۴۸ بیت (یعنی ۴۸ عدد ۰ و ۱ در کنار یکدیگر) میتوان ۲ به توان ۴۸ حالت مختلف تولید نمود. این یعنی شما در مورد MAC Addressهای ۴۸ بیتی قادر خواهید بود 281,474,976,710,656 حالت مختلف داشته باشید.
در مورد MAC Addressهای ۴۸ بیتی پیش بینی میشود تا سال ۲۱۰۰ میلادی ما مشکل کمبود آدرسهای فیزیکی بر بستر تکنولوژی Ethernet را نخواهیم داشت ولی با این وجود در برخی از Deviceهای شبکه مشکل کمبود این آدرسها از قبل پیشبینی میشود.
بعلاوه زمانی که تمامی شبکهها از IPv4 به IPv6 کوچ کنند احتمالا ما دیگر با MAC Addressهای ۴۸ بیتی مواجه نخواهیم بود. با استفاده از ۶۴ بیت ما 18,446,744,073,709,551,616 حالت مختلف خواهیم داشت.
شماره گذاری MAC Address
برای تعیین MAC Address از دو شیوه شمارهگذاری مختلف بنام UAA (Universally Administered Address) و LAA (Locally Administered Address) استفاده میشود.
Universally Administered Address
UAA همان آدرس فیزیکی میباشد که کارخانه بر روی سختافزار یک NIC حک میکند. یعنی در واقع UAA شامل MAC Address پیش فرض یک سختافزار در بستر شبکه میباشد و همانطور که بالاتر توضیح دادیم، ۲۴ بیت آن، شامل OUI توسط IEEE مشخص میشود و ۲۴ بیت دیگر آن نیز بنام Device ID توسط خود کارخانه مشخص میگردد.
OUI مخفف Organizationally Unique Identifier و به معنای شناسهی منحصر بفرد سازمانی میباشد. IEEE برای اولین مرتبه به هر شرکت یک OUI اختصاص میدهد و در صورتی که تمامی MACهای این OUI تمام شد، شرکتها میتوانند با پرداخت یک هزینه به IEEE، OUI جدیدی خریداری و از آن برای Deviceهای خود استفاده نمایند.
از این رو از طریق ۲۴ بیت اولیه MAC Address یک سختافزار میتوان پی برد که مربوط به چه شرکتی میباشد. من میخواستم OUI چندین شرکت را برای شما لیست کنم ولی متاسفانه تعداد این OUIها برای هر شرکت زیاد میباشد.
شما از طریق سایت ouilookup میتوانید متوجه شوید سختافزار شما توسط چه شرکتی تولید شده است یا اینکه هر کمپانی چه OUIهایی را در اختیار دارند.
Locally Administered Address
LLA آدرسی میباشد که مقدار MAC را تغییر میدهد. در صورتی که LLA یک Device تغییر کند، آن Device از آن به بعد از آن مقدار بعنوان MAC Address در شبکه استفاده خواهد نمود. احتمال کمی وجود دارد که در شبکهها MAC Address دو Device با هم دیگر یکی شود.
تغییر LLA و تغییر MAC Address معمولا در شبکههای کامپیوتری کاربردهای دیگری دارد. ولی اگر شما به هر دلیل در شبکهی کامپیوتری خود MAC Addressهای مشابهی را مشاهده نمودید کافی است LLA یکی از این Deviceها را تغییر دهید.
برای مثال در صورتی که کامپیوتر یا سرورهای شما یک سرویس خاص را با استفاده از MAC Address دریافت کنند، ممکن است شما نیاز به تغییر MAC و آدرس فیزیکی دستگاه خود داشته باشید. یا ممکن است در برخی از سازمانها دسترسی به یک سرویس خاص تنها از طریق MAC خاصی امکانپذیر باشد.
دلایل دیگری هم برای تغییر MAC Address وجود دارد که بسیاری از این دلایل، مربوط به مسائل امنیتی هستند و ما در آینده در مورد آنها بحث خواهیم نمود. همان طور که از نام LAA مشخص است این نوع از MAC Address برای شبکههای محلی (Locally) استفاده میشود.
معنی MAC Address
MAC Addressها علاوه بر اینکه مشخص میکنند چه شرکتی Deviceهای NIC را تولید نموده، میتوانند معانی دیگری نیز داشته باشند. برای مثال شما از روی MAC Address میتوانید متوجه شوید که unicast یا multicast هست.
به هر ۸ بیت یک بایت یا یک octet گفته میشود. بنابراین MAC Address 48bit شامل 6byte یا ۶ octets میباشد. بیت هشتم از اولین octet یک MAC Address تعیین کننده unicast یا multicast بودن آن MAC Address میباشد.
بطوری که در صورتی که بیت هشتم از اولین octet برابر ۰ باشد، آن MAC Address، unicast است و اگر بیت هشتم از اولین octet برابر ۱ باشد، آن MAC Address، multicast میباشد.
همچنین بیت هفتم از همین octet نیز تایین کننده این است که یک MAC Address بصورت جهانی تنظیم شده یا بصورت local یا محلی تنظیم شده است.
منظور از جهانی یا محلی بودن یک MAC Address این است که این MAC Address توسط Admin شبکه تنظیم شده است یا بصورت پیشفرض توسط کارخانه تولید کننده تنظیم گردیده است.
در صورتی که MAC Address توسط Admin شبکه تنظیم یا ویرایش شده باشد؛ بیت هفتم از اولین octet آن برابر ۱ خواهد بود و در واقع این نوع از MAC Addressها از نوع LAA میباشند. در صورتی که بیت هفتم از اولین octet برابر صفر باشد این MAC Address از نوع UAA هست.