【问题标题】:Floating IPs usage on Digital OceanDigital Ocean 上的浮动 IP 使用情况
【发布时间】:2021-12-23 10:09:29
【问题描述】:

我正在寻找一个基本的东西,但我什至没有找到一个很好的文档来完成它。

我想分配一个浮动IP,然后将它关联到一个除了eth0之外的droplet的网络接口。 原因是我希望能够使用编程语言轻松地从一个 IP 切换到另一个 IP。

简而言之,我希望能够执行这两个命令,并且都应该提供不同的响应。

curl --interface eth0 https://icanhazip.com
curl --interface eth1 https://icanhazip.com

另外,我想知道释放Floating IP后该怎么做,如何回滚到起点。

我阅读的所有文档,严重依赖“ip route”和“route”,大多数甚至没有工作,有些工作但完全用浮动替换旧IP,这不是我想要的,而且他们也没有显示如何回滚引入的配置更改。

请帮忙,我现在花了 1 天的时间试图让它为一个项目工作,但到目前为止没有结果。

我想没有必要了解 DigitalOcean,我认为如何在其他云提供商上进行这项工作也适用于此。

更新

在 DigitalOcean 社区论坛 (https://www.digitalocean.com/community/questions/clear-guide-on-outbound-network-through-floating-ip) 上询问此问题后,他们声称不支持,但如果有人可以提供这样的“hacky”解决方案,我也会接受它,但可能会有一些解决方案。谢谢

【问题讨论】:

    标签: networking tcp network-programming ip digital-ocean


    【解决方案1】:

    在云端(AWS.GCP等)ARP是由虚拟网络层模拟的,这意味着只有云平台分配给VM的IP才能被解析。由于这个原因,大多数 L2 故障转移协议确实会中断。即使 ARP 有效,这些 IP(通常称为“浮动 IP”)的 IP 分配过程也不会以标准方式与虚拟网络集成,因此您的操作系统不能仅使用 ARP“获取”IP 并路由数据包对自己。

    我没有亲自在 Digital Ocean 上做过这个,但我假设如果你想走这条路,可以调用云的专有 API 来完成这个功能。

    请参阅 GCP 上的 link,了解浮动 IP 及其实现。希望这会有所帮助。

    这是一个需要测试的想法:

    • 假设您有 Node1(10.1.1.1/24) 和 Node2(10.1.1.2/24)
    • 在两个虚拟机上创建一个环回接口,并为两个虚拟机设置相同的 IP 地址 (10.2.1.1/32)
    • 在它们之间启动心跳发送/接收
    • 当 NodeA 启动时,它会自动进行 API 调用以创建 10.2.1.1/32 的路由,并以首选项 2 指向自身
    • 当 NodeB 启动时,它会自动进行 API 调用以创建 10.2.1.1/32 的路由并以首选项 1 指向自身
    • 节点可以相互监控,以在对方失败时撤消静态路由。理想情况下,您需要第三个节点来达到法定人数并防止出现脑裂情况,但您的想法对吗?

    【讨论】:

    • DigitalOcean 确实告诉我,我正在寻找的东西没有得到官方支持,但可能有一些“hacky”解决方案。他们所说的浮动 IP 的目的是针对入站流量,而不是针对出站流量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多