安装完成openstack nova后,启动虚拟机,发现虚拟机无法访问外部网络。通过几天的研究后发现,quantum是通过iptables来实现public IP到private IP的映射关系。而Folsom的最终版中,quantum-l3-agent-POSTROUTING的顺序存在问题。这条链中,
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ! ctstate DNAT
放在第一条,导致后面的规则不会生效,也就是:
2 quantum-l3-agent-snat all -- 0.0.0.0/0 0.0.0.0/0
中的规则不生效。
改正方法其实很简单,将这两条规则的顺序颠倒一下,即可。也就是说,在iptables中,这条规则应该是:
Chain quantum-l3-agent-POSTROUTING (1 references)
num target prot opt source destination
1 quantum-l3-agent-snat all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ! ctstate DNAT