如何将Devstack浮动IP暴露给外部世界?

问题描述 投票:0回答:1

对于该项目,我的硬件配置是主机ESXi 6.7(操作系统引导USB 8GB),i7、8个vCPU,16GB RAM,128GB SSD和500GB HDD。我创建了一个虚拟机(7个vCPU,15GB RAM,100GB SSD,1个NIC),并安装了Ubuntu 18.04(LVM文件系统)。我用“ stack.sh”安装了Devstack。我的Devstack“ local.conf”包括有关网络的那些行:

[[local|localrc]]
...
IP_VERSION=4
HOST_IP=192.168.1.104
FLOATING_RANGE="192.168.1.224/27"
Q_FLOATING_ALLOCATION_POOL=start=192.168.1.226,end=192.168.1.254

[Devstack脚本添加了vibr0和br-ex:

ens160: 192.168.1.104, 
virbr0: 192.168.122.1
br-ex:  192.168.1.225
stack@devstack:~$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.1.104/24 brd 192.168.1.255 scope global ens160
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
8: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 192.168.1.225/27 scope global br-ex
       valid_lft forever preferred_lft forever

使用仪表板Horizo​​n和Project演示完成安装:

  1. 在安全组中,我向ICMP,SSH以及HTTP和HTTPS添加了入口规则;
  2. 在专用网络中,我编辑了专用子网以添加DNS名称服务器(8.8.8.8、1.1.1.1等);
  3. 我分配了一些浮动IP;
  4. 我启动了一些Cirros VM,并将它们与一些浮动IP相关联。

技巧1:创建密钥对并保存私钥的好主意。提示2:在Ubuntu 16上,要将用户/密码设置为云映像,请在“启动实例”中将这些行放在“配置”中:

#!/bin/bash
echo "root:secret" | chpasswd

现在,我可以:

  • 从我的Cirros VM到达我的本地网络和Internet(ping google.com);
  • 从Cirros VM ping其他Cirros VM(ping 10.0.0.x或192.168.1.x);
  • 从我的Devstack VM中,通过ip(ping 192.168.1.236)ping Cirros VM。

我什至可以在Devstack主机中创建iptable NAT规则以公开VM特定的端口。例如:

sudo iptables -t nat -A PREROUTING -p tcp --dport 60080 -j DNAT --to 192.168.1.236:80

但是,这是我的问题:我无法直接从外部devstack主机访问Cirros VM浮动ip。我不知道如何向世界公开浮动IP!

所以,我的问题是如何将Devstack浮动ip公开给外部世界?

更多注释:

  • 因为我可以在Devstack主机外部ping 192.168.1.225,所以我测试了在路由器中创建一条静态路由,但这不能解决我的问题(或者我犯了一些错误!)。
  • 我将VMware vSwitch设置为混杂模式,但没有任何效果。
ubuntu-16.04 vmware openstack esxi devstack
1个回答
0
投票

嗯,经过5天的研究,演讲和来自stackoverflow审阅者的骚扰,我发现可以解决问题的台词:

echo 1 > /proc/sys/net/ipv4/conf/ens160/proxy_arp
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Openstack VM is not accessible on LAN

Openstack in a box: Setting up Devstack Havana on your local network

祝你好运。>>

© www.soinside.com 2019 - 2024. All rights reserved.