可以ping但无法SSH到Openstack VM实例

有一个多节点MAAS-JUJU-Openstack设置,即nova-cloud-controller,nova-compute和量子/中子网关在不同的主机上。 在此设置中,MAAS和openstack共享10.0.0.0/24作为其管理网络,而Quantum charm通过eth0连接到公共网络10.0.10.0。 我能够生成实例,并为它们分配浮动IP地址。 我也可以ping和从公共网络ping。 此外,位于同一子网上的2个cirros实例可以相互ssh。 但是,我无法通过路由器命名空间ssh到实例,即ip netns exec qr-xxxx ssh -i cirros@privateipaddr ,或来自外部。 我通过仪表板和新星生成了密钥对,结果相似。 还试过chmod 0600 keyssh-add key无济于事。 此处显示了一个示例输出http://pastebin.ubuntu.com/7676660/ ,最终超时。 通过vnc连接到cirros图像,在/ var / log消息下显示以下内容:

 Jun20 14:29:21 cir3 authpriv.info dropbear[364]: Child connection from GatewayPrivateIp:32818 Jun20 14:29:21 cir3 authpriv.info dropbear[364]: Exit before auth: Timeout before auth 

当从公共网络进行ssh时,会观察到类似的日志。 在公共网络访问的情况下,wireshark显示从源到VM的公共地址重复重传ssh ACK,ARP呼叫询问谁拥有源或VM的IP地址,最后,VM发送[FIN,ACK]并关闭连接。

我已经设置了元数据服务器并遵循第二种方法,如OpenStack中的云实例中所述,无法导入公共SSH密钥 ,并且在启动时看到以下内容, http://pastebin.ubuntu.com/7676789/ 。 (不确定这些是否重要:未能获得http:// 169.254.169.254 / 2009-04-04 / user-data warning:用户数据没有ec2元数据)为了隔离测试,我创建了一个新的安全组允许在入口和出口方向上的所有tcp范围。 在我看来,这不是防火墙或策略问题,因为可以连接到端口22,我想知道在启动期间是否生成了错误的元数据。 任何和所有建议表示赞赏。 干杯,

在我们的多节点环境中,问题最终成为数据包碎片。 解决方案是将计算和中子节点的管理网络上的mtu增加到1700,例如,ifconfig ethxxx mtu 1700

在我的3节点openstack实例(ML2 – OpenVSwitch – GRE隧道)中,我不得不将MTU设置为1400.默认MTU为1500.尝试各种MTU大小。

我的元数据有类似的问题,我的解决方案是使用以下内容创建一个名为dnsmasq-neutron.conf的文件:

 dhcp-option-force=26,1400 

并使用指向/etc/neutron/dhcp_agent.ini中的内容

 dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf 

还要检查auth_region = regionOne ,在我的配置中它是r并且在元数据默认配置中它是R

问题 :VM节点,不能ssh到物理节点,物理节点不能ssh到VM节点,但ping在所有节点之间工作。 物理上的虚拟机可以相互成功ssh。

方案
将VM节点NIC MTU值从1500更改为1420
现在,VM节点和物理节点可以相互ssh。