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
  • 相关阅读:
    poj 3176 三角数和最大问题 dp算法
    poj 2236 网络连接问题 并查集
    poj 3614 奶牛美容问题 优先队列
    得时无怠
    Android入门(一)
    javascript之apply和call
    写一份面试答卷
    拿来即用的loading效果
    关于回调的唠叨
    Nodejs Guides(四)
  • 原文地址:https://www.cnblogs.com/IvanChen/p/5097736.html
Copyright © 2011-2022 走看看