【问题标题】:openstack floating ip cannot be accessedopenstack浮动ip无法访问
【发布时间】:2019-04-06 10:48:51
【问题描述】:

说明

dvr启用后,vip的两个虚拟机都配置了keealived。内网VIP漂移时,无法访问openstack浮动ip。

更多细节如下:

两个节点,私网配置keepalived 主机1 192.168.1.2 主机2 192.168.1.3 vip192.168.1.4 私网vip漂移没问题,私网内访问vip没问题 问题是内网的vip漂移后,这个vip对应的外部浮动ip无法访问,漂移前可以访问。 现象:更新vip漂到的私网端口。可以使用浮动网络。是什么导致了这个问题?

配置参考

https://hk.saowen.com/a/4d7a3dcd044eb53ae0fc81e4d1445ba76bbb02423ff6c7b4a53a8ad59945883d

配置过程

前提: 假设已经有两个虚拟机10.10.10.6、10.10.10.7,配置了keepalived,vip为10.10.10.201 配置OpenStack中支持VIP和浮动IP访问的步骤:

  1. 安全组加vrrp协议112

    neutron security-group-rule-create --protocol 112 default

  2. 创建vip

    neutron port-create --fixed_ip ip_address=10.10.10.201 --security-group default vrrp_net

  3. 绑定vip到浮动ip

    neutron floatingip-create --port-id=3d7e70e9-cfcb-4aa9-95cc-60b5b6b67ec3 admin_floating_net

  4. 将 allowed_address_pairs 添加到虚拟机端口以支持多个 NIC 用于多个 NIC。

查询虚拟机1的端口

neutron 端口列表 | grep 10.10.10.6

更新虚拟机1的端口

中子端口更新 df22ba59-9c58-41a5-9fa3-98b09e644fe5 -- allowed_address_pairs list=true type=dict ip_address=10.10.10.201

查询虚拟机2的端口

neutron 端口列表 | grep 10.10.10.7

更新虚拟机2的端口

中子端口更新 4c93d5b7-f26f-4136-a785-4db1479dbd81 -->allowed_address_pairs list=true type=dict ip_address=10.10.10.201

【问题讨论】:

    标签: openstack floating-ip


    【解决方案1】:

    我们在 OpenStack Pike 中遇到了同样的问题。对我们来说,升级到皇后区后它似乎消失了。你用的是哪个版本?

    在我们的例子中,网络节点上 snat 命名空间中 snat/dnat 的 iptables 规则在故障转移后没有更新。

    您可以在安装过程中通过调用来验证这一点:

    ip netns exec snat-<uuid of your router> iptables -t nat -L
    

    您应该会看到您的浮动 IP 的一个 snat 和一个 dnat 规则。

    更多 Launchpad 错误和 PR 以供进一步参考:

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 2018-06-07
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多