16.5. 创建路由提供商网络
路由供应商网络为最终用户简化 Red Hat OpenStack Platform (RHOSP)云,因为它们只看到一个网络。对于管理员,路由供应商网络提供可扩展和容错能力。
执行此流程时,您可以创建一个具有两个网络片段的路由供应商网络。每个片段包含一个 IPv4 子网和一个 IPv6 子网。
先决条件
- 完成 第 16.4 节 “准备路由的提供商网络” 中的步骤。
-
您必须是一个具有
admin
角色的 RHOSP 用户。
流程
创建一个包含默认网段的 VLAN 提供商网络。
在本例中,VLAN 提供商网络名为
multisegment1
,它使用名为provider1
的物理网络,以及 ID 为128
的 VLAN:Example
openstack network create --share --provider-physical-network provider1 \ --provider-network-type vlan --provider-segment 128 multisegment1
$ openstack network create --share --provider-physical-network provider1 \ --provider-network-type vlan --provider-segment 128 multisegment1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将默认网络段重命名为
segment1
。获取片段 ID:
openstack network segment list --network multisegment1
$ openstack network segment list --network multisegment1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
+--------------------------------------+----------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+----------+--------------------------------------+--------------+---------+ | 43e16869-ad31-48e4-87ce-acf756709e18 | None | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 128 | +--------------------------------------+----------+--------------------------------------+--------------+---------+
+--------------------------------------+----------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+----------+--------------------------------------+--------------+---------+ | 43e16869-ad31-48e4-87ce-acf756709e18 | None | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 128 | +--------------------------------------+----------+--------------------------------------+--------------+---------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用网段 ID,将网络段重命名为
segment1
:openstack network segment set --name segment1 43e16869-ad31-48e4-87ce-acf756709e18
$ openstack network segment set --name segment1 43e16869-ad31-48e4-87ce-acf756709e18
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在提供商网络上创建第二个片段。
在本例中,网络段使用一个名为
provider2
的物理网络,以及 ID 为129
的 VLAN:Example
openstack network segment create --physical-network provider2 \ --network-type vlan --segment 129 --network multisegment1 segment2
$ openstack network segment create --physical-network provider2 \ --network-type vlan --segment 129 --network multisegment1 segment2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证网络是否包含
segment1
和segment2
片段:openstack network segment list --network multisegment1
$ openstack network segment list --network multisegment1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在
segment1
网段上创建一个 IPv4 子网和一个 IPv6 子网。在本例中,IPv4 子网使用
203.0.113.0/24
:Example
openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 4 --subnet-range 203.0.113.0/24 \ multisegment1-segment1-v4
$ openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 4 --subnet-range 203.0.113.0/24 \ multisegment1-segment1-v4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,IPv6 子网使用
fd00:203:0:113::/64
:Example
openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 6 --subnet-range fd00:203:0:113::/64 \ --ipv6-address-mode slaac multisegment1-segment1-v6
$ openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 6 --subnet-range fd00:203:0:113::/64 \ --ipv6-address-mode slaac multisegment1-segment1-v6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认情况下,提供商网络上的 IPv6 子网依赖物理网络基础架构进行无状态地址自动配置(SLAAC)和路由器公告。
在
segment2
网段上创建一个 IPv4 子网和一个 IPv6 子网。在本例中,IPv4 子网使用
198.51.100.0/24
:Example
openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 4 --subnet-range 198.51.100.0/24 \ multisegment1-segment2-v4
$ openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 4 --subnet-range 198.51.100.0/24 \ multisegment1-segment2-v4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,IPv6 子网使用
fd00:198:51:100::/64
:Example
openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 6 --subnet-range fd00:198:51:100::/64 \ --ipv6-address-mode slaac multisegment1-segment2-v6
$ openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 6 --subnet-range fd00:198:51:100::/64 \ --ipv6-address-mode slaac multisegment1-segment2-v6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证每个 IPv4 子网都与至少一个 DHCP 代理关联:
openstack network agent list --agent-type dhcp --network multisegment1
$ openstack network agent list --agent-type dhcp --network multisegment1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证已经为 Compute 服务放置 API 中每个网段 IPv4 子网创建清单。
为所有段 ID 运行这个命令:
SEGMENT_ID=053b7925-9a89-4489-9992-e164c8cc8763 openstack resource provider inventory list $SEGMENT_ID
$ SEGMENT_ID=053b7925-9a89-4489-9992-e164c8cc8763 $ openstack resource provider inventory list $SEGMENT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
在这个示例输出中,仅显示其中一个片段:
+----------------+------------------+----------+----------+-----------+----------+-------+ | resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total | +----------------+------------------+----------+----------+-----------+----------+-------+ | IPV4_ADDRESS | 1.0 | 1 | 2 | 1 | 1 | 30 | +----------------+------------------+----------+----------+-----------+----------+-------+
+----------------+------------------+----------+----------+-----------+----------+-------+ | resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total | +----------------+------------------+----------+----------+-----------+----------+-------+ | IPV4_ADDRESS | 1.0 | 1 | 2 | 1 | 1 | 30 | +----------------+------------------+----------+----------+-----------+----------+-------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证是否为 Compute 服务中的每个片段创建了主机聚合:
openstack aggregate list
$ openstack aggregate list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
在本例中,仅显示其中一个片段:
+----+---------------------------------------------------------+-------------------+ | Id | Name | Availability Zone | +----+---------------------------------------------------------+-------------------+ | 10 | Neutron segment id 053b7925-9a89-4489-9992-e164c8cc8763 | None | +----+---------------------------------------------------------+-------------------+
+----+---------------------------------------------------------+-------------------+ | Id | Name | Availability Zone | +----+---------------------------------------------------------+-------------------+ | 10 | Neutron segment id 053b7925-9a89-4489-9992-e164c8cc8763 | None | +----+---------------------------------------------------------+-------------------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启动一个或多个实例。每个实例会根据它在特定计算节点上使用的片段获取 IP 地址。
注意如果在端口创建请求中由用户指定了固定 IP,则该特定 IP 会立即分配给端口。但是,创建端口并将其传递给实例会产生与传统网络不同的行为。如果在端口创建请求上没有指定固定 IP,网络服务会将 IP 地址延迟分配给端口,直到特定计算节点变得明显。例如,当运行这个命令时:
openstack port create --network multisegment1 port1
$ openstack port create --network multisegment1 port1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow