今日在学习openstack的网络,我们用的是flatdhcp这种网络模式。一直有个疑惑,为什么固定ip是不能访问,而浮动ip是可以ping通。这是怎么做到的。
其实固定ip和浮动ip本质是没什么区别的,先需要看下iptables的一些知识
假设我们在云主机上ping 浮动ip 192.168.139.7,那么是直接从本地进程出发,到路由表,走output链
查看iptables的规则,可以看到在nat的表中有一个dnat的规则,也就是
Chain nova-network-OUTPUT (1 references)
target prot opt source destination
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可以看到
Chain nova-compute-inst-43 (1 references)