浮动 IP 在 Digital Ocean 上的使用
Floating IPs usage on Digital Ocean
我正在寻找一个基本的东西,但我什至没有找到一个关于完成它的好文档。
我想分配一个浮动IP,然后将其关联到除eth0之外的droplet的网络接口。
原因是我希望能够使用一种编程语言非常轻松地从一个 IP 切换到另一个 IP。
简而言之,我希望能够执行这两个命令并且都应该提供不同的响应。
curl --interface eth0 https://icanhazip.com
curl --interface eth1 https://icanhazip.com
另外,我想知道释放浮动IP后,如何回滚到起点。
我读过的所有文档,在很大程度上依赖于“ip route”和“route”,大多数甚至没有工作,有些工作但完全用浮动替换了旧 IP,这不是我想要的,他们也做到了不显示如何回滚引入的配置更改。
请帮忙,我现在花了一整天的时间试图让它在一个项目中工作,但到目前为止没有结果。
我想没有必要了解 DigitalOcean,我认为如何使它在其他云提供商上工作也适用于这里。
更新
在 DigitalOcean 社区论坛 (https://www.digitalocean.com/community/questions/clear-guide-on-outbound-network-through-floating-ip) 上询问后,他们声称不支持,尽管如果有人可以提供这样的“hacky”解决方案,可能会有一些解决方案我也会接受.谢谢
在云端(AWS、GCP等)ARP由虚拟网络层模拟,也就是说只能解析云平台分配给虚拟机的IP。由于这个原因,大多数 L2 故障转移协议都会中断。即使 ARP 有效,这些 IP(通常称为“浮动 IP”)的 IP 分配过程也不会以标准方式与虚拟网络集成,因此您的 OS 不能仅使用 ARP“抢”IP并将数据包路由到它自己。
我没有亲自在 Digital Ocean 上完成此操作,但我假设如果您想走这条路,您可以调用云的专有 API 来执行此功能。
在 GCP 上查看有关浮动 IP 及其实现的 link。希望这对您有所帮助。
这里有一个想法需要验证:
- 假设您有 Node1(10.1.1.1/24) 和 Node2(10.1.1.2/24)
- 在两个虚拟机上创建环回接口并为它们设置相同的 IP 地址,例如 (10.2.1.1/32)
- 在他们之间开始心跳send/receive
- 当 NodeA 启动时,它会自动进行 API 调用以创建 10.2.1.1/32 的路由并以首选项 2
指向自身
- 当 NodeB 启动时,它会自动进行 API 调用以创建 10.2.1.1/32 的路由并以优先级 1
指向自身
- 节点之间可以相互监视,如果对方失效,则撤回静态路由。理想情况下,您需要第三个节点才能达到法定人数并防止出现脑裂情况,但您的想法对吗?
我正在寻找一个基本的东西,但我什至没有找到一个关于完成它的好文档。
我想分配一个浮动IP,然后将其关联到除eth0之外的droplet的网络接口。 原因是我希望能够使用一种编程语言非常轻松地从一个 IP 切换到另一个 IP。
简而言之,我希望能够执行这两个命令并且都应该提供不同的响应。
curl --interface eth0 https://icanhazip.com
curl --interface eth1 https://icanhazip.com
另外,我想知道释放浮动IP后,如何回滚到起点。
我读过的所有文档,在很大程度上依赖于“ip route”和“route”,大多数甚至没有工作,有些工作但完全用浮动替换了旧 IP,这不是我想要的,他们也做到了不显示如何回滚引入的配置更改。
请帮忙,我现在花了一整天的时间试图让它在一个项目中工作,但到目前为止没有结果。
我想没有必要了解 DigitalOcean,我认为如何使它在其他云提供商上工作也适用于这里。
更新
在 DigitalOcean 社区论坛 (https://www.digitalocean.com/community/questions/clear-guide-on-outbound-network-through-floating-ip) 上询问后,他们声称不支持,尽管如果有人可以提供这样的“hacky”解决方案,可能会有一些解决方案我也会接受.谢谢
在云端(AWS、GCP等)ARP由虚拟网络层模拟,也就是说只能解析云平台分配给虚拟机的IP。由于这个原因,大多数 L2 故障转移协议都会中断。即使 ARP 有效,这些 IP(通常称为“浮动 IP”)的 IP 分配过程也不会以标准方式与虚拟网络集成,因此您的 OS 不能仅使用 ARP“抢”IP并将数据包路由到它自己。
我没有亲自在 Digital Ocean 上完成此操作,但我假设如果您想走这条路,您可以调用云的专有 API 来执行此功能。
在 GCP 上查看有关浮动 IP 及其实现的 link。希望这对您有所帮助。
这里有一个想法需要验证:
- 假设您有 Node1(10.1.1.1/24) 和 Node2(10.1.1.2/24)
- 在两个虚拟机上创建环回接口并为它们设置相同的 IP 地址,例如 (10.2.1.1/32)
- 在他们之间开始心跳send/receive
- 当 NodeA 启动时,它会自动进行 API 调用以创建 10.2.1.1/32 的路由并以首选项 2 指向自身
- 当 NodeB 启动时,它会自动进行 API 调用以创建 10.2.1.1/32 的路由并以优先级 1 指向自身
- 节点之间可以相互监视,如果对方失效,则撤回静态路由。理想情况下,您需要第三个节点才能达到法定人数并防止出现脑裂情况,但您的想法对吗?