同时 ssh 到 dom0 和 domU,断开与 dom0 的连接

同时 ssh 到 dom0 和 domU,断开与 dom0 的连接

当通过桥接配置连接网络到 domU 时,同时打开到 dom0 和 domU 的 ssh 连接会随机断开 dom0 连接(对等方重置连接)并且不允许我重新登录。

授权是通过 ssh 密钥完成的。有什么解决方法吗?

编辑:有关环境的更多细节

dom0

# 猫/proc/版本
Linux 版本 2.6.18-128.1.10.el5xen ([电子邮件保护]) (gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP 2009 年 5 月 7 日星期四 11:07:18 EDT

域名

# 猫/proc/版本
Linux 版本 2.6.9-78.0.22.ELxenU([电子邮件保护]) (gcc 版本 3.4.6 20060404 (Red Hat 3.4.6-10)) #1 SMP 2009 年 4 月 30 日星期四 19:39:33 EDT

Xen 版本 3.1.2-128.1.10.el5

我首先忘记提及的重要细节:仅当 dom0 具有关联的外部 IP 时才会发生这种情况。

当前解决方案:dom0 上没有外部 IP,通过 domU -> dom0 路径访问 dom0。当有一个单独的 domU 只提供此路由时,这可能相对安全。我仍然可以远程连接到 dom0 并在需要时重新启动其他机器。

EDIT2:有关 dom0 上的 MAC 地址的其他信息

dom0

# ifconfig|grep HWaddr
bond0 链路封装:以太网 HWaddr 00:04:23:DC:28:60  
bond0.100 链路封装:以太网 HWaddr 00:04:23:DC:28:60  
eth0 链路封装:以太网 HWaddr 00:04:23:DC:28:60  
eth1 链路封装:以太网 HWaddr 00:04:23:DC:28:60  
tap0 链路封装:以太网 HWaddr 7E:CE:49:45:3F:2E  
vif4.0 链路封装:以太网 HWaddr FE:FF:FF:FF:FF:FF  
vif4.1 链路封装:以太网 HWaddr FE:FF:FF:FF:FF:FF  
vif22.0 链路封装:以太网 HWaddr FE:FF:FF:FF:FF:FF  
xenbr0 链路封装:以太网 HWaddr 00:04:23:DC:28:60  
xenbr1 链路封装:以太网 HWaddr 00:04:23:DC:28:60

看起来重复 MAC 地址确实存在一些问题。

答案1

根据您目前提供的信息,我认为问题在于 MAC 地址重复,而断开连接可能是由于以太网端口所经过的交换机造成的。

也就是说会有一些 MAC 地址重复。我刚刚检查了我正在使用的一台 Xen 服务器,当我运行以下命令时,我得到了以下结果:ifconfig | grep HWaddr

eth0      Link encap:Ethernet  HWaddr 00:E0:81:2D:66:AC  
eth1      Link encap:Ethernet  HWaddr 00:E0:81:2D:66:AD  
peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
peth1     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
vif0.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
vif0.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
vif31.0   Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
vif31.1   Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
xenbr0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  

这是在 RHEL5 Xen 3.0.3 服务器上,所以我假设接口差异是基于 3.0.3 和 3.1.2 之间的变化。除此之外,您可以看到我的 eth0 和 eth1 接口是不同的 MAC 地址,而您的接口是相同的。pethX 和 vifX.X 条目都是 Xen 的虚拟接口,因此 MAC 地址 FE:FF:FF:FF:FF:FF 完全没问题。

xenbr0 是 eth0 连接的网桥,xenbr1 是 eth1 的网桥,使用相同的 MAC 地址。virbr0 接口是内部虚拟网络的网桥,由于启用了生成树协议,因此 MAC 地址为 00:00:00:00:00:00。您可以通过运行以下命令来确认系统上的桥接,运行后brctl show应显示以下内容:

bridge name bridge id       STP enabled interfaces
virbr0      8000.000000000000   yes     
xenbr0      8000.feffffffffff   no  vif31.0
                            peth0
                            vif0.0
xenbr1      8000.feffffffffff   no  vif31.1
                            peth1
                            vif0.1

答案2

由于没有其他人在您的问题评论中要求的详细信息,我猜测是一些奇怪的路由问题,例如错误配置的 NAT。

可以尝试的一种解决方法是在 domU 或 dom0 中的不同端口上运行 sshd,看看是否有效。如果此方法可以解决连接断开问题,则将支持以下建议:NAT 设置错误,因此 port-22-to/from-domU 的转换表条目会被 port-22-to/from-dom0 的条目破坏。不过,如果此“修复”有效,请不要将其保留在原处 - 您需要解决路由问题,否则会导致其他问题。

如果您有重复的 MAC 地址,此解决方法也可能会产生预期的效果,正如 katriel 所建议的那样,因此请先检查这种可能性。

答案3

我做了很多次,知道这个方法会起作用。另外,您根本不需要考虑端口。要从挂载到的 vm guest 连接到主机的终端,我执行以下操作。xenserver 的设置方式是限制端​​口流量。我尝试学习这一点并尝试使用托管方法,但后来意识到我还有另一种选择。它要求您操作的 vm 与主机所在的网络建立外部连接。通过静态 ip 进行管理是一种简单的方法。

假设:

  1. “host_a”(包含vm_a)
  2. “vm_a”与host_a共享ip,并且配置了外部网卡。
  3. “主机_b”

如果您可以从虚拟机通过 ssh 连接到网络上的其他计算机,则说明假设 2 已正确配置。这是必需的,因为我们将通过这种方式连接到“host_a”。要从 VM_A 上的 ssh 会话进行连接,您可以 ssh 到 HOST_B。

你的终端看起来会像这样。

[root@vm_a]$ssh root@host_b
[roo@host_b]#ssh root@host_a

现在我们已经制作了一个有趣的小圆圈,并连接到主机终端。还有其他方法可以通过移植直接连接,但 2 条线对我来说更简单。

相关内容