9

nova インスタンスを起動できる最小限の devstack をセットアップしようとしています。一部にはパブリック アドレスがあり、一部にはパブリック ネットワークへの接続を開く必要があります。インスタンスにフローティング IP を割り当て、パブリック アドレスを持つインスタンスから発信されたトラフィックがパブリック ネットワークに到達できるようにしたいと考えています。

アドレッシング

Devstack は、2 つの物理インターフェイスを備えた単一の Ubuntu 14.04 ボックスで実行されます。最初のインターフェイスeth0は 10.48.4.0/22 にあり、私はアドレス 10.48.6.232 を所有しています。これはボックスへの管理接続です。2 番目のインターフェイスeth1は 10.48.8.0/22 にあり、アドレス 10.48.11.6 および 10.48.11.57-10.48.11.59 を所有しています。eth110.48.11.6 アドレスを使用するように構成されており、浮動範囲用に小さなアドレス プールが残されています。

auto eth1
iface eth1 inet static
    address 10.48.11.6
    netmask 255.255.252.0

フローティング IP プールとして 10.48.11.57 ~ 10.48.11.59 の範囲を使用したいと考えています。これが私の始まりですlocal.conf

[[local|localrc]]

# Devstack host IP eth1 address
HOST_IP=10.48.11.6

# Private network
FIXED_RANGE=10.90.100.0/24
NETWORK_GATEWAY=10.90.100.1

# Public network
Q_FLOATING_ALLOCATION_POOL=start=10.48.11.57,end=10.48.11.59
FLOATING_RANGE=10.48.8.0/22
PUBLIC_NETWORK_GATEWAY=10.48.8.1

# Public network is eth1
PUBLIC_INTERFACE=eth1

ML2

my の関連部分の残りの部分はlocal.conf、パブリック ネットワークを使用するように neutron と ovs を構成することです。のコメントの指示に従いましたneutron-legacy

# Neutron
# -------

PUBLIC_BRIDGE=br-ex

Q_USE_PROVIDERNET_FOR_PUBLIC=True
PUBLIC_PHYSICAL_NETWORK=public
OVS_BRIDGE_MAPPINGS=public:br-ex

# Neutron Provider Network
ENABLE_TENANT_TUNNELS=True
PHYSICAL_NETWORK=public
OVS_PHYSICAL_BRIDGE=br-ex

# Use ml2 and openvswitch
Q_PLUGIN=ml2
Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,logger
Q_AGENT=openvswitch
enable_service q-agt

# ml2 vxlan
Q_ML2_TENANT_NETWORK_TYPE=vxlan
Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS=(vni_ranges=1001:2000)
Q_AGENT_EXTRA_AGENT_OPTS=(tunnel_types=vxlan vxlan_udp_port=8472)
Q_USE_NAMESPACE=True
Q_USE_SECGROUP=True

結果のネットワーク

デモ プロジェクトのデフォルトのセキュリティ ポリシーを permissive に変更しました。

結果として得られるネットワークは、devstack ホストとプライベート サブネットの間でトラフィックをルーティングしますが、devstack ホストと の10.48.8.0/22間、インスタンスと物理10.48.8.0/22の間、または物理10.48.8.0/22ネットワークとパブリック10.48.8.0/22サブネットの間ではトラフィックをルーティングしません。

      \ destination   gateway     devstack     router1       private
source \              10.48.8.1   10.48.11.6   10.48.11.57   10.90.100.0/24

physical              pings       X            X             na
10.48.8.0/22

devstack              X           pings        pings         pings
10.48.11.6

private               X           pings        pings         pings
10.90.100.0/24

ネットワークを出るトラフィックはpublic、物理ネットワークに到達する必要があります。privateネットワークを出るトラフィックは、ネットワークに NAT 変換する必要がありpublicます。物理ネットワークから入るトラフィックは、publicネットワークに到達する必要があります。

結果の ovs ブリッジは次のとおりです。

$sudo ovs-vsctl show
33ab25b5-f5d9-4f9f-b30e-20452d099f2c
    Bridge br-ex
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port "eth1"
            Interface "eth1"
        Port br-ex
            Interface br-ex
                type: internal
    Bridge br-int
        fail_mode: secure
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=phy-br-ex}
        Port "tapc5733ec7-e7"
            tag: 1
            Interface "tapc5733ec7-e7"
                type: internal
        Port "qvo280f2d3e-14"
            tag: 1
            Interface "qvo280f2d3e-14"
        Port br-int
            Interface br-int
                type: internal
        Port "qr-9a91aae3-7c"
            tag: 1
            Interface "qr-9a91aae3-7c"
                type: internal
        Port "qr-54611e0f-77"
            tag: 1
            Interface "qr-54611e0f-77"
                type: internal
        Port "qg-9a39ed65-f0"
            tag: 2
            Interface "qg-9a39ed65-f0"
                type: internal
    Bridge br-tun
        fail_mode: secure
        Port br-tun
            Interface br-tun
                type: internal
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
    ovs_version: "2.0.2"

devstack ボックスのルーティング テーブルは

$ip route
default via 10.48.4.1 dev eth0
10.48.4.0/22 dev eth0  proto kernel  scope link  src 10.48.6.232
10.48.8.0/22 dev br-ex  proto kernel  scope link  src 10.48.11.6
10.90.100.0/24 via 10.48.11.57 dev br-ex
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

のルーティングテーブルrouter1

$sudo ip netns exec qrouter-cf0137a4-49cc-45f9-bad8-5d71340b5462 ip route
default via 10.48.8.1 dev qg-9a39ed65-f0
10.48.8.0/22 dev qg-9a39ed65-f0  proto kernel  scope link  src 10.48.11.57
10.90.100.0/24 dev qr-9a91aae3-7c  proto kernel  scope link  src 10.90.100.1

どうしたの?nova インスタンスのパブリック インターフェースとプライベート インターフェースの両方をホストできる単純な devstack をセットアップするにはどうすればよいですか?

4

0 に答える 0