1. 程式人生 > >在OpenStack中繞過或停用security group (iptables)

在OpenStack中繞過或停用security group (iptables)

dpt drop 通過 icm i-o opensta ping return val

眼下。OpenStack中默認採用了security group的方式。用系統的iptables來過濾進入vm的流量。這個本意是為了安全,可是往往給調試和開發帶來一些困擾。

因此,暫時性的禁用它能夠排除由於iptables規則錯誤問題帶來的網絡不通等情況。

在H版本號中,能夠通過改動neutron plugin.ini中的firewall配置來禁用security group。

但在I版本號中。類似的操作僅僅會讓vm出來的流量都無法通過安全網橋。

因此,在正常配置啟用security group的情況下,我們須要想辦法來讓流量繞過它。

通過《深入理解OpenStack中的網絡實現》中的分析。我們知道。從vm出來的流量被過濾的規則在 neutron-openvswi-o9LETTERID鏈上。而到vm裏面的規則在neutron-openvswi-i9LETTERID鏈上。

因此,我們僅僅須要相應在鏈上加入同意通過的規則就可以。

首先。查看vm出來的安全規則鏈上的規則

iptables -nvL neutron-openvswi-o9LETTERID

普通情況下,類似於以下幾條

Chain neutron-openvswi-o4430511a-6 (2 references)
pkts bytes target prot opt in out source destination
6 1968 RETURN udp -- * * 0.0.0.0

/0 0.0.0.0/0 udp spt:68 dpt:67
1437 121K neutron-openvswi-s4430511a-6 all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0
/0 state INVALID
278 23352 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
1159 97356 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 neutron-openvswi-sg-fallback all -- * * 0.0.0.0/0 0.0.0.0/0

可見,默認同意通過的流量僅僅有源port為67而目標port68的dhcp請求流量,另外就是neutron-openvswi-s4430511a-6鏈中,會對源地址和源mac進行檢查,假設跟分配到的一致,則同意通過。

比如,我們讓全部的ping包(無論源地址和源mac)都同意從vm發出來,則須要加入

iptables -I neutron-openvswi-o9LETTERID -p icmp -j RETURN

更簡單粗暴的,同意全部的從vm出來的流量。不進行不論什麽檢查。則須要加入

iptables -I neutron-openvswi-o9LETTERID -j RETURN


須要註意的是,這樣加入的規則,不在neutron的維護中。因此,過一段時間後會被清理掉,這時候就須要又一次加入。

在OpenStack中繞過或停用security group (iptables)