创建路由器后,接下来配置外部网络。通过外部网络的网关,云的内部网络中的用户可以连接到 Internet。
下图显示了单个路由器如何支持云项目的网络通信。
图 4 使用专用网络模型的提供商路由器
该图显示了以下内容:
两个项目(租户 A 和 租户 B)
四个 VM(VM1、VM2、VM3 和 VM4)
四个子网(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_TENANT_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=true network-name
其中,segmentation_id 的值是您在 EVS 配置过程中定义的 VLAN 范围的第一个数字,通常为 1。
分配池由分配给子网的某个范围的浮动 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_TENANT_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=True \ --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 | | | tenant_id | 7d1caf0854b24becb28df5c5cabf72cc | +--------------------------+--------------------------------------+ controller# neutron subnet-create --name ext-subnet --disable-dhcp \ --allocation-pool start=10.134.13.8,end=10.134.13.254 \ ext_network 10.134.13.0/24 Created a new subnet: +-------------------+---------------------------------------------------+ | Field | Value | +-------------------+---------------------------------------------------+ | allocation_pools | {"start": "10.134.13.8", "end": "10.134.13.254"} | | cidr | 10.134.13.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 | | tenant_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.13.8"}]} | | | id | f89b24ed-42dd-48b0-8f4b-fd41887a3370 | | name | ext-router | | status | ACTIVE | | tenant_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+-------------------------------------------------------+
另请参见
已知限制。