S. *_*ini 6 openstack devstack openstack-neutron floating-ip
根据官方文档,我正在尝试在虚拟机Devstack上的Ubuntu 18.04 ServerOS上部署OS。devstack节点只有一个网卡(ens160)通过以下CIDR连接到网络10.20.30.40/24。我需要在该网络上公开访问我的实例(从10.20.30.240到10.20.30.250)。因此,我还是设法通过以下官方浮动IP 文档来形成此local.conf文件:
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
PUBLIC_INTERFACE=ens160
HOST_IP=10.20.30.40
FLOATING_RANGE=10.20.30.40/24
PUBLIC_NETWORK_GATEWAY=10.20.30.1
Q_FLOATING_ALLOCATION_POOL=start=10.20.30.240,end=10.20.30.250
Run Code Online (Sandbox Code Playgroud)
这将导致形成一个br-ex具有全局IP地址10.20.30.40和辅助IP地址10.20.30.1的网关(网关已经在网络上;PUBLIC_NETWORK_GATEWAY参数不是在谈论网络上的真实网关吗?)
现在,在成功部署之后,禁用ufw(根据此方法),创建具有用于ping和ssh的适当安全组的cirros实例并附加浮动IP,我只能在devstack节点上访问我的实例,而不能在整个网络上访问我的实例!同样从cirros实例内部,我无法访问外部世界(即使我可以从devstack节点访问外部世界)
之后,观看此视频,我对local.conf文件进行了如下修改:
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
FLAT_INTERFACE=ens160
HOST_IP=10.20.30.40
FLOATING_RANGE=10.20.30.240/28
Run Code Online (Sandbox Code Playgroud)
成功部署和实例设置后,我仍然只能在devstack节点上访问我的实例,而不能从外部访问!但是好消息是我可以从cirros实例内部访问外界。
任何帮助,将不胜感激!
更新资料
在第二种配置中,在tcpdump对实例浮动IP执行ping操作时检查数据包,我观察到实例的浮动IP的who-has广播数据包从网络路由器到达devstack节点。但是不会is-at生成任何答复,因此ICMP数据包不会路由到devstack节点和实例。
因此,通过一些技巧,我创建了响应,然后一切正常。但这当然不是解决方案,我认为devstack应该开箱即用而无需任何调整,这可能是因为devstack的配置错误。
经过 5 天的测试、研究和讲座,我发现了这一点:Openstack VM 无法在 LAN 上访问
在节点上输入以下命令devstack:
echo 1 > /proc/sys/net/ipv4/conf/ens160/proxy_arp
iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
干杯!
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |