使用iptables 实现openstack的灵活部署
2013-05-16 09:25 梁小白 阅读(1998) 评论(0) 编辑 收藏 举报在Openstack应用中,包括官方的各种资料都推荐至少将一个api接口服务器暴露在外的方案,大多数情况这个部署会满足各种需求。
但当网络特别情况的时候,我们可以使用iptables的ip映射或者端口映射来给Openstack增加灵活性.
在我们公司的测试环境中,所有的服务器都部署在机房,而机房是没有无线连接的,当我们给客户演示的时候,需要连接到测试环境,然而会议室只有无线,这种情况就需要一个中间代理将api服务器ip转换为无线网段可以访问的ip.
下面用iptables的ip映射来实现。
api server ip: 100.10.10.52 (eth0) 分配的无线代理ip: 192.168.0.52 (wlan0) 100.10.10.1 (eth0)
1. 在api server上配置网关 ,让api server 可以找到代理网关.
route add default gw 100.10.10.1
2. 代理网关配置:
查看当前路由情况: iptables -nvL --line-number -t nat 添加入站路由(无线用户访问192.168.0.52时发生,iptables 理解为目的地址转换): iptables -t nat -I PREROUTING -i wlan0 -d 192.168.0.52 -j DNAT --to 100.10.10.52 添加出站路由(api server的数据返回无线用户时发生, iptables 理解为源地址转换) iptables -t nat -I POSTROUTING -o wlan0 -s 100.10.10.52 -j SNAT --to 192.168.0.52
3.测试.测试时一定要在代理服务器之外测试,因为如果直接在代理服务上测试,数据没有通wlan0 网卡,不会触发iptables nat,通过 cat /proc/net/ip_conntrack 可以看到数据流跟踪信息。
4.测试通过后,在无线用户使用时,将相关的api地址改为192.168.0.52即可。例如。无线用户需要访问vnc
sed -i "s/100.10.10.52:6080/192.168.0.52:6080/g" /etc/nova/nova.conf
service nova-compute restart
5. 以上的部署场景可以引申到复杂环境的其它部署中去。
6.设置iptables 完成后,需要保存,否则重启后会配置会丢失
保存到文件 iptables-save > /etc/network/iptables 启动时自动从文件恢复 vi /etc/rc.local iptables-restore /etc/network/iptables
本文为原创内容,转载请注明出自 梁小白博客(http://biangbiang.cnblogs.com)