可以 Ping 但无法通过 SSH 连接到 Openstack VM 实例

可以 Ping 但无法通过 SSH 连接到 Openstack VM 实例

有一个多节点 MAAS-JUJU-Openstack 设置,即 nova-cloud-controller、nova-compute 和 quantum/neutron 网关位于不同的主机上。在此设置中,MAAS 和 openstack 共享 10.0.0.0/24 作为其管理网络,而 Quantum charm 通过 eth0 连接到公共网络 10.0.10.0。我可以生成实例并为它们分配浮动 IP 地址。我还可以 ping 公共网络。此外,位于同一子网上的 2 个 cirros 实例可以相互 ssh。但是,我无法通过路由器命名空间(即)ip netns exec qr-xxxx ssh -i <full path to key> cirros@privateipaddr或从外部 ssh 到实例。我已经通过仪表板和 nova 生成了密钥对,结果相似。也试过了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 警告:没有 user-data 的 ec2 元数据)为了隔离测试,我创建了一个新的安全组,允许所有 tcp 范围在入口和出口方向。在我看来,这不是防火墙或策略问题,因为可以连接到端口 22,我想知道启动期间是否生成了错误的元数据。任何和所有的建议都值得赞赏。干杯,

答案1

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

答案2

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

答案3

我在元数据方面遇到了类似的问题,我的解决方案是创建一个dnsmasq-neutron.conf以以下内容命名的文件:

dhcp-option-force=26,1400

并将其指向/etc/neutron/dhcp_agent.ini使用

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

还要检查auth_region = regionOne内部/etc/neutron/metadata_agent.ini,在我的配置中它是用的r,在元数据默认配置中它是用的R

答案4

问题:VM 节点无法通过 ssh 连接到物理节点,物理节点也无法通过 ssh 连接到 VM 节点,但所有节点之间均可 ping 通。物理节点上的 VM 可以成功通过 ssh 连接到彼此。

解决方案
将虚拟机节点网卡 MTU 值从 改为15001420现在
虚拟机节点和物理节点可以互相 ssh 了。

相关内容