0

Need a basic direction in the following project.

There is a linux based controller doing some industrial control stuff. The box is equipped with cellular modem and is capable to get online through cellular carrier. Cellular communication is used because controller is mostly installed where no cables or short range radio is available. Places where sun don't normally shine :)

The task is to allow internet clients to connect directly to the box for some basic control/monitoring stuff. The problem is connectivity - how clients will discover the box? - I'd like to have the box act as a server (if possible). Assuming that cellular carrier allows the box to get online doesn't necessarily mean that the box will get public IP so that anyone would be able to get connected. To my understanding the cellular network acts as a gateway from those who are working inside of it, and reaching someone in that network from outside isn't possible. Am I wrong? We are looking for a generic solution, not a solution around particular cellular provider. The controller is installed in different countries, we need to find the standard way to "webify" it.

The software (and hardware) in the box is ours, we can basically do anything, but I am looking for the right way to do it in order to avoid surprises with different providers later. BTW, the solution doesn't necessarily have to be technical, may be it's possible to buy a permanent IP's per box, or setup VPNs.. Which way should I dig to? What questions to ask?

Your ideas are welcome!

4

3 回答 3

1

这是“移动代理”出现在不同地方或使用不同提供商的典型问题(在这种情况下只有一个提供商,但几乎相同)。通常它是使用某种归属代理解决的——移动设备连接到的服务器并提供有关如何访问它的详细信息,或者如果无法直接访问,则归属代理充当代理。

客户端总是先联系本地代理,然后如果可能他们联系移动设备,或者如果不是,他们使用服务器作为代理。

在某些情况下,动态 dns 可能就足够了,而在其他情况下,您需要真正的代理/外观。

有一本好书:Andrew S. Tanenbaum 和 Maarten van Steen:“分布式系统:原则和范式”

于 2011-02-19T00:13:39.197 回答
1

您对问题的总结基本上是正确的。我已经实现了几个这样做的系统,成功的几率很高。

您解决此问题的方式将取决于您希望单个用户与之交互的远程单元的数量。如果每个用户只处理一个或两个设备,那么在远程设备上实现 Web 服务器是合理的。如果每个用户处理许多设备,请考虑尽可能多地集中管理。我已经使用Zenoss进行数据记录和自定义控制服务器实现了这一点。

如果 Web 服务器位于远程设备上,您可以购买具有静态 IP 的 SIM 卡,或使用代理服务器。我建议设置代理服务器,除非设备数量非常少。

SIM有三种选择:

  • 具有公共 Internet 地址的静态 IP 会很昂贵,并且与每个国家的每个提供商谈判交易将是令人厌烦的。不需要代理服务器。
  • 私有 APN SIM 将为您提供静态地址选项,但在私有地址范围内。仍然需要与移动网络进行协商,并且您将需要一个代理服务器位于公共 Internet 和私有地址范围之间,
  • 标准数据 SIM 卡将通过 NAT 连接到 Internet。您可以通过打开与您的服务器的 VPN 连接(我们使用 openvpn)来使用它们来托管您的服务。您现在可以通过连接到同一个 VPN 或通过代理服务器直接访问设备。

如果您使用 openvpn,这里还有一些提示:

  • 给每个单元一个公共序列号和一个私钥。将这些存储在设备的固件和中央数据库中。将公共序列号放在设备外部。您可以使用 openvpn 登录脚本来确保特定单元始终出现在正确的 IP 地址上,从而使代理配置保持静态。
  • 您可以通过调整其保活行为以及重新协商的频率来控制 openvpn 的带宽使用。在进行大规模部署之前对其进行测量和调整。
  • 移动网络中的 NAT 超时通常在 5 到 15 分钟之间。设备必须经常向服务器发送数据包以保持 NAT 处于活动状态。
  • 便宜的 SIM 卡交易可能仅限网络,端口有限。

其他提示:

  • GPRS 调制解调器固件可能(很少)在内部崩溃。如果您的硬件支持它,请提供能够重启调制解调器的软件。
  • 在您发送国际货件之前,在您所在国家/地区覆盖率较差的地区测试您的箱子。
于 2011-02-23T22:17:50.673 回答
0

您可以要求蜂窝服务提供商给您一张带有互联网接入和固定 IP 地址的 SIM 卡。然后你可以托管任何你喜欢的服务器。不要忘记您正在处理有限的带宽。

于 2011-02-22T11:29:01.723 回答