質問: Openstack環境で、Pacemakerのocfを使用して仮想IPを割り当たのですが、 自身から仮想IPに対しては通信ができるのですが、 外部のサーバから仮想IPに対して通信ができません。 ``` # pcs resource create vip ocf:heartbeat:IPaddr2 \ ip="10.0.0.11" cidr_netmask="24" op monitor interval="30s" ``` https://docs.openstack.org/ja/ha-guide/controller-ha-vip.html Openstack自体をあまり理解できていないのですが、Openstackの場合、仮想IPの割当に関してなにか制約があるのでしょうか。
回答: OpenStackでは、セキュリティの関係でポートの`mac_address`と`ip_address`が一致しないトラフィックは受信できません。つまり仮想IP宛てのトラフィックは通常は受信できないことになります。 このような場合の対処として`allowed-address-pairs`という機能が用意されています。 例えばVMのポートに10.0.0.1のIPが割り当てられている場合に、そのポートに対してallowed-address-pairs=10.0.0.11を紐付けると、そのポートは10.0.0.1と10.0.0.11の通信が可能になります。 allowed-address-pairs設定コマンドについては以下に 情報があります。 * 第21章 ALLOWED-ADDRESS-PAIRS の設定