Как организовать сеть, зная MAC-адреса (ARP-протокол)?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
shyub
постоялец
Сообщения: 112
Зарегистрирован: 25.11.2014 22:15:19

Как организовать сеть, зная MAC-адреса (ARP-протокол)?

Сообщение shyub »

Здравствуйте!
Может кому-то приходилось решать подобную задачу: к интернету подключены главный ПК и терминалы (в качестве терминалов могут быть ПК или устройства на микроконтроллерах. С последними будет сложнее, т.к. может не оказаться готовых библиотек). Необходимо с терменалов передавать на главный и запрашивать с него данные. Всё это может быть удалено друг от друга на большие расстояния. MAC-адреса известны, IP в процессе работы могут изменяться (сотовой связи). На крайний случай, что не очень желательно, для главного ПК можно приобрести статический IP адрес. Знаю, что существует ARP-протокол, но использовать его не приходилось.
Ранее делал что-то подобное на основе GSM передачи данных, но сейчас такой вариант не подходит (дорого, при одновременном обращении доступ получает только один терминал, при загрузке сети неустойчивая связь и т.п.).
Буду благодарен за совет, ссылку, литературу, код.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

IPv6 - там, вроде, есть шанс на глобальные адреса на основе MAC.
Все остальные протоколы вам через интернет никто не скоммутирует (только, если вложив в IP-протокол).

Добавлено спустя 15 минут 37 секунд:
IPv4 - можно обновлять сведения об IP-адресе сервера через доступный для всех участников ресурс: dyndns, noip и т.п., через файл на ftp или облаке, e-mail.
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

В локальной сети можно использовать протокол IPX.
https://ru.wikipedia.org/wiki/IPX
на удаленных сетях можно сделать шлюзы (IPX) <-> (TCP/IP) <====> (TCP/IP) <->(IPX)

Добавлено спустя 4 минуты 43 секунды:
шлюз(gateway) через TCP
https://github.com/intangir/ipxnet

описание протокола и пример
https://xakep.ru/2000/07/17/10113/

Добавлено спустя 41 минуту 27 секунд:
Компонент программирования на IPX для Delphi
https://hpc.name/downloads.php?do=file&id=477

Вообще можно ip пакеты посылать. но тогда нужно прослушивать все входящие пакеты чтобы принять нужный пакет.
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

Без IP вряд ли получится, и статический IP для сервера нужен. Но если есть много свободного времени, то можете поэкспериментировать с отправкой ethernet-пакетов. Но привыкайте к мысли, что MAC это не адрес, а серийный номер. И что у IP клиента можно забыть сразу же после отправки ответа.
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Если линукс, то можно еще в сторону TOR посмотреть.
MysticCoder
постоялец
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Сообщение MysticCoder »

на сервере dyndns, no-ip, или что то подобное, ну или как вариант сервер может публиковать свой ип через сервисы типа icq, telegram, mail, файл на бесплатном сайте, etc. ну а терминалы уже по tcp\udp стучатся к серваку. если скорость не критична, то можно вообще все общение построить на сторонних сервисах, например, сервер или терминалы, неважно, оставляют инфу друг другу на сайте через пхп скрипт. библиотеки http для микроконтроллеров вроде имеются.
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

dyndns и тому подобное - это когда много свободного времени и мало денег. А для работы только простое и надежное решение - статический IP. Если вы не знали, сотовые операторы могут менять IP клиента в любой момент просто так, чтоб жизнь малиной не казалась. А МТС даже статические меняла без предупреждения.
shyub
постоялец
Сообщения: 112
Зарегистрирован: 25.11.2014 22:15:19

Сообщение shyub »

Есть вот такая программа http://acerfans.ru/faq/1307-kompyuternye-seti-lokalnaya-set-cherez-internet.html, которая позволяет организовать сеть без знания IP собеседников. Собственно поэтому и возник вопрос, как они это делают?
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

это аналогично teamviewer, Ammyy Admin и др. только под VPN.
Есть сервера которые организуют соединения. Клиенты которые имеют серые адреса, спокойно через интернет подключаются друг с другом.
(комп №1) - серая сеть - (NAT) - интернет - (Сервер для сервиса Hamachi) - интернет - (NAT) - серая сеть - (Комп №2)
Последний раз редактировалось olegy123 30.08.2017 21:37:21, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

shyub писал(а):как они это делают?

Используют стандартную сеть windows с IP адресами.

Там в их статье (по приведённой вами ссылке) есть описание. Начинается с фразы: "Настройка этой сети полностью аналогична локальной."
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

если тебе нужно связать две приватные (серые сети) через интернет - то для этого существует VPN.

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

Добавлено спустя 20 минут 13 секунд:
вообще то если у вас есть приватные данные - а то кто сделал Hamachi? Кто предоставляет свои ресурсы на халяву?
АНБ, Моссад, Ми-6, ОАО ФСБРФ, Китайская Компартия, корпарации по производству шампуней, отравляющих веществ и ГМО, Сицилиская Cosa Nostra, Неаполитанская Каморра, Trump Tower, Trump Tower Moscow, Сатанисты, Христяне ищущие Сатанистов, Фашисты, ЛГБТ, Фетешисты, Ватники, Навальнята-школьники, СБУ, Правый сектор, СССР, ЦРУ, ГРУ, ФБР, ГИББД, сам Путин, ФРС, ЦБ, Масоны, Иллюминаты, Обама, инопланетяне - теперь может спокойно лазить по вашей сети, а может иметь доступ к вашему компу..

ленивый админ - находка для АНБ.
Alek_Aaz
новенький
Сообщения: 40
Зарегистрирован: 26.11.2007 03:13:06

Сообщение Alek_Aaz »

MAC адреса не прокатят. Они "работают" только внутри локальной сети (через коммутаторы), через интернет они теряются, маршрутизаторы подставляют свои маки.
Стандартный путь - иметь сервер регистрации девайсов с постоянным Ip адресом. Девайс шлет ему свой УИД (уникальный идентификатор девайса, ну например тот же мак-адрес) сервер определяет его ip и заносит его в таблицу соответствия ip-uid
Далее он сообщает девайсу ip адрес нужного ему сервера и устройства начинают обмен между собой, либо сервер регистрации может выступать в качестве proxy-сервера(инфа с девайса идет на прокси а уже потом на сервер).
Чтобы с одного ip адреса работало несколько терминалов их нужно разносить по портам. У TCP протокола указывается еще и порт. Т.е. таблица соответствия на сервере регистрации будет такой uid-ip-port
Вообще GSM тормозные каналы, по ним не стоит передавать объемные данные или слишком часто слать пакетики... LTE лучше.
И еще, есть прикольная програмулина Wireshark - перехватчик пакетов по сети, полезное средство для отладки программы. Дает понимание как все работает 8)
Ответить