我正试图在Amazon EC2上实现基本的洋葱路由服务。 我的网络背后的基本概念如下:我有一个目录节点,链节点和发起者(客户端)。链节点向目录节点注册,从而确定流量的路由。AWS传入请求的来源(IP)
当我在本地机器上运行它时,一切正常。当我从单独的EC2实例运行每个组件时,它不起作用。这是因为目录节点没有看到链节点的“真实”位置,所以当它们注册时,它认为它们有其他IP。当注册我的机器上运行的链节点时,我注意到这种行为,目录节点在EC2实例上运行。目录节点将注册请求视为来自亚马逊网络。节点彼此通信的方式是通过REST。目录节点从请求头中获取链节点的地址,这似乎始终指向AWS网络中的某个位置,而不是指向请求的真正来源。
我是新来的云计算,这是我与AWS的第一次互动。为了尽我所能,我无法在网上找到我的问题的答案,所以我决定在这里问。也许值得一提的是,我的确了解了弹性IP,但据我了解,它们是一种“静态”IP,用于实现这些实例。这不会对我有所帮助,因为链节点最终应该根据活动节点的数量最终在其自己的VM中动态生成。在这种情况下,目录节点将不知道新链节点的IP,无论它是否弹性。
对我有什么建议吗? 在此先感谢!
为什么你不能在请求头中使用IP来进行通信? – helloV
由于以下情形:目录节点位于EC2上。链节点在我的PC上并尝试注册。目录节点会看到以下内容:收到的注册请求来自:,而不是<我的本地计算机的IP>。然后,当它试图告诉该节点必须路由一段流量时,它会尝试与对话,并且链节点不知道它必须执行任何操作,因为它位于本地计算机的 。 –
Syn
PC上的软件如何到达EC2上的目录节点?什么是您的网络配置? –