Я читал ответ из другого поста, который я не понял, и я хотел бы получить разъяснения.

Ваши первоначальные предположения не совсем верны. То, что вы называете маршрутизатором, - это два устройства в одном - двухпортовый маршрутизатор, внутренне подключенный к многопортовому коммутатору Ethernet.

Это означает, что компьютеры напрямую подключены на уровне 2 и могут отправлять пакеты друг другу, не проходя через ядро маршрутизатора - они просто передаются между портами микросхемой коммутатора. (Маршрутизатор имеет собственный порт в коммутаторе.)

Поэтому, если вы посмотрите на пакеты, используя Wireshark, вы увидите, что они напрямую используют MAC-адреса друг друга, в то время как внешние пакеты всегда имеют MAC-адрес маршрутизатора в качестве пункта назначения.

...

   ... каждый компьютер в подсети подключен не друг к другу, а скорее к коммутатору, который затем может передавать пакеты 1 в правильный пункт назначения. Фрейм Ethernet не содержит маску подсети, так как коммутатор уже обладает этими знаниями и, следовательно, не нуждается в ней для правильного переключения.

Это опять неверно. Коммутаторы не имеют этого знания; их коммутирующее ядро работает на уровне 2 и ничего не знает о IP - оно пересылает кадры Ethernet исключительно на основе поля «MAC-адрес назначения».
____________________
1 [От редакции] Предполагается, что это «пакеты».

Источник https://superuser.com/a/1191145/337631

Как перефразированное выше может быть правдой? Я настроил достаточное количество сетевого оборудования бытового уровня, и в действительности это не так. В вашем роутере у вас есть как IP, так и MAC фильтрация и опции маршрутизации. Кроме того, при использовании программного обеспечения ВМ ваша физическая сетевая карта переходит в случайный режим, где она получает пакеты, отправленные на несколько IP-адресов, и передает правильные пакеты на ВМ и на реальный (хост) компьютер. Конечно, IP-версия 4 будет работать, даже если MAC-адрес будет как-то скрыт.

3 ответа3

4

Как перефразированное выше может быть правдой? Я настроил достаточное количество сетевого оборудования бытового уровня, и в реальности это не так. В вашем роутере у вас есть опции фильтрации и маршрутизации как по IP, так и по Mac.

Это не удивительно, и это не проблема.

Во- первых, хотя IP маршрутизаторы описаны как устройства "слой 3", это не означает , что они не могут взаимодействовать с более низкими слоями - они обычно видят весь пакет, и с его Ethernet и заголовков IP и правила брандмауэра может прекрасно соответствовать на одном или обоих.

Во-вторых, я повторю, что ваше сетевое оборудование домашнего уровня имеет множество функций: основной ЦП работает под управлением ОС и управляет маршрутизацией; аппаратный коммутатор управляет пересылкой пакетов уровня 2 между портами «LAN»; а точка доступа Wi-Fi обрабатывает, ну и Wi-Fi. Для одной и той же ОС вполне возможно настроить как ядро маршрутизации, так и подключенное оборудование для коммутации и Wi-Fi.

(На самом деле, я бы поспорил, что опция фильтрации MAC-адресов специально предназначена для точки доступа Wi-Fi - они могут разрешать или запрещать сопоставления WLAN уровня 1 на основе MAC станции. Хотя я не уверен, что это обычно применяется Wi-Fi -Fi сам чип AP, или через hostapd, работающий на основной ОС ...)

Тогда есть то, что люди называют «коммутаторами уровня 3», которые могут действовать как коммутаторы или маршрутизаторы в зависимости от потребностей - каждый отдельный порт можно перенастраивать, поэтому вы можете переключать некоторые порты (таким образом, принадлежащие к одной подсети), остальные маршрутизировать и ОС переконфигурирует микросхему коммутатора по мере необходимости.

Также при использовании программного обеспечения виртуальной машины ваша физическая сетевая карта переходит в случайный режим, где она получает пакеты, отправленные на несколько IP-адресов, и передает правильные пакеты виртуальной машине и реальной машине.

Да, это тоже не проблема. Нет ничего, что могло бы помешать ПК стать IP-маршрутизатором, мостом или их комбинацией. Большая часть программного обеспечения для виртуальных машин может работать в обоих режимах - либо подключить виртуальные машины к локальной сети на уровне 2, либо создать для них отдельную подсеть, чтобы ПК выступал в качестве маршрутизатора между ними.

(В этом отношении ПК могут стать действительно гибкими - буквально вчера я списал "броузер", который был установлен как мост, за исключением случаев, когда речь шла о пакетах IPv4, которые вместо этого были маршрутизированы ...)

Конечно, IP-версия 4 будет функционировать, даже если адрес Mac будет каким-то образом скрытым.

На самом деле, это не IP , который нуждается в L2 адресации - это слой 2 сам по себе , что делает.

Да, конечно, было бы возможно спроектировать сеть, которая заботится только об IP-адресах и использует их также для коммутации. На самом деле, я думаю, что именно так работали сети АТМ - "коммутатор" АТМ по сути выступал бы в роли самонастраивающегося маршрутизатора, но также автоматически определял, какие отдельные адреса АТМ находятся за каждым портом (как это сделал бы коммутатор).

Но на практике IP был спроектирован так, чтобы не иметь жестких зависимостей от какого-либо конкретного типа канального уровня, и в результате вы можете переносить его по чему угодно - Ethernet, FDDI, ARCnet, FireWire, почтовые голуби ... Аналогично, потому что большинство канальных уровней имели свои собственные адресация позволяла избежать любых зависимостей от IPv4, не нужно было ничего делать, чтобы одинаковые коммутаторы поддерживали IPv6 (или в этом отношении IPX, или DECnet, или AppleTalk, или NetBEUI,…) по одному и тому же Ethernet.

Таким образом, причина того, что у вас есть оба типа адресов, заключается в том, что они сознательно хранятся отдельно, и это обеспечивает большую гибкость.

(Как IPv4, так и IPv6 могут также функционировать по двухточечным каналам без необходимости какой-либо адресации L2, так как в любом случае такие каналы имеют только два направления; два простых примера - это VPN и подключения удаленного доступа.)


На самом деле, хотя это не имеет ничего общего с масками подсетей, вы можете взглянуть на IPX и DECnet - оба распространенных протокола локальной сети в первые дни до того, как IP и Интернет вступили во владение. Адреса IPX состояли из двух частей: сети и хоста, например, 618A1.0060086DD3EE , и часть хоста всегда совпадала с соответствующим MAC-адресом Ethernet. Между тем, DECnet сделал обратное - потребовалось изменить Ethernet MAC на специальный адрес, в котором был закодирован адрес узла DECnet. Таким образом, с одной стороны, вам не нужен ARP, но с другой стороны, вы были в значительной степени обязаны использовать Ethernet или что-то совместимое с ним.

1

В вашем роутере у вас есть опции фильтрации и маршрутизации как по IP, так и по Mac.

Многие домашние маршрутизаторы имеют возможность разрешать устройствам только с определенными MAC-адресами доступ к беспроводной сети, но в «маршрутизации MAC» ничего не будет.

Вот простая и грубая блок-схема того, что происходит.

Все маленькие блоки, которые являются сетевыми интерфейсами, являются сетевыми интерфейсами Ethernet . Входящие кадры должны быть Ethernet.

Также при использовании программного обеспечения виртуальной машины ваша физическая сетевая карта переходит в случайный режим, где она получает пакеты, отправленные на несколько IP-адресов, и передает правильные пакеты виртуальной машине и реальной машине.

Это пересылка MAC, но на самом деле не маршрутизация. Это то, что делает аппаратный коммутатор, и это возможно и нередко для функции, которая будет выполнена в программном обеспечении. Нет реального требования, чтобы за физическим интерфейсом отвечал только 1 MAC (именно так выглядит и работает концентратор, а не коммутатор). Термин «маршрутизация» в том виде, в каком он применяется в сети, означает пересылку между двумя отдельными сетями.

Конечно, IP-версия 4 будет функционировать, даже если адрес Mac будет каким-то образом скрытым.

IP не заботится о MAC-адресе, но уровень ниже мог бы.

В частности Ethernet, слой 2 протокола, заботится о МАС - адрес.

Так что имейте в виду, что у вас есть не просто маршрутизатор, а маршрутизатор Ethernet со встроенным 4-портовым коммутатором Ethernet .

Ethernet требует MAC-адреса. Если входящий протокол уровня 2 не является Ethernet, он вообще не будет проходить к маршрутизатору, потому что все другие интерфейсы ожидают Ethernet.

Как перефразированное выше может быть правдой?

Ethernet MAC работает при следующих допущениях:

  • Если что-то отправляет кадр с MAC-адресом назначения через интерфейс, оно достигает этого MAC.

  • Обычная ситуация, при которой это происходит, заключается в том, что все устройства A) находятся на одном физическом носителе или B) связаны с коммутатором, который просто прозрачно изучает MAC-адреса назначения, чтобы обеспечить более эффективное использование того, что на самом деле является общей средой.

Что если система назначения, к которой вы хотите подключиться, не находится в той же сети? Тогда два вышеприведенных предположения не выполняются, и Ethernet сам по себе больше не может помочь вам общаться с вашей системой назначения. Ethernet заботится только о системах на одном коммутаторе или носителе.

Вам нужны маршрутизаторы и "уровень маршрутизации" над Ethernet, и это именно то, для чего нужен межсетевой протокол (IP). IP-адреса являются явно глобальными и не заботятся о нижележащем уровне по своему дизайну - предполагается, что вы сможете получить доступ к любому заданному IP-адресу из любой точки мира, несмотря на правила брандмауэра (частные диапазоны адресов - это "взлом", введенный позже для уменьшения дефицит).

0

Так как я упоминаю слои, я начну с того, что представлю это быстро. Нижние 4 уровня модели OSI:

  • 4 - Транспорт - обычно работает с (TCP или UDP) номерами портов
  • 3 - Сеть - обычно работает с IP-адресами
  • 2 - Data Link - обычно работает с MAC-48 адресами
  • 1 - Физический - обычно работает с электрическими сигналами (например, носитель доступен или занят?) - часто обрабатывается аппаратными средствами настолько, что программному обеспечению не нужно много взаимодействовать с этим уровнем

Конечно, IP-версия 4 будет функционировать, даже если адрес Mac будет каким-то образом скрытым.

Нет, адрес MAC-48 не может быть удержан.

Таким образом, обычно получается, что компьютер, отправляющий информацию, создает IP-пакет. (Может быть IPv4 или IPv6 - не влияет на процесс, описанный здесь.) IP-пакет определяет IP-адрес устройства назначения. Это устройство может быть локальным (например, принтер в сети) или удаленным (расположенным на полпути по всему миру).

Затем компьютер создает кадр, который может быть Ethernet (для проводных подключений) или Wi-Fi (для беспроводных подключений). Кадр требует адрес MAC-48 назначения. Итак, компьютер проверяет, какой адрес MAC-48 назначения использовать. Он использует "таблицу маршрутизации", чтобы выяснить, какой адрес MAC-48 назначения использовать. Если IP-адрес назначения находится в той же подсети, компьютер будет использовать процесс преобразования Уровня 3 в Уровень 2 (ARP с IPv4, NDP для IPv6), чтобы найти MAC-48 адрес назначения устройства (например, принтера). Если IP-адрес назначения является чем-то удаленным, компьютер будет использовать такой же процесс преобразования Уровня 3 в Уровень 2, чтобы найти MAC-48 адрес назначения шлюзового устройства (обычно называемого "шлюзом по умолчанию", если только у вас нет сложная настройка, которая имеет более специфический шлюз, который могут использовать некоторые многосайтовые предприятия).

Так же, как IP-пакет содержит некоторую информацию, которую вы хотите передать, которая называется "полезной нагрузкой", кадры также имеют раздел, называемый "полезной нагрузкой". Компьютер создает кадр, который использует IP-пакет в качестве полезной нагрузки. Таким образом, полученный кадр содержит IP-пакет.

Затем компьютер отправляет кадр тому, к чему он подключен. Мы обычно называем это "переключатель". Но, для этого примера, давайте предположим, что вы на самом деле подключены к маршрутизатору.

Теперь маршрутизатор может выполнять функции, подобные "брандмауэру", путем:

  • блокирование адреса MAC-48 («Фильтрация MAC-адресов») или
  • поиск в кадре, просмотр IP-пакета и блокировка определенного IP-адреса («Фильтрация IP-адреса»), или
  • поиск в кадре, поиск IP-пакета, поиск в IP-пакете, поиск сегмента TCP или дейтаграммы UDP, поиск в этом сегменте / дейтаграмме для поиска "номера порта" и фильтрация на основе порта.

Давайте просто предположим, что нет функций межсетевого экрана, которые будут вызывать проблемы.

Устройство назначения будет смотреть на MAC-адрес назначения. Если устройство получает кадр, содержащий адрес MAC-48 назначения, который устройство не использует, то устройство будет просто игнорировать этот кадр, если устройство не работает как "мост". ("Коммутатор" - это, по сути, просто "многопортовый мост" с более чем 2 портами; устройства обычно не продаются / продаются с именем "мост"), если только устройство не конвертирует физические носители разных типов. Вместо этого многопортовые устройства обычно называют "коммутаторами", а двухпортовые устройства могут быть "расширителями".) Если устройство является мостом, то оно просто проходит вдоль кадра.

Если устройство получает кадр с адресом MAC-48 назначения, который совпадает с тем, который использует устройство, то устройство обрабатывает кадр. По сути, устройство определяет: "Я приму это", извлекает полезную нагрузку (которая является IP-пакетом) и теряет отслеживание остальных битов кадра. На этом этапе устройство перестает смотреть на детали кадра "Уровня 2" и просто обращает внимание на детали пакета "Уровня 3".

  • Если в пакете уровня 3 указан IP-адрес назначения устройства, которое просматривает пакет, то это устройство обрабатывает пакет (как правило, замечая, что пакет представляет собой TCP, UDP или ICMP; если TCP или UDP, то проверяется номер порта, чтобы увидеть какая программа должна получать данные).
  • Если пакет уровня 3 указывает другой IP-адрес назначения:
    • Если устройство настроено как маршрутизатор, оно будет маршрутизировать пакет. В основном это означает просмотр таблицы маршрутизации маршрутизатора, определение следующего пункта назначения и создание нового кадра, содержащего адрес MAC-48 следующего устройства.
    • В противном случае пакет обычно игнорируется.
      • Если пакет не игнорируется, то устройство на самом деле не соответствует нормальным ожиданиям, поэтому устройство работает в так называемом "беспорядочном режиме". (Ваш компьютер, на котором запущена "виртуальная машина", делает это, чтобы ваш компьютер передавал трафик на виртуальную машину.)

Таким образом, секция схем / программного обеспечения, которая обрабатывает входящий IP-пакет, никогда не увидит IP-пакет, пока не будет обработан кадр. Вот почему MAC-48 адрес требуется; это основной способ взаимодействия устройств с другими устройствами в локальной сети. Если у вас нет фреймов, значит, у вас нет связи, поэтому адресат никогда не получит IP-пакет. (Вот почему это следующее цитируемое предложение не имеет большого смысла для людей, которые знают, как работает каждый из этих шагов.)

Конечно, IP-версия 4 будет функционировать, даже если адрес Mac будет каким-то образом скрытым.

IP-пакеты не содержат адресов MAC-48. (Ну, конечно, они могут содержать адрес MAC-48 как часть своей полезной нагрузки, но это не является частью структуры IP-пакета.) К тому времени, когда устройство обращает внимание на детали IP-пакета, этому устройству, вероятно, больше не нужны какие-либо подробности уровня 2 (например, адрес MAC-48), и поэтому устройство, возможно, уже забыло эти детали.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .