眼下。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的维护中。因此,过一段时间后会被清理掉,这时候就须要又一次加入。

最新文章

  1. Ajax工作原理
  2. Windows下C编程获取软件安装列表信息
  3. distribution 中一直在运行 waitfor delay @strdelaytime 语句
  4. Retro 2013
  5. php读取文件里面的数组做为配置文件
  6. SSH 无密码远程执行脚本
  7. Centos6.4编译安装Node.js(已验证)
  8. firs tday
  9. [转载]关于C++ const 的全面总结
  10. RESTEasy 3.X Helloworld
  11. ora-01031:insufficient privileges 解决方案
  12. Git(一)之基本操作详解
  13. es6 let和const命令(1)
  14. CSS学习笔记day1
  15. xBIM WeXplorer xViewer的导航,相机、剖切、隐藏 等操作
  16. 清明培训 清北学堂 DAY1
  17. Android应用程序MVC框架实例分析
  18. go在ubuntu下安装
  19. Spring Boot国际化开发实战
  20. 为什么 C# 比 C++ 编译快那么多

热门文章

  1. c++ string char* 获取输入值的区别
  2. Laya 屏幕适配
  3. RESTful API接口
  4. 九度oj 1011
  5. iOS第三方网络图片加载- SDWebImage笔记(转)
  6. BZOJ 3238 [Ahoi2013]差异 ——后缀自动机
  7. SPOJ QTREE Query on a tree V ——动态点分治
  8. 转载:CMarkUp使用简介
  9. java.util.ResourceBundle 用法小介
  10. Admin组件-----Django自带