Проводник
|
MAC адрес и пример работы протокола ARP.
Автор:Pitoman
17.02.2008
__Как уже писалось в разделе “Адресация”- MAC адреса, что адреса канального уровня(OSI). Это говорит о том, что прежде чем устройство начнет анализировать IP адрес пришедшего пакета оно будет смотреть заголовок кадра канального уровня и на основе него определять- будет ли пакет инкапсулированный в данный кадр отправлен процессам на сетевом уровне(OSI). По этому правильное назначение МАС адресов не менее важно для работы локальной сети чем установка IP адресов.
__Напомню Вам структуру МАС адреса. Она представлена на рисунке справа. На рисунке приведен пример МАС адреса обычной сетевой карты компьютера. Для адресации ко всем компьютерам или любым другим устройствам в локальной сети- широковещательном домене(область сети, в которой все устройства имеют адреса из одной ip сети) используется специально зарезервированный МАС адрес FF-FF-FF-FF-FF-FF или 48 единиц, те МАС адрес состоит из одних единиц.
__Для чего это все может потребоваться? Рассмотрю работу протокола ARP(Address Resolution Protocol)- протокол для определения МАС адреса по известному IP адресу. Данный протокол применяется в широковещательном домене. Например, один пользователь хочет скачать фильм с компа другого пользователя из той же сети, в которой находится он сам. Он знает свой IP адрес, знает IP адрес человека, у которого хочет скачать или просто посмотреть, что лежит “в доступе” на компе у этого человека. Назовем Пользователя №1 – отправитель сообщения, Пользователь №2 – получатель сообщения. Пользователь №1 сформировал сообщение набрал IP адрес получателя в командной строке. Далее возникает вопрос, какой МАС адрес нужно подставить в поле Получателя(dst) кадра? Свой МАС адрес комп знает. Для того, что бы узнать МАС получателя комп пользуется протоколом ARP, который отправляет в локальную сеть сообщение в поле получателя кадра стоит МАС=FF-FF-FF-FF-FF-FF и в теле кадра содержится информация протокола ARP которая говорит получателю данного кадра проверить IP адрес записанный в теле данного кадра с его собственным и если они совпадают отправить Отправителю данного кадра ответ.
Этот МАС(=FF-FF-FF-FF-FF-FF) обязаны принять и обработать все устройства широковещательного домена в котором находится его отправитель. Если устройство принимает кадр, МАС адрес получателя которого не принадлежит ему самому или не является широковещательным, то он его отбрасывает не обрабатывая.(Существуют еще групповые МАС адреса, но они пока нам не нужны) После того, как комп Получателя –Пользователя №2 принимает кадр он сравнивает IP адрес вложенный в кадр со своим и так как этот IP адрес его- отправляет ответ Отправителю-Пользователю №1 ответ. В заголовке кадра в поле отправителя кадра стоит уже МАС адрес Пользователя №2, а в поле Получателя- МАС адрес Пользователя №1. В теле этого кадра находится информация протокола ARP. После того как Пользователь №1 примет ответ ARP запроса от Пользователя №2 он будет знать какой МАС адрес у Пользователя №2. Зная точный МАС адрес Пользователя №2, он сможет отправить ему сообщение, именно пользователю №2.
__Вы можете спросить- Почему нельзя использовать широковещательный МАС адрес всегда, ведь это так удобно, отправил кадр с таким адресом и получатель в твоем широковещательном домене его принял?
__Отправлять кадры с широковещательным адресом получателя, значит увеличивать нагрузку на сеть. Ведь каждому компу из Вашей широковещательной сети придется обрабатывать не только заголовок кадра, но и заголовки сетевого уровня. К тому же может возникнуть широковещательный шторм( непрерывная передача одного и того же кадра в широковещательном домене с использованием коммутаторов и образовании петель при их подключении). Ведь любой коммутатор (без настроек vlan-ов) будет вынужден отправить широковещательный кадр во все свои порты. Далее могут стоять другие коммутаторы и некоторые будут соединены в кольцо.
Это приведет к тому, что широковещательный кадр будет циркулировать между ними пока не истечет его время жизни(через некоторое время кадр проходящий по сети будет уничтожен). Конечно построение широковещательной сети по кольцевому принципу не допустимо без специальных настроек(препятствующим образованию широковещательного шторма) не допустимо. Если устройство будет постоянно генерировать широковещательные сообщения, то по сети с кольцевой топологией будут передаваться постоянно только эти сообщения и сеть “ляжет”, тк все устройства будут заниматься только передачей все возрастающего числа широковещательных кадров. Это не допустимо. По этому нужно грамотно строить локальные сети и не допускать колец. Необходимо помнить, что применяется протокол ARP использующий широковещательный МАС адрес. Этот протокол очень важен.
__Кольцевая топология будет рассмотрена в отдельной статье. Смотри Справочник.
В заключении.
__В современных коммутаторах существует функция привязки. Эта функция может работать по разному. Например, можно сделать так, что бы коммутатор принимал с определенного своего порта только определенные кадры(содержащие в поле отправителя определенный МАС адрес). Это позволяет избежать несанкционированного подключения к Вашей локальной сети.
__Напоминаю, после прохождения маршрутизатора МАС адрес отправителя и получателя меняются. Это происходит из-за того, что при отправке пакета в другую ip сеть в поле получателя кадра стоит МАС адрес шлюза отправителя кадра. Это используется для того, что бы маршрутизатор принял данный кадр и смаршрутизировал его в нужную сеть. Если сеть получателя подсоединена непосредственно к этому же маршрутизатору, то он подставляет в поле получателя кадра МАС адрес Получателя, а в поле отправителя свой МАС адрес интерфейса из сети Получателя. Это нужно чтобы Получатель отправил ответ обратно на маршрутизатор. Если сеть получателя не подсоединена к маршрутизатору Отправителя, то маршрутизатор подставляет в адрес получателя кадра- адрес следующего маршрутизатора, а в отправителя кадра свой МАС адрес из сети в которой связаны оба этих маршрутизатора.
Если возникнут вопросы или заметите неточности - пишите!
pitoman@yandex.ru
|
Справочник
|