Openstack之七:實現基於橋接的內外網絡

1、在控制端進行配置網絡

#啓動實例文檔:https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance.html#html

#建立網絡提供者文檔:https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance-networks-provider.htmllinux

#(提供者)橋接網絡示意圖:web

#橋接網絡IP劃分,要求虛擬機與物理機必須在同一個相同子網的網絡內。shell

一、建立提供者網絡

一、在控制節點上,加載 admin 憑證來獲取管理員能執行的命令訪問權限:瀏覽器

. admin.sh

二、建立橋接網絡安全

openstack network create  --share --external \
  --provider-physical-network external \
  --provider-network-type flat external-net

 三、在網絡上建立一個子網,當分的子網用完時,咱們能夠再進行分配一段地址池,解決IP地址不夠用的狀況。bash

openstack subnet create --network external-net \
  --allocation-pool start=192.168.200.201,end=192.168.200.220 \  #規劃的地址池
  --dns-nameserver 192.168.1.1 --gateway 192.168.1.1 \   #本地的dns和網關
  --subnet-range PROVIDER_NETWORK_CIDR extarnal-sub

二、建立m1.nano類型

一、默認的最小規格的主機須要512 MB內存。對於環境中計算節點內存不足4 GB的,咱們推薦建立只須要64 MB的``m1.nano``規格的主機。若單純爲了測試的目的,請使用``m1.nano``規格的主機來加載CirrOS鏡像服務器

. admin-openrc   #須要管理員的權限建立
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

三、生成一個鍵值對

一、導入``demo``項目憑證網絡

$ . demo-openrc

二、大部分雲鏡像支持 :term:`public key authentication`而不是傳統的密碼登錄。在啓動實例前,你必須添加一個公共密鑰到計算服務。ssh

$ ssh-keygen -q -N ""
$ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

+-------------+-------------------------------------------------+
| Field       | Value                                           |
+-------------+-------------------------------------------------+
| fingerprint | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
| name        | mykey                                           |
| user_id     | 58126687cbcc4888bfa9ab73a2256f27                |
+-------------+-------------------------------------------------+

三、驗證公鑰的添加:

$ openstack keypair list

+-------+-------------------------------------------------+
| Name  | Fingerprint                                     |
+-------+-------------------------------------------------+
| mykey | ee:3d:2e:97:d4:e2:6a:54:6d:0d:ce:43:39:2c:ba:4d |
+-------+-------------------------------------------------+

四、增長安全組規則

默認狀況下, ``default``安全組適用於全部實例而且包括拒絕遠程訪問實例的防火牆規則。對諸如CirrOS這樣的Linux鏡像,咱們推薦至少容許ICMP (ping) 和安全shell(SSH)規則。

一、添加規則到 default 安全組,建立完安全組以後,後面在openstack控制端須要受權,比較麻煩,後面會在計算節點服務器上將其關閉。

openstack security group rule create --proto icmp default

二、容許安全 shell (SSH) 的訪問:

$ openstack security group rule create --proto tcp --dst-port 22 default

五、在公有網絡上建立實例

官方文檔:https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance-provider.html  

一、在控制節點上,得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:

$ . demo-openrc

二、一個實例指定了虛擬機資源的大體分配,包括處理器、內存和存儲。

列出可用類型:

$ openstack flavor list

+----+---------+-----+------+-----------+-------+-----------+
| ID | Name    | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+---------+-----+------+-----------+-------+-----------+
| 0  | m1.nano |  64 |    1 |         0 |     1 | True      |
+----+---------+-----+------+-----------+-------+-----------+

三、列出可用鏡像:

$ openstack image list

+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 390eb5f7-8d49-41ec-95b7-68c0d5d54b34 | cirros | active |
+--------------------------------------+--------+--------+

這個實例使用``cirros``鏡像。 

四、列出可用網絡:

$ openstack network list

+--------------------------------------+--------------+--------------------------------------+
| ID                                   | Name         | Subnets                              |
+--------------------------------------+--------------+--------------------------------------+
| 4716ddfe-6e60-40e7-b2a8-42e57bf3c31c | selfservice  | 2112d5eb-f9d6-45fd-906e-7cabd38b7c7c |
| b5b6993c-ddf9-40e7-91d0-86806a42edb8 | provider     | 310911f6-acf0-4a47-824e-3032916582ff |
+--------------------------------------+--------------+--------------------------------------+

這個實例使用 ``provider``公有網絡。 你必須使用ID而不是名稱纔可使用這個網絡。  

 五、列出可用的安全組:

$ openstack security group list

+--------------------------------------+---------+------------------------+----------------------------------+
| ID                                   | Name    | Description            | Project                          |
+--------------------------------------+---------+------------------------+----------------------------------+
| dd2b614c-3dad-48ed-958b-b155a3b38515 | default | Default security group | a516b957032844328896baa01e0f906c |
+--------------------------------------+---------+------------------------+----------------------------------+

六、啓動雲主機

一、在控制節點上,得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:

$ . demo-openrc

啓動實例:

二、使用``provider``公有網絡的ID替換``PUBLIC_NET_ID``

$ openstack server create --flavor m1.nano --image cirros-0.3.4 \   #cirros-0.3.4是鏡像版本號
  --nic net-id=PROVIDER_NET_ID --security-group default \   #用openstack network list查看ID號,而後將ID號複製到此。
  --key-name mykey linux36-vm1                      #命名爲linux36-vm1

三、檢查實例的狀態:

$ openstack server list

+--------------------------------------+-------------------+--------+------------------------+------------+
| ID                                   | Name              | Status | Networks               | Image Name |
+--------------------------------------+-------------------+--------+------------------------+------------+
| 181c52ba-aebc-4c32-a97d-2e8e82e4eaaf | provider-instance | ACTIVE | provider=203.0.113.103 | cirros     |
+--------------------------------------+-------------------+--------+------------------------+------------+

七、使用虛擬控制檯訪問實例

一、獲取你實例的 Virtual Network Computing (VNC) 會話URL並從web瀏覽器訪問它:

$ openstack console url show linux36-vm1  #打開鏡像的URL

+-------+---------------------------------------------------------------------------------+
| Field | Value                                                                           |
+-------+---------------------------------------------------------------------------------+
| type  | novnc                                                                           |
| url   | http://controller:6080/vnc_auto.html?token=5eeccb47-525c-4918-ac2a-3ad1e9f1f493 |
+-------+---------------------------------------------------------------------------------+

二、驗證可否ping通公有網絡的網關,因爲安裝了防火牆機制,須要在web界面將安全機制打開,讓外部能夠ping通本機:

$ ping -c 4 203.0.113.1

PING 203.0.113.1 (203.0.113.1) 56(84) bytes of data.
64 bytes from 203.0.113.1: icmp_req=1 ttl=64 time=0.357 ms
64 bytes from 203.0.113.1: icmp_req=2 ttl=64 time=0.473 ms
64 bytes from 203.0.113.1: icmp_req=3 ttl=64 time=0.504 ms
64 bytes from 203.0.113.1: icmp_req=4 ttl=64 time=0.470 ms

--- 203.0.113.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.357/0.451/0.504/0.055 ms

三、在控制節點或其餘公有網絡上的主機使用 SSH遠程訪問實例,因爲配置了防火牆機制,須要在web網頁打開ssh機制,才能以cirros用戶進行鏈接:

$ ssh cirros@203.0.113.103

The authenticity of host '203.0.113.102 (203.0.113.102)' can't be established.
RSA key fingerprint is ed:05:e9:e7:52:a0:ff:83:68:94:c7:d1:f2:f8:e2:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '203.0.113.102' (RSA) to the list of known hosts.

 建立內網結構

一、用管理員的帳號進行建立

# . admin.sh

二、控制端建立網絡

# neutron net-create --shared  --provider:physical_network internal --provider:network_type flat internal-net

 

三、建立子網

neutron subnet-create --name external-subnet --allocation-pool  \
start=192.168.0.201,end=192.168.0.220 --dns nameserver 192.168.0.1 external-net 192.168.0.0/24

  

四、驗證子網建立完成:

[root@linuxhost1 ~]# neutron net-list

 

相關文章
相關標籤/搜索