Contents [hide] |
---|
發現的問題
3臺虛擬機器在同一宿主機,防火牆配置都一樣,但是他們的網路表現不一致,有的能ping通,能ssh,有的能ssh,不能ping通。
解決過程
看完了在操作解決!在介面中點選主機發現主機規則上有一個default id=61,而未應用規則中還有一個default id=1,而我們的安全規則組中只存在一個default id=1,所以可以判定,default id=61是後來建立了和系統default id=1相同的防火牆,而實際上該防火牆在後面的操作中已經刪除。 而主機在建立過程中,載入防火牆規則是以防火牆名稱作為識別符號,而不是以防火牆的ID為識別符號,所以我們在建立防火牆的時候,需要要求防火牆名稱不能重複。 而防火牆在刪除的過程中,我們也需要知道是否有主機應用該防火牆才能決定刪除與否。
刪除臨時錯誤資料
1
2
3
4
5
6
7
8
9
|
mysql> select * from security_group_instance_association where security_group_id=61; +---------------------+------------+---------------------+------+-------------------+--------------------------------------+---------+ | created_at | updated_at | deleted_at | id | security_group_id | instance_uuid | deleted | +---------------------+------------+---------------------+------+-------------------+--------------------------------------+---------+ | 2014-11-13 09:54:04 | NULL | 2014-11-13 09:56:55 | 1366 | 61 | e608f85a-0a8e-43bb-b1fc-07e3b454c8e7 | 1366 | | 2014-11-13 09:55:52 | NULL | 2014-11-13 09:58:49 | 1369 | 61 | 841dfad9-3b07-4cf8-a129-24660b1e3b5f | 1369 | mysql> delete from security_group_instance_association where id =1372; Query OK, 1 row affected (0.04 sec) |
這樣當前主機中就沒有了default id=61的規則了。我們還要查詢是否有主機名為default的防火牆規則。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
mysql> select * from security_groups where name= "default" ; +---------------------+------------+------------+----+---------+-------------+----------------------------------+----------------------------------+---------+ | created_at | updated_at | deleted_at | id | name | description | user_id | project_id | deleted | +---------------------+------------+------------+----+---------+-------------+----------------------------------+----------------------------------+---------+ | 2014-07-01 03:32:30 | NULL | NULL | 1 | default | default | 9c1ef7685d2a4730824cfb1eb1b0f7e0 | 8ce839b479074083aac8c7101a4e3593 | 0 | | 2014-07-01 05:13:09 | NULL | NULL | 4 | default | default | 59f5b5f637ff42319b7c54fca17e5599 | c8a6e5e40980442887255c53ae8a80ac | 0 | | 2014-07-15 10:03:13 | NULL | NULL | 13 | default | default | 1a0b21088e69480c860c32b9a2c733dc | f347580bc86e45d28753680267a581c2 | 0 | | 2014-09-02 08:57:35 | NULL | NULL | 25 | default | default | 8bef7299e2534b8dbbace89fddf17f80 | 02787b5a67b14bda8fab79caca734396 | 0 | | 2014-09-09 10:18:35 | NULL | NULL | 27 | default | default | b249207d7d3a4e40979d667b0fdd1d84 | 127857f79b8f4dd5a87f23298d3f72c2 | 0 | | 2014-10-29 05:55:33 | NULL | NULL | 48 | default | default | c336cc2d03774f89b9bccbbfb0d96f96 | 7bf38fd4bc1c4ba7ab8da412a7e4157c | 0 | | 2014-11-06 06:30:55 | NULL | NULL | 53 | default | default | 31f50cdf18954385af557a55d8ed0fbd | 0402811ede7247bf8b2b7eabba597d95 | 0 | | 2014-11-27 03:10:11 | NULL | NULL | 67 | default | default | 2f25e90d28b842cc992e1ef0f2766d90 | a89bd4ea815b46d3a58ccdbf05bc8bc0 | 0 | +---------------------+------------+------------+----+---------+-------------+----------------------------------+----------------------------------+---------+ |
發現很多,為什麼?
其實前面的解決辦法是錯的
我們發現這裡的project_id都不一樣!實際上是每個專案會有一個default。
storm的openstack主機不通是因為我們在操作防火牆的時候沒有正確使用許可權,每一個專案都有一個防火牆許可權default,主機建立的時候會載入該專案的default防火牆。
並且每個專案自定義的防火牆只能使用該專案的使用者名稱,密碼登入上去進行操作。
如果使用超級管理員的防火牆賦給具體專案的主機,將導致:如果nova-network重啟,或機器重啟,主機不能訪問。
結論:具體專案需要使用具體專案的使用者登入對其主機進行操作。請@penny以後在測試的時候多測試普通專案的情況。