Webify встроенный контроллер на основе Linux через сотовую сеть - PullRequest
0 голосов
/ 19 февраля 2011

Нужно базовое направление в следующем проекте.

Существует контроллер на основе Linux, который выполняет некоторые функции промышленного контроля. Коробка оснащена сотовым модемом и способна выходить в интернет через сотового оператора. Сотовая связь используется потому, что контроллер в основном устанавливается там, где нет кабелей или радиосвязи ближнего действия. Места, где солнце обычно не светит:)

Задача состоит в том, чтобы позволить интернет-клиентам подключаться напрямую к коробке для некоторых базовых функций управления / мониторинга. Проблема в подключении - как клиенты обнаружат коробку? - Я бы хотел, чтобы бокс действовал как сервер (если это возможно). Предполагая, что сотовый оператор позволяет устройству подключаться к Интернету, не обязательно означает, что устройство получит общедоступный IP-адрес, чтобы любой мог подключиться. Насколько я понимаю, сотовая сеть действует как шлюз от тех, кто работает внутри нее, и достичь кого-то в этой сети извне невозможно. Я ошибся? Мы ищем общее решение, а не решение для конкретного оператора сотовой связи. Контроллер установлен в разных странах, нам нужно найти стандартный способ для его «вебификации».

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

Ваши идеи приветствуются!

Ответы [ 3 ]

1 голос
/ 24 февраля 2011

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

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

Если веб-сервер находится на удаленном устройстве, вы можете купить SIM-карту со статическим IP-адресом или использовать прокси-сервер. Я рекомендую настроить прокси-сервер, если количество устройств не очень мало.

Существует три варианта SIM-карт:

  • Статический IP с адресом в общедоступном Интернете будет дорогостоящим, и согласование сделки с каждым провайдером в каждой стране будет утомительным. Прокси-сервер не требуется.
  • Частные APN SIM-карты предоставят вам возможность выбора статического адреса, но в диапазоне частных адресов. Переговоры с мобильной сетью все еще необходимы, и вам потребуется прокси-сервер, чтобы сидеть между общедоступным Интернетом и частным диапазоном адресов,
  • Стандартные данные SIM-карты будут подключаться к Интернету через NAT. Вы можете использовать их для размещения вашего сервиса, открыв VPN-соединение (мы использовали openvpn) к вашему серверу. Теперь вы можете связаться с устройствами напрямую, подключившись к той же VPN или через прокси-сервер.

Если вы используете openvpn, вот еще несколько советов:

  • Дайте каждому устройству открытый серийный номер и закрытый ключ. Сохраните их в прошивке устройства и в центральной базе данных. Разместите общедоступный серийный номер на внешней стороне устройства. Вы можете использовать сценарий входа openvpn, чтобы убедиться, что конкретный модуль всегда отображается с правильным IP-адресом, что поддерживает статическую конфигурацию прокси.
  • Вы можете контролировать использование полосы пропускания openvpn, регулируя поведение keepalive и частоту повторных переговоров. Измерьте и настройте это перед большим развертыванием.
  • Таймауты NAT в мобильных сетях обычно составляют от 5 до 15 минут. Устройство должно отправлять пакет на сервер достаточно часто, чтобы поддерживать NAT.
  • Дешевые SIM-предложения могут заключаться только в Интернете с ограниченными портами.

Другие советы:

  • Встроенное ПО GPRS-модема может (редко) вызывать сбой внутри системы. Если ваше оборудование поддерживает это, предоставьте программному обеспечению возможность выключения и включения модема.
  • Проверьте свою коробку в районах с плохим покрытием в вашей стране, прежде чем отправлять международные отправления.
1 голос
/ 19 февраля 2011

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

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

В некоторых случаях динамического DNS может быть достаточно, в других вам нужен настоящий прокси / фасад,

Есть хорошая книга: Эндрю С. Таненбаум и Мартен ван Стин: «Распределенные системы: принципы и парадигмы»

0 голосов
/ 22 февраля 2011

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

...