Получение MAC-адреса через туннель

Получение MAC-адреса через туннель

В настоящее время я работаю над добавлением собственного программного обеспечения для обеспечения интернет-поддержки старой игры MS-DOS. Поскольку моей основной средой является Linux, я использую DOSBOX из Linux и подключаю свое интернет-соединение к DOSBOX в соответствии с инструкциями отсюда:настройка DOSBOX для интернета

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

Затем я загружаю пакет mTCP DOS Internet Suite и могу использовать его инструменты ping и htget для получения домашней страницы Google, но когда я анализирую пакеты в tcpdump Unix, я не вижу первых 14 байт кадра Ethernet и даже не вижу пакета ARP, а в пакете mTCP нет таблицы ARP.

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

Итак, вернемся к моему собственному программному обеспечению... Я могу подключиться к своему хосту (Linux) из DOSBOX (мы имеем дело с одним и тем же компьютером), если использую IP-пакеты, но у меня возникают проблемы с отправкой ARP-пакета (по крайней мере, tcpdump этого не показывает).

Вот данные, которые я отправляю по сети в следующем порядке:

FF FF FF FF FF FF 00 02 12 00 56 34 08 06 00 01 08 00 06 04 00 01 00 02
12 00 56 34 C0 A8 07 02 FF FF FF FF FF FF 08 08 08 08 

И я добавляю нули к данным до тех пор, пока размер данных не станет 60 байт.

DOSBOX идентифицирует мой адрес Ethernet через драйвер ETHERSLIP как: 00:02:12:00:56:34

Пока работает DOSBOX, я заранее создал туннель, и информация для него следующая:

sl0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1524
    inet 192.168.7.1  netmask 255.255.255.252  destination 192.168.7.2
    adaptive  txqueuelen 15240  (Adaptive Serial Line IP)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Есть ли способ настроить это так, чтобы при отправке запроса ARP в сеть в DOSBOX он отображался как запрос ARP (а не как ничего) при использовании tcpdump в Linux?

решение1

MAC-адреса видны или имеют значение только в локальной сети уровня 2. Кроме того, не все сети уровня 2 используют MAC-адреса, некоторые используют другую адресацию, а некоторые не используют адресацию. Из тех, которые используют MAC-адреса, некоторые имеют 48-битные, а некоторые — 64-битные MAC-адреса. Маршрутизаторы удаляют кадр уровня 2, содержащий MAC-адресацию, и создают новый кадр для следующего интерфейса. Пакет может проходить через различные протоколы уровня 2 от источника к месту назначения, и у вас нет возможности узнать, какие протоколы используются или какие используют MAC-адресацию или нет на пути.

Соединение DOSBOX не использует протокол, который использует MAC-адресацию, поэтому оно не использует ARP. Оно используетСОСКАЛЬЗЫВАТЬ, который является протоколом точка-точка, как PPP, который не использует MAC-адресацию (или любую другую адресацию уровня 2, поэтому ARP отсутствует. Для SLIP, как и для PPP, существует только две возможные конечные точки, поэтому адресация уровня 2 не нужна и не используется. Весь трафик с одного конца идет на другой конец без использования адреса.

Связанный контент