Подключение напрямую к другому компьютеру, зная только MAC-адрес?

13

Насколько я понимаю, ARP преобразует IP-адрес в MAC-адрес, а затем компьютер использует MAC-адрес для установления прямого соединения.

Если я уже знаю MAC-адрес компьютера, к которому я хочу подключиться, возможно ли подключиться к нему напрямую (без маршрутизатора)? Есть ли пример этого?

Colin
источник
Конечно. Но даже без маршрутизатора вы можете назначать IP-адреса каждому компьютеру отдельно и использовать IP-протоколы между ними - либо через концентратор, либо через прямое соединение .
svidgen

Ответы:

12

Если я уже знаю MAC-адрес компьютера, к которому я хочу подключиться, возможно ли напрямую подключиться к нему? Есть ли пример этого?

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

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

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

Калеб
источник
1
Благодарю. Как именно сетевой интерфейс знает, как подключиться к другому интерфейсу? Интерфейсы отправляют фреймы маяка, как это делают беспроводные маршрутизаторы?
Колин
1
Это не знает. Это в основном, как работает Ethernet. Когда одному узлу в сети есть что сказать, он сначала слушает, чтобы увидеть, отправляет ли кто-то еще что-то, а если нет, то просто помещает сообщение в сеть, чтобы кто-нибудь его услышал. Если какой-то другой узел запускается в одно и то же время, они оба обнаруживают коллизию, прекращают разговор, немного ждут и пытаются снова.
Калеб
1
@Colin: На уровне MAC сетевой интерфейс может подключаться только к интерфейсам в той же (под) сети. Для связи с машинами за пределами локальной сети маршрутизаторы используются для передачи пакетов из одной сети в другую и для достижения места назначения между вами и удаленным компьютером могут находиться несколько маршрутизаторов.
Барт ван Инген Шенау
1
Правильно. Так как (подс) -сеть создается или определяется? Все ли компьютеры должны подключаться к одному и тому же концентратору / коммутатору / маршрутизатору? Или есть способ создать сеть без них?
Колин
@Colin Зависит от физического уровня - иногда все машины подключены к одному концентратору, как в 10baseT и аналогичных; иногда они все подключены к одному и тому же физическому проводу, как в 10base2, он же «тонкая сеть», иногда они вообще не подключены, но все общаются с тем же концентратором, что и в WiFi. Но существует множество различных сетевых технологий, и детали меняются от одной к другой, поэтому, хотя ethernet - это хорошая модель для вашей головы, не думайте, что это единственный способ сделать что-то.
Калеб
3

Вроде.

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

На уровне IP каждая машина имеет (как минимум) один IP, в (как минимум) одну подсеть. Он также может (и обычно имеет) иметь «шлюз по умолчанию» (то есть IP-адрес, через который он отправляет все пакеты куда-либо, кроме локальной подсети).

Абстрактно, пакет, предназначенный для веб-порта, выглядит примерно так:

[заголовок ethernet] [заголовок ip] [заголовок tcp] [полезная нагрузка]

Заголовок Ethernet содержит различную управляющую информацию, включая MAC-адреса источника и назначения в локальной сети.

Заголовок IP содержит различную управляющую информацию, например, IP-адрес источника и назначения и инкапсулированный протокол (в данном примере TCP).

Заголовок TCP содержит различную управляющую информацию, различные флаги (какая это часть сеанса, какой порядковый номер, порты TCP источника и назначения, ...)

Полезная нагрузка просто передается по протоколу TCP и «заботится только приложение».

ARP используется, когда кто-то в локальной сети хочет отправить IP-пакет на IP-адрес, для которого у него нет MAC-адреса, и он в основном транслируется на уровне Ethernet, говоря «у кого есть IP-адрес, бла?».

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

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

Vatine
источник
0

Этот пост довольно старый, но я не чувствую, что он получил правильный ответ.

ЕСЛИ вы можете подключиться к устройству, с которым вы знаете MAC, в той же сети (в идеале - кроссовер). Вы можете назначить IP-адрес MAC, а затем получить доступ к IP-адресу следующим образом:

Системы Microsoft Windows Windows требуют тире "-" между каждой цифрой MAC-адреса (Ethernet-адрес).

arp -s 192.168.1.2 00-80-77-31-01-07
ping 192.168.1.2

UNIX / Linux В системах UNIX и Linux требуется двоеточие ":" между каждой цифрой MAC-адреса (Ethernet-адрес).

arp -s 192.168.1.2 00:80:77:31:01:07
ping 192.168.1.2

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

Крис
источник