分享

为什么固定ip是不能访问,而浮动ip是可以ping通


本文为问题型总结及对问题原因的分析





今日在学习openstack的网络,我们用的是flatdhcp这种网络模式。一直有个疑惑,为什么固定ip是不能访问,而浮动ip是可以ping通。这是怎么做到的。
其实固定ip和浮动ip本质是没什么区别的,先需要看下iptables的一些知识

002528_vnI2_112038.png


假设我们在云主机上ping 浮动ip 192.168.139.7,那么是直接从本地进程出发,到路由表,走output链
查看iptables的规则,可以看到在nat的表中有一个dnat的规则,也就是

  1. Chain nova-network-OUTPUT (1 references)
  2. target     prot opt source               destination         
  3. DNAT       all  --  0.0.0.0/0            192.168.139.7        to:192.168.138.17
复制代码

既然修改的是nat表中的output链,这个过程是把目标访问是浮动ip变为固定ip。这个可以通过,而直接ping固定ip是不能通过的,那么只有通过在filter这里的output链中的规则了。果然查看filter可以看到

  1. Chain nova-compute-inst-43 (1 references)
  2. pkts bytes target     prot opt in     out     source               destination         
  3. 28080 4431K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
  4.     0     0 nova-compute-provider  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  5.     0     0 ACCEPT     udp  --  *      *       192.168.138.227      0.0.0.0/0            udp spt:67 dpt:68
  6.     0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set b0f65738cef046168b1dbed09be4c14 src
  7.     0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ! ctstate DNAT
  8.     0     0 ACCEPT     4    --  *      *       0.0.0.0/0            0.0.0.0/0           
  9.     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 1:65535
  10.     0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
  11.     0     0 nova-compute-sg-fallback  all  --  *      *       0.0.0.0/0            0.0.0.0/0
复制代码


其中有一个很重要的DROP!这条规则最后就是在filter的output链路中!
那么如果我们这个ping是从其他地方过来的,数据包又是怎么走的?这个时候在上面的图中走的是数据包到本地进程这条路线,只要有路由就是ping通。
以上都是开通安全规则的情况




欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条