0

最初に、Centos 7 x86_64 最小インストールで NetworkManager と selinux の両方を無効にしました。

https://openstack.redhat.com/Running_an_instance_with_Neutronの Packstack を使用して Openstack をデプロイするための Red Hat の指示に従いました 。

Cirros インスタンスをスピンアップした後、フローティング IP はセットアップした DHCP プールと一致しますが、デフォルトでは eth0 に割り当てられていません。

VM にログインし、フローティング IP と一致するように eth0 を構成しましたが、ルートでデフォルト ゲートウェイを設定しても、まだ到達できません。

セキュリティ グループには 0.0.0.0/0 で tcp と IMCP のイングレス ルールがあるため、設定されていればアクセスできるはずだと理解しています。

Centos7 イメージを起動しましたが、接続できないため、同じ問題が発生していると思われます。

誰かがこれをデバッグする方法を教えてもらえますか? 私はこのサーバーで neutron を使用しており、T への指示に従いました。

私のネットワークは 192.168.1.0/24 です

# neutron net-show public
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | cfe5a8cc-1ece-4d63-85ea-6bd8803f2997 |
| name                      | public                               |
| provider:network_type     | vxlan                                |
| provider:physical_network |                                      |
| provider:segmentation_id  | 10                                   |
| router:external           | True                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | 9b14aa61-eea9-43e0-b03c-7767adc4cd62 |
| tenant_id                 | 75505125ed474a3a8e904f6ea8638cf0     |
+---------------------------+--------------------------------------+
# neutron subnet-show public_subnet
+-------------------+----------------------------------------------------+
| Field             | Value                                              |
+-------------------+----------------------------------------------------+
| allocation_pools  | {"start": "192.168.1.100", "end": "192.168.1.220"} |
| cidr              | 192.168.1.0/24                                     |
| dns_nameservers   |                                                    |
| enable_dhcp       | False                                              |
| gateway_ip        | 192.168.1.1                                        |
| host_routes       |                                                    |
| id                | 9b14aa61-eea9-43e0-b03c-7767adc4cd62               |
| ip_version        | 4                                                  |
| ipv6_address_mode |                                                    |
| ipv6_ra_mode      |                                                    |
| name              | public_subnet                                      |
| network_id        | cfe5a8cc-1ece-4d63-85ea-6bd8803f2997               |
| tenant_id         | 75505125ed474a3a8e904f6ea8638cf0                   |
+-------------------+----------------------------------------------------+
# neutron router-show router1
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                                                                                                     |
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                                                                                                                                      |
| distributed           | False                                                                                                                                                                                     |
| external_gateway_info | {"network_id": "cfe5a8cc-1ece-4d63-85ea-6bd8803f2997", "enable_snat": true, "external_fixed_ips": [{"subnet_id": "9b14aa61-eea9-43e0-b03c-7767adc4cd62", "ip_address": "192.168.1.100"}]} |
| ha                    | False                                                                                                                                                                                     |
| id                    | ce896a71-3d7a-4849-bf67-0e61f96740d9                                                                                                                                                      |
| name                  | router1                                                                                                                                                                                   |
| routes                |                                                                                                                                                                                           |
| status                | ACTIVE                                                                                                                                                                                    |
| tenant_id             |                                                                                                                                                                                           |
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
# neutron port-list
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
| id                                   | name | mac_address       | fixed_ips                                                                            |
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
| 5dddaf6c-7aa3-4b59-943c-65c7f05f8597 |      | fa:16:3e:b0:8b:29 | {"subnet_id": "9b14aa61-eea9-43e0-b03c-7767adc4cd62", "ip_address": "192.168.1.101"} |
| 6ce2580c-4967-488b-a803-a0f9289fe096 |      | fa:16:3e:50:2f:de | {"subnet_id": "9b14aa61-eea9-43e0-b03c-7767adc4cd62", "ip_address": "192.168.1.100"} |
| 920a7b64-76c0-48a0-a682-5a0051271252 |      | fa:16:3e:85:33:9a | {"subnet_id": "9b14aa61-eea9-43e0-b03c-7767adc4cd62", "ip_address": "192.168.1.102"} |
| 9636c04a-c3b0-4dde-936d-4a9470c9fd53 |      | fa:16:3e:8b:f2:0b | {"subnet_id": "892beeef-0e1c-4b61-94ac-e8e94943d485", "ip_address": "10.0.0.2"}      |
| 982f6394-c188-4eab-87ea-954345ede0a3 |      | fa:16:3e:de:7e:dd | {"subnet_id": "9b14aa61-eea9-43e0-b03c-7767adc4cd62", "ip_address": "192.168.1.103"} |
| d88af8b3-bf39-4304-aeae-59cc39589ed9 |      | fa:16:3e:23:b8:c5 | {"subnet_id": "892beeef-0e1c-4b61-94ac-e8e94943d485", "ip_address": "10.0.0.1"}      |

Neutron によって作成されたゲートウェイに対して、次のローカル ネットワークから ping を実行できます。

# ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.437 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.068 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.063 ms

ただし、ゲスト VM 内で構成すると、このゲートウェイに ping を実行できません。

ovsctl を使用すると、ブリッジがそこにあり、2 番目の NIC でその外部ポートが正しく設定されていることがわかります。

[root@server neutron]# ovs-vsctl list-br
br-ex
br-int
br-tun
[root@server neutron]# ovs-vsctl list-ports br-ex
enp6s0f1
4

1 に答える 1

2

まず、これがどのように機能するかについて誤解している可能性があります。

Cirros インスタンスをスピンアップした後、フローティング IP は、セットアップした DHCP > プールと一致するものですが、デフォルトでは eth0 に割り当てられていません。

フローティング IP アドレスがインスタンスに直接割り当てられることはありません。インスタンスは、( 、 などで作成した) 内部ネットワークからアドレスを受け取りneutron net-createますneutron subnet-create

フローティング IP をインスタンスに関連付ける場合:

nova floating-ip-create <external_network_name>
nova floating-ip-associate <instance_name_or_id> <ip_address>

このアドレスは neutron ルーター内で構成され、neutron は、このアドレスをインスタンスの内部アドレスにマップする NAT ルールを作成します。

これを考慮して:

デフォルトのpackstack仲介セットアップは、neutron で構成された 2 つのネットワーク (名前付きpublicおよび) で結果を生成しますprivate。インスタンスはprivateネットワークに接続する必要があります。ユーザーの資格情報を使用している場合は、コマンドadminに渡してこれを明示する必要があります。--nic net-id=nnnnnnova boot

ユーザーとしてインスタンスを起動すると、ネットワークはテナントによって所有され、そのテナントに表示される唯一の非外部ネットワークdemoであるため、これは自動的に行われます。privatedemo

インスタンスはネットワークから IP アドレスを受け取る必要がありprivateます。これは、デフォルトの packstack 構成では 10.0.0.0/24 ネットワークになります。

インスタンスが IP アドレスを受信しない場合

インスタンスから発信された dhcp リクエストが、 という名前のネットワーク名前空間のコントローラーで実行されているプラ​​イベート ネットワークの dhcp サーバーに到達するのを妨げている構成上の問題がどこかにあります。dhcp-nnnnここnnnnで、 はネットワークの UUIDprivateです。tcpdumpインスタンスから dhcp 名前空間へのパスに沿ったさまざまなポイントで適用することは、この時点で問題を診断するための良い方法です。

この記事(免責事項: 私は著者の一員です) では、さまざまなコンポーネントが Neutron 環境でどのように接続されているかについて詳しく説明します。少し長めですが (たとえば、DVR や HA ルーターなどの新しい機能については説明しません)、何が何に接続されているかについての概要を説明しています。

インスタンスが IP アドレスを受け取る場合

インスタンスがネットワークから IP アドレスを受け取る場合はprivate、neutron ルーターと外部ネットワークの構成に注意を向ける必要があります。

neutron ルーターは、 という名前のネットワーク名前空間として実現されます。qrouter-nnnnここnnnnで、 は関連する neutron ルーターの UUID です。コマンドを使用して、この名前空間を調べることができますip netns。たとえば、次のようになります。

$ neutron router-list
+--------------------------------------+------------+...
| id                                   | name       |...
+--------------------------------------+------------+...
| 92a5e69a-8dcf-400a-a2c2-46c775aee06b | router-nat |...
+--------------------------------------+------------+...

以下を実行できます。

# ip netns exec qrouter-92a5e69a-8dcf-400a-a2c2-46c775aee06b ip addr

また、ルーターのインターフェイス構成を確認します。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
10: qr-416ca0b2-c8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
    link/ether fa:16:3e:54:51:50 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global qr-416ca0b2-c8
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe54:5150/64 scope link 
       valid_lft forever preferred_lft forever
13: qg-2cad0370-bb: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
    link/ether fa:16:3e:f8:f4:c4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.10/24 brd 192.168.200.255 scope global qg-2cad0370-bb
       valid_lft forever preferred_lft forever
    inet 192.168.200.2/32 brd 192.168.200.2 scope global qg-2cad0370-bb
       valid_lft forever preferred_lft forever
    inet 192.168.200.202/32 brd 192.168.200.202 scope global qg-2cad0370-bb
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fef8:f4c4/64 scope link 
       valid_lft forever preferred_lft forever

を使用して、ルーターの名前空間内から外部アドレスへの接続を確認することもできip netnsますping。これは実際に開始するのに適した場所です。Nova インスタンスからテストを開始する前に、ルーターの名前空間内から機能するアウトバウンド接続があることを確認してください。

qg-nnnnインターフェイス上に、フローティング IP ネットワークの CIDR 範囲内にある1 つ以上のアドレスが表示されるはずです。ip route名前空間内で実行する場合:

# ip netns exec qrouter-92a5e69a-8dcf-400a-a2c2-46c775aee06b ip route
default via 192.168.200.1 dev qg-2cad0370-bb 
10.0.0.0/24 dev qr-416ca0b2-c8  proto kernel  scope link  src 10.0.0.1 
192.168.200.0/24 dev qg-2cad0370-bb  proto kernel  scope link  src 192.168.200.10 

フローティング IP ネットワークに適したゲートウェイ アドレスを使用したデフォルト ルートが表示されます。

ここで一時停止します。これらの診断のいくつかを実行して問題を発見したり、質問がある場合は、私に知らせてください。これを適切に更新しようとします。

于 2015-03-02T22:06:26.633 に答える