IPtables NAT / Masquerade允许OpenStack实例访问他们正在运行的笔记本电脑外部的站点

时间:2016-04-28 03:24:30

标签: openstack iptables nat

我在Fedora笔记本电脑上运行OpenStack。 Openstack讨厌由NetworkManager管理的网络接口,因此我设置了一个虚拟接口,用作br-ex接口的端口,OpenStack允许实例与外部世界进行通信。我可以很好地连接浮动ips,但它们无法通过br-ex所拥有的子网。我希望他们能够到达笔记本电脑外部的地址。我怀疑需要一些iptables nat / masquerading magic。有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

对于具有3个节点的Centos7 OpenStack,您应该使用网络:

只需安装网络工具并禁用NetworkManager:

yum install net-tools -y;
systemctl disable NetworkManager.service
systemctl stop NetworkManager.service
chkconfig network on

此外,你需要IP表没有firewalld。

yum install -y iptables-services
systemctl enable iptables.service
systemctl disable firewalld.service
systemctl stop firewalld.service

对于控制器节点有一个网卡
对于网络和计算节点,有2个NIC 编辑所有节点上的接口:

  • for network eth0:ip:X.X.X.X(external)eth1:10.0.0.1 - no gateway
  • for Controller node eth0:ip:10.0.0.2 - gateway 10.0.0.1
  • 用于计算节点eth0:ip:10.0.0.3 - gateway 10.0.0.1

设置iptables,如:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A POSTROUTING -o eth0-j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0-j ACCEPT
iptables -A FORWARD -i eth0-o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
service iptables save

还启用转发功能。在文件中:/etc/sysctkl.conf添加行:

net.ipv4.ip_forward = 1

执行命令:

sysctl –p

应该工作。