Какво точно е MAC адрес използван?
Всеки хардуер на вашата локална мрежа има MAC адрес в допълнение към IP адреса, който му е зададен от локалния рутер или сървър. Какво точно е този MAC адрес?
Днешната сесия за въпроси и отговори идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общността уеб сайтове за въпроси и отговори.
Въпроса
Читателят на SuperUser Вишну Вивек е любопитен за MAC адресите и тяхната функция:
Разбирам, че IP адресите са йерархични, така че маршрутизаторите в интернет знаят в коя посока да изпратят пакета. При MAC адресите няма йерархия и по този начин пренасочването на пакети не би било възможно. Така че, MAC адресите не се използват за прехвърляне на пакети.
Не мисля, че е там без причина. Така че моят въпрос е, къде точно се получава MAC адрес по време на прехвърляне на пакети?
Къде наистина? Каква е специфичната функция на MAC адреса?
Отговорът
Сътрудникът на SuperUser Werner Henze предлага известна представа за функцията на MAC адреса:
За какво се използват MAC адресите?
MAC адресите са основите на ниско ниво, които правят мрежата ви в мрежа.
Всяка от мрежовите карти има уникален MAC адрес. Пакетите, изпратени по Ethernet, винаги идват от MAC адрес и се изпращат на MAC адрес. Ако мрежовият адаптер приема пакет, той сравнява MAC адреса на пакета с MAC адреса на адаптера. Ако адресите съвпадат, пакетът се обработва, в противен случай се отхвърля.
Има специални MAC адреси, например ff: ff: ff: ff: ff: ff, което е адресът за излъчване и адресира всеки мрежов адаптер в мрежата.
Как IP адресите и MAC адресите работят заедно?
IP е протокол, който се използва на слой над ethernet. Друг протокол например е IPX.
Когато компютърът ви иска да изпрати пакет към някакъв IP адрес x.x.x.x, тогава първата проверка е дали адресът на местоназначението е в същата IP мрежа като самия компютър. Ако x.x.x.x е в същата мрежа, тогава IP адресът на дестинацията може да бъде достигнат директно, в противен случай пакетът трябва да бъде изпратен на конфигурирания маршрутизатор..
Досега нещата изглежда са се влошили, защото сега имаме два IP адреса: единият е целевият адрес на първоначалния IP пакет, а другият е IP на устройството, на което трябва да изпратим пакета (следващия хоп, или финалът) дестинация или маршрутизатор).
Тъй като Ethernet използва MAC адреси, изпращачът трябва да получи MAC адреса на следващия хоп. За това се използва специален протокол ARP (протокол за резолюция на адреса). След като изпращачът е изтеглил MAC адреса на следващия хоп, той записва този MAC адрес в пакета и изпраща пакета..
Как работи ARP?
Самата ARP е протокол над ethernet, като IP или IPX. Когато дадено устройство иска да знае MAC адреса за даден IP адрес, той изпраща пакет към MAC адреса на разпръскването, като пита "Кой има IP адрес yyyy?" Всички устройства получават този пакет, но само този с IP адрес yyyy ще отговори с пакет “Това съм аз”. Устройството, което пита, получава отговора и сега знае, че MAC адресът на източника е правилният MAC адрес, който да се използва. Разбира се, резултатът ще бъде кеширан, така че устройството не трябва да разрешава MAC адреса всеки път.
Routing
Почти забравих да спомена: няма маршрутизация на базата на MAC адреси. Ниско ниво на Ethernet и MAC адреси могат да достигнат само всяко устройство на един и същ мрежа (кабелна или безжична). Ако имате две мрежи с маршрутизатор, между които не можете да имате устройство в мрежа А, изпратете пакет към MAC адреса на устройство в мрежа Б. Никое устройство в мрежа А няма MAC адреса на устройството в мрежа Б, така че пакет към този MAC адрес ще бъде отхвърлен от всички устройства в мрежата А (също и от маршрутизатора).
Маршрутизирането се извършва на ниво IP. Просто видях, че рутерът просто прави това, което описах по-горе в раздела „Как IP адресите и MAC адресите работят заедно?“. Маршрутизаторът ще получава пакети за собствения си MAC адрес, но за различен IP адрес. След това той ще провери дали може директно да достигне целевия IP адрес. Ако е така, той изпраща пакета до целта. В противен случай самият маршрутизатор има конфигуриран нагоре маршрутизатор и ще изпрати пакета на този рутер.
Разбира се, можете да конфигурирате няколко маршрутизатора. Вашият домашен маршрутизатор ще конфигурира само един изходящ маршрутизатор, но в интернет мрежата големите маршрутизатори имат големи таблици за маршрутизиране, така че те знаят най-добрите начини за всички пакети..
Други случаи на употреба за MAC адреси
- Мрежовите комутатори съхраняват списък с MAC адресите, които се виждат във всеки порт и препращат пакети към портовете, които трябва да видят пакета.
- Точките за безжичен достъп често използват MAC адреси за контрол на достъпа. Те позволяват достъп само до известни устройства (MAC адрес е уникален и идентифицира устройства) с правилната парола.
- DHCP сървърите използват MAC адреса, за да идентифицират устройствата и дават на някои устройства фиксирани IP адреси.
Имате ли какво да добавите към обяснението? Звукът е изключен в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.