zoukankan      html  css  js  c++  java
  • 一次与iptables有关的Openstack排错

    先说下环境: 宿主机A(192.168.1.242)上运行着实例a(192.168.1.176), 宿主机B(192.168.1.56)上运行着实例b(192.168.1.50).

    用户说从实例b上telnet实例a的9000端口, 但是在实例a上通过netstat -an | grep 9000查看到的Remote IP并不是实例b的, 而是宿主机B的网卡IP(192.1638.1.56). 于是我想是不是把实例a迁移到宿主机B上来就可以解决问题. 但是很可惜, 答案是否.

    此时的环境: 宿主机B上运行着实例a和b.

    于是我从iptables着手排查. 发现在宿主机B上有如下几条重要的规则链:

    Chain nova-network-snat (1 references)
     pkts bytes target     prot opt in     out     source               destination         
     312K   20M nova-network-float-snat  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
        0     0 RETURN     all  --  *      *       192.168.1.60         0.0.0.0/0           
        2   120 RETURN     all  --  *      *       192.168.1.50         0.0.0.0/0           
    80764 5060K SNAT       all  --  *      *       192.168.1.32/27      0.0.0.0/0            to:192.168.1.56
    
    
    Chain nova-postrouting-bottom (1 references)
     pkts bytes target     prot opt in     out     source               destination         
     312K   20M nova-compute-snat  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     312K   20M nova-network-snat  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     231K   15M nova-api-snat  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    
    
    Chain POSTROUTING (policy ACCEPT 5 packets, 300 bytes)
     pkts bytes target     prot opt in     out     source               destination         
     368K   23M nova-compute-POSTROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     368K   23M nova-network-POSTROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     312K   20M nova-api-POSTROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     312K   20M nova-postrouting-bottom  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

    此时问题就显而易见了: 192.168.1.33--62范围里的地址会通过SNAT动作将源地址转换为192.168.1.56. 所以在实例b上看到192.168.1.56这个地址也就解释的通了!

    由于不清楚这条规则有没有实际作用, 所以我采用手动插入以下规则使之生效:

    iptables -t nat -I nova-network-snat 2 -s 192.168.1.50/32 -j RETURN
  • 相关阅读:
    Word 2007 测试
    全硬盘安装Win Vista 6000 RTM方法(转)
    Javascript 解析,格式化日期 (转)
    转:使用hgfs实现vmare文件传输一法,无需任何网络相关设置
    配置和运行版本验证测试(转自msdn)
    TFS错误一则(資料集 'IterationParam' 的查詢執行失敗)
    ghostdoc 1.9.5 for vista install
    January 2007 Community Technology Preview 1 安装
    Changing to a friendly Team Foundation Server Name (舶来品)
    命令行使用小结
  • 原文地址:https://www.cnblogs.com/IvanChen/p/5097736.html
Copyright © 2011-2022 走看看