全文閱讀傳送門:http://www.ustack.com/wp-content/uploads/2013/11/Neutron%E9%98%B2%E7%81%AB%E5%A2%99.pdflinux
原做者:http://www.ustack.com/安全
如下是個人摘錄:網絡
數據模型
防火牆服務底層數據模型由三個類組成:FirewallPolicy, FirewallRule和Firewall。
FirewallRule是咱們所說的防火牆規則,定義了包過濾所需的信息和匹配後的動做。
FirewallPolicy由若干個FirewallRule組成,它被做爲模板來建立Firewall。
Firewall是系統最終要實現的防火牆。
Neutron做爲多租戶的網絡服務模型,防火牆的這幾個類都有租戶ID屬性。這樣租戶A的防火牆信息和租戶B的防火牆信息就隔開了。FirewallPolicy有個audited屬性,在參考實現中尚未實現。參考實現目前只支持一個租戶只有一個Firewall。spa
防火牆與安全組
安全組很像防火牆參考實現,它們都是使用IPTables規則來作包過濾。他們之間的區別在於:
1. 安全組由L2 Agent來實現,也就是說L2 Agent,好比neutronopenvswitchagent和neutronlinuxbridgeagent,會將安全組規則轉換成IPTables規則,並且通常發生在全部計算節點上。防火牆由L3 Agent來實現,它的規則會在租戶的Router所在的L3 Agent節點上轉化成IPTables規則。
2. 防火牆保護只能做用於跨網段的網絡流量,而安全組則能夠做用於任何進出虛擬機的流量。
3.防火牆做爲高級網絡服務,將被用於服務鏈中,而安全組則不能。
在Neutron中同時部署防火牆和安全組能夠達到雙重防禦。外部惡意訪問能夠被防火牆過濾掉,避免了計算節點的安全組去處理惡意訪問所形成的資源損失。即便防火牆被突破,安全組做爲下一到防線還能夠保護虛擬機。最重要的是,安全組能夠過濾掉來自內部的惡意訪問。調試
總結
Neutron的防火牆服務是一個高級網絡服務,目標是做爲網絡服務鏈中的一個服務節點而存在。它和安全組構成了雙重防禦。防火牆的參考實現做用在Neutron的路由器上,因此只對跨子網的流量起做用。對於來自同網段的惡意攻擊,咱們還須要安全組來防禦。
防火牆Policy的規則是有順序的,並且每一個規則能夠被單獨禁用和激活。這個特性給防火牆規則的部署和調試都提供了很強的靈活性。資源