ルーターを作成したあと、次は外部ネットワークを構成します。クラウドの内部ネットワーク内のユーザーは、外部ネットワークのゲートウェイ経由でインターネットに接続できます。
次の図は、単一ルーターがクラウドプロジェクトのネットワーク通信をサポートする方法を示しています。
図 3 プライベートネットワークモデルでのプロバイダルーター
この図は、次を示しています。
2 つのプロジェクト (Tenant A と Tenant B)
4 つの VM (VM1、VM2、VM3、および VM4)
4 つのサブネット (HR、ENG、IT、および ACCT)
ルーター
外部ネットワーク
外部ネットワークへの内部ネットワークアクセスを提供すると、VM の IP アドレスが、その外部ネットワークに割り当てるフローティングアドレスのいずれかにマップされます。
この手順では、外部ネットワークを表す仮想ネットワークを作成する方法を示します。この仮想ネットワークは DHCP を使用しません。代わりに、フローティング IP アドレスが作成されてプロジェクトに割り当てられ、それらのプロジェクトの下で Nova VM インスタンスによって使用されます。これらの手順では VLAN タイプのネットワークを作成しますが、この手順は (フラットなネットワークなどの) その他のネットワークタイプの作成にも適用されます。
外部ネットワークは、内部ネットワークの作成に関係なく作成できます。
始める前に
エラスティック仮想スイッチの構成を完了してください。詳細は、Neutron をインストールし、構成する方法 (特に、EVS を構成する手順) を参照してください。
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# evsadm show-controlprop -p vlan-range
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external network-name
この手順では、Neutron をインストールし、構成する方法に基づいた VLAN ネットワークの作成を想定しています。segmentation_id は、EVS を構成したときに定義した範囲を持つ VLAN ネットワークの VLAN ID です。
割り当てプールは、サブネットに割り当てられたフローティング IP アドレスの範囲で構成されます。
controller# neutron subnet-create --name subnet-name --disable-dhcp \ --allocation-pool start=start-IP,end=end-IP \ network-name subnet-IP
controller# neutron router-gateway-set router-name ext-network-ID
controller# neutron router-show router-name
この例では、外部ネットワークを作成して、それをクラウド内の内部ネットワークで使用できるように準備する方法を示します。
フラットなネットワークを作成するには、https://blogs.oracle.com/openstack/tags/juno のセクション 2 で提供されている例も参照してください。
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0 controller# evsadm show-controlprop -p vlan-range PROPERTY PERM VALUE DEFAULT HOST vlan-range rw 1,200-300 -- -- controller# neutron net-create --router:external \ --provider:network_type=vlan --provider:segmentation_id=1 ext_network Created a new network: +--------------------------+--------------------------------------+ | Field | Value | +--------------------------+--------------------------------------+ | admin_state_up | True | | id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | name | ext_network | | provider:network_type | vlan | | provider:segmentation_id | 1 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +--------------------------+--------------------------------------+ controller# neutron subnet-create --name ext_subnet --disable-dhcp \ --allocation-pool start=10.134.10.8,end=10.134.10.254 \ ext_network 10.134.10.0/24 Created a new subnet: +-------------------+---------------------------------------------------+ | Field | Value | +-------------------+---------------------------------------------------+ | allocation_pools | {"start": "10.134.10.8", "end": "10.134.10.254"} | | cidr | 10.134.10.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.134.13.1 | | host_routes | | | id | fce503ff-f483-4024-b122-f2524e3edae1 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | ext_subnet | | network_id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-------------------+---------------------------------------------------+ controller# neutron router-gateway-set ext-router 08cf49c8-f28f-49c1-933d-bdb1017e0294 Set gateway for router ext-router controller# neutron router-show ext-router +-----------------------+-------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------+ | admin_state_up | True | | external_gateway_info | {"network_id": "08cf49c8-f28f-49c1-933d-bdb1017e0294",| | | "enable_snat": true, | | | "external_fixed_ips": | | |[{"subnet_id": "fce503ff-f483-4024-b122-f2524e3edae1", | | |"ip_address": "10.134.10.8"}]} | | | id | f89b24ed-42dd-48b0-8f4b-fd41887a3370 | | name | ext-router | | status | ACTIVE | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+-------------------------------------------------------+
関連項目
内部ネットワークがより広いパブリックネットワークにアクセスできるようにするには、この手順を使用します。この手順では、内部ネットワークが特定のプロジェクト用にすでに存在していることを前提にしています。ダッシュボードを使用してプロジェクト内部ネットワークを作成するには、プロジェクト用の内部ネットワークの作成を参照してください。
始める前に
続行する前に、パブリックアクセスを必要としているサブネット名を取得します。
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# neutron subnet-list | grep subnet-name
controller# neutron router-list
controller# neutron router-interface-add router-name subnetID
この例では、プロジェクトにネットワークを構成する方法で作成された HR 内部ネットワークを使用します。サブネットが HR_Subnet である HR ネットワークは、パブリックネットワークへのアクセスを必要としています。
controller# neutron subnet-list | grep HR_Subnet | b6feff42-36aa-4235- | HR_Subnet | 10.132.30.0/24 | {"start": "10.132.30.2", | | 9fe0-ac5de6b43af3 | | | "end": "10.132.30.254"} | controller# neutron router-list +--------------------- +------------+--------------------------------+ | id | name | external_gateway_info | +--------------------- +------------+--------------------------------+ | f89b24ed-42dd-48b0- | ext-router | {"network_id": "6c4c1823-a203- | | 8f4b-fd41887a3370 | | 43b1-9674-ddb5ff4185fc", | | | | "enable_snat": true, | | | | "external_fixed_ips": | | | | [{"subnet_id": "83d9b40f-cc61- | | | | 4696-b22e-b4cbc2aa3872", | | | | "ip_address": "10.132.10.8"}]} | +---------- -----------+------------+--------------------------------+ controller# neutron router-interface-add ext-router b6feff42-36aa-4235-9fe0-ac5de6b43af3 Added interface b6feff42-36aa-4235-9fe0-ac5de6b43af3 to router ext-router.
ipf、ippool、および ipnat などの IP フィルターコマンドおよび dladm や ipadm などのネットワークコマンドを使用すると、neturon-l3-agent によって実行された構成を監視し、トラブルシューティングすることができます。
network# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VIDS l3i7843841e_0_0 net1 1000 2:8:20:42:ed:22 fixed 200 l3i89289b8e_0_0 net1 1000 2:8:20:7d:87:12 fixed 201 l3ed527f842_0_0 net0 100 2:8:20:9:98:3e fixed 0
network# ipadm NAME CLASS/TYPE STATE UNDER ADDR l3ed527f842_0_0 ip ok -- -- l3ed527f842_0_0/v4 static ok -- 10.134.10.8/24 l3ed527f842_0_0/v4a static ok -- 10.134.10.9/32 l3i7843841e_0_0 ip ok -- -- l3i7843841e_0_0/v4 static ok -- 192.168.100.1/24 l3i89289b8e_0_0 ip ok -- -- l3i89289b8e_0_0/v4 static ok -- 192.168.101.1/24
network# ipfstat -io empty list for ipfilter(out) block in quick on l3i7843841e_0_0 from 192.168.100.0/24 to pool/4386082 block in quick on l3i89289b8e_0_0 from 192.168.101.0/24 to pool/8226578 network# ippool -l table role = ipf type = tree number = 8226578 { 192.168.100.0/24; }; table role = ipf type = tree number = 4386082 { 192.168.101.0/24; };
network# ipnat -l List of active MAP/Redirect filters: bimap l3ed527f842_0_0 192.168.101.3/32 -> 10.134.13.9/32 List of active sessions: BIMAP 192.168.101.3 22 <- -> 10.134.13.9 22 [10.132.146.13 36405]