networking - float IP 在 Digital Ocean 上的使用

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

我想分配一个 float IP,然后将其关联到除eth0 之外的droplet 的网络接口(interface)。 原因是我希望能够使用一种编程语言非常轻松地从一个 IP 切换到另一个 IP。

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

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

另外,我想知道释放 float IP后要做什么,如何回滚到起点。

我读过的所有文档,在很大程度上依赖于“ip route”和“route”,大多数甚至没有工作,有些工作但完全用 float 替换了旧 IP,这不是我想要的,而且它们也没有显示如何回滚引入的配置更改。

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

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

更新

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

最佳答案

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

我个人没有在 Digital Ocean 上做过这件事,但我假设如果你想走这条路,你可以调用云的专有 API 来实现这个功能。

查看此 link关于 float IP 及其实现的 GCP。希望这对您有所帮助。

这里有一个需要测试的想法:

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

关于networking - float IP 在 Digital Ocean 上的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69919561/

相关文章:

angular - 检测关闭浏览器 Angular 12 的事件

python - 如何自定义条形注释以不显示选定值

json - 通过 Postman 使用 PUT 请求更新 Contentful 帖子

python - 一段时间后 Discord api websocket 网关连接断开

c# - 当我更改继承类中同名方法的代码时,我不需要使用属性覆盖和虚拟。这是为什么?

javascript - 是否所有 WebAPI 都被推送到任务队列中?

android - 加载 flutter 时去除图像中的白色闪烁

amazon-web-services - AWS CodePipeline 角色无权在阶段的 "a

node.js - 在不使用 NVM for Windows 的情况下在 Windows 上安装多个

jooq - jooq record 取数据时是否使用列索引?