OpenStack安裝流程(juno版)- 添加網絡服務(neutron)- 建立初始網絡

建立初始網絡

在啓動實例前,必須先建立必要的網絡架構,讓實例能鏈接之,這個架構包含外網(external network)和租戶網絡(tenant network)。下圖爲初始網絡架構的示意圖,展現了網絡組件和從實例到外網的網絡數據流線路:
初始網絡示意圖node

External network

external network爲實例提供訪問Internet的入口。網絡

如下操做在controller節點上完成。架構

建立external network

  1. 啓動admin證書:

$ source admin-openrc.shide

  1. 建立網絡:
    <pre>$ neutron net-create ext-net --router:external True \

--provider:physical_network external --provider:network_type flatui

Created a new network:
Field Value
admin_state_up True
id e6f3606d-2bf6-4b01-8fb4-c10d299dbe75
name ext-net
provider:network_type flat
provider:physical_network external
provider:segmentation_id
router:external True
shared False
status ACTIVE
subnets
tenant_id 4f7806287c9a437e9cd912504ff71727

+---------------------------+--------------------------------------+</pre>this

跟物理網絡同樣,虛擬網絡也須要指定一個子網(subnet)。外網和network節點上鍊接外部接口的物理網絡共享同一個子網和網關(The external network shares the same subnet and gateway associated with the physical network connected to the external interface on the network node. )。須要給這個子網指定單獨的路由和IP地址,以防和外網上的其餘設備產生衝突。spa

建立外網的子網

建立子網:
<pre>$ neutron subnet-create ext-net --name ext-subnet \
--allocation-pool start=FLOATING_IP_START,end=FLOATING_IP_END \
--disable-dhcp --gateway EXTERNAL_NETWORK_GATEWAY EXTERNAL_NETWORK_CIDR
</pre>
FLOATING_IP_START和FLOATING_IP_END分別爲預約分配的浮動IP地址範圍內的第一個和最後一個的IP地址。EXTERNAL_NETWORK_CIDR替換爲物理網絡相應的子網(Replace EXTERNAL_NETWORK_CIDR with the subnet associated with the physical network.)。EXTERNAL_NETWORK_GATEWAY替換爲物理網絡相應的網關,通常是以「.1」結尾的IP地址。關閉子網的DHCP選項,由於實例並不直接鏈接外網,浮動IP地址須要手動指定(You should disable DHCP on this subnet because instances do not connect directly to the external network and floating IP addresses require manual assignment.)。3d

在本文的網絡配置條件下,上述命令應以下:
<pre>$ neutron subnet-create ext-net --name ext-subnet \
--allocation-pool start=192.168.100.101,end=192.168.100.200 \
--disable-dhcp --gateway 192.168.100.1 192.168.100.0/24
code

Created a new subnet:
Field Value
allocation_pools {"start": "192.168.100.101", "end": "192.168.100.200"}
cidr 192.168.100.0/24
dns_nameservers
enable_dhcp False
gateway_ip 192.168.100.1
host_routes
id 963754fb-73c4-4a1b-93ee-27d2c2beb97a
ip_version 4
ipv6_address_mode
ipv6_ra_mode
name ext-subnet
network_id e6f3606d-2bf6-4b01-8fb4-c10d299dbe75
tenant_id 4f7806287c9a437e9cd912504ff71727

+-------------------+--------------------------------------------------------+</pre>router

租戶網絡

租戶網絡爲了實例提供了內部網絡之間相互訪問的功能。這個架構把各個租戶的網絡相互隔離了。例如,demo租戶使用這種網絡後,只有屬於這個租戶的實例能夠訪問這個網絡。

如下操做在controller節點上完成。

建立租戶網絡

  1. 啓動demo證書:

$ source demo-openrc.sh

  1. 建立網絡:

<pre>$ neutron net-create demo-net

Created a new network:
Field Value
admin_state_up True
id 830379a4-cc69-4165-a18f-f9430d999d5f
name demo-net
router:external False
shared False
status ACTIVE
subnets
tenant_id d1f7caccc65840b68258997a759da07f

+-----------------+--------------------------------------+</pre>
如同外網網絡,租戶網絡也須要專屬的子網。不過能夠指定任意有效的子網,由於這個架構將各個租戶網絡隔離開了。默認這個子網會使用DHCP來分配實例的IP地址。

建立租戶網絡的子網

建立子網:
<pre>$ neutron subnet-create demo-net --name demo-subnet \
--gateway TENANT_NETWORK_GATEWAY TENANT_NETWORK_CIDR
</pre>
將TENANT_NETWORK_CIDR替換爲分配給租戶網絡的子網,TENANT_NETWORK_GATEWAY替換爲分配的子網的網關,通常是以「.1」結尾的IP地址。

本文的網絡配置下,上述命令以下:
<pre>$ neutron subnet-create demo-net --name demo-subnet \
--gateway 192.162.1.1 192.162.1.0/24

Created a new subnet:
Field Value
allocation_pools {"start": "192.162.1.2", "end": "192.162.1.254"}
cidr 192.162.1.0/24
dns_nameservers
enable_dhcp True
gateway_ip 192.162.1.1
host_routes
id a6593d6d-1992-4207-ae61-7784f0aa5a3c
ip_version 4
ipv6_address_mode
ipv6_ra_mode
name demo-subnet
network_id 830379a4-cc69-4165-a18f-f9430d999d5f
tenant_id d1f7caccc65840b68258997a759da07f

+-------------------+--------------------------------------------------+</pre>

一個虛擬路由器可讓兩個或多個虛擬網絡之間通訊。每一個路由器須要一個或多個接口(或包括網關)來訪問指定網絡。在本文,建立一個路由器並把租戶網絡和外網鏈接到它上面。

建立路由器並將租戶網絡和外網鏈接到上面

  1. 建立路由器:
    <pre>$ neutron router-create demo-router
Created a new router:
Field Value
admin_state_up True
external_gateway_info
id 74be9215-abad-4d63-ad75-9d365ae6ad6a
name demo-router
routes
status ACTIVE
tenant_id d1f7caccc65840b68258997a759da07f

+-----------------------+--------------------------------------+</pre>

  1. 把路由和demo租戶網絡子網鏈接起來:
    <pre>$ neutron router-interface-add demo-router demo-subnet

Added interface 0c38b462-9f15-4fc4-abdf-9039048c733d to router demo-router.</pre>

  1. 把路由和外網鏈接起來,經過把外網設爲路由的網關(Attach the router to the external network by setting it as the gateway):
    <pre>$ neutron router-gateway-set demo-router ext-net

Set gateway for router demo-router</pre>

驗證操做

外網的子網是192.168.100.0/24,因爲租戶路由網關理論上在其浮動IP地址範圍中是佔據了最小的(lowest)IP地址,即192.168.100.101。要驗證外部物理網絡和虛擬網絡設置的正確與否,從任意的外部網絡的主機上能夠ping通192.168.100.101便可驗證。

在建立虛擬機的主機上ping上述IP:
<pre>Microsoft Windows [版本 6.1.7601]
版權全部 (c) 2009 Microsoft Corporation。保留全部權利。

C:UsersTiger>ping 192.168.100.101

正在 Ping 192.168.100.101 具備 32 字節的數據:
來自 192.168.100.101 的回覆: 字節=32 時間=2ms TTL=64
來自 192.168.100.101 的回覆: 字節=32 時間<1ms TTL=64
來自 192.168.100.101 的回覆: 字節=32 時間<1ms TTL=64
來自 192.168.100.101 的回覆: 字節=32 時間<1ms TTL=64

192.168.100.101 的 Ping 統計信息:

數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),

往返行程的估計時間(以毫秒爲單位):

最短 = 0ms,最長 = 2ms,平均 = 0ms</code></pre>
相關文章
相關標籤/搜索