1、 neutron-client傳送deletesecuritygroup訊息(訊息中包含要刪除的安全組資訊)給neutron-server,neutron-server呼叫securitygroupplugin中的delete_security_group方法處理訊息;
2、 在delete_security_group方法中檢查安全組是否繫結port,如果繫結,則返回不能刪除該安全組;如果沒有繫結的port,則直接刪除。
3、 securitygroup plugin會回應deletesecuritygroup result給neutron-client。刪除成功則返回刪除的安全組id;失敗則返回失敗原因。
**如下:
neutron.db.securitygroups_db.py
classsecuritygroupdbmixin(ext_sg.securitygrouppluginbase)
def delete_security_group(self, context, id):
filters =
#獲取安全組繫結的port
ports =self._get_port_security_group_bindings(context, filters)
if ports: #
如果存在繫結的port,則不能刪除
raiseext_sg.securitygroupinuse(id=id)
# confirm security group exists
sg = self._get_security_group(context,id)
if sg['name'] == 'default' and not context.is_admin:
raiseext_sg.securitygroupcannotremovedefault()
kwargs = {
'context': context,
'security_group_id': id,
'security_group': sg,
# note(armax): a callback exceptionhere will prevent the request
# from being processed. this is a hookpoint for backend's validation;
# we raise to propagate the reason forthe failure.
try:
registry.notify(
resources.security_group, events.before_delete, self,
**kwargs)
except exceptions.callbackfailure as e:
reason = _('cannot be deleted dueto %s') % e
raiseext_sg.securitygroupinuse(id=id, reason=reason)
withcontext.session.begin(subtransactions=true):
context.session.delete(sg) #
刪除安全組
kwargs.pop('security_group')
registry.notify(resources.security_group, events.after_delete, self,
**kwargs)
neutron的安全組規則不生效的原因
最近新部署的openstack環境安全組總是不生效,檢視了配置檔案都沒有什麼問題,只是比較奇怪的是在計算節點的iptables中的forward鏈沒有任何的包被匹配。這裡強調一點,安全組主要是依靠計算節點的iptables的forward鏈來生效的,每加一條規則就會根據網絡卡作為匹配條件,來生成一條...
安全組簡介
安全組 安全組是乙個邏輯上的分組,為同乙個 vpc內具有相同安全保護需求並相互信任的彈性雲伺服器提供訪問策略。安全組建立後,使用者可以在安全組中定義各種訪問規則,當彈性雲伺服器加入該安全組後,即受到這些訪問規則的保護。系統會為每個使用者預設建立乙個預設安全組,預設安全組的規則是在出方向上的資料報文全...
安全組預設規則
我們將聊聊系統自動建立的預設安全組和你自己建立的安全組的預設規則。ps 安全組是有狀態的。如果資料報在出方向 outbound 被允許,那麼對應的此連線在入方向 inbound 也被允許。更多有關安全組的相關概念,請參見安全組。一 系統自動建立的預設安全組 在乙個地域建立ecs例項時,如果當前賬號在...