您的位置:首页 > 理论基础 > 计算机网络

小技巧:利用虚拟网卡解决虚拟主机引起的异构网络问题

2015-02-05 09:47 609 查看
在开发过程中,需要模拟几个虚拟主机,以实现分布式环境的部署,利用VMWare建立虚拟主机后,按照默认网络配置,虚拟主机部署DataServer。

在实际的测试过程中,首先Ping虚拟主机的网络,可以Ping通,远程桌面也可以连接上,但是在应用服务调用DataServer时,出现下面的异常“由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算机根据其 NetBIOS 名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持。 (Exception from HRESULT: 0x8004D02B)。”

首先检查主机和虚拟主机的防火墙,MSDTC是基于RPC远程过程调用,端口动态分配的,防火墙影响很大,关闭防火墙,再进一步测试,发现还是有问题,就不是防火墙的问题了。

那剩下的问题,就是主机名称解析的问题了,而两个主机互相解析不到的原因是属于不同的网段,在异构网路中。但是MSDTC的远程过程调用,又必须是基于主机发现,因此要解决此处问题,就面临两种选择,第一种是将虚拟主机配置到同一个网段中,第二个是在虚拟主机和主机的Host文件中,互相添加映射。两者都能解决,但是如果引入多个虚拟主机时,主机映射就不是好主意了,这涉及打通多个异构网路。

将多个虚拟主机部署到同一网段下,VMware提供了几种与主机相连的机制:网桥、NAT、主机模式,其中NAT和主机模式,有点类似于物理路由器的模式,此两种模式下实际上是在虚拟机上构建了虚拟子网,虚拟子网对应的网关与主机IP在同一个IP段,即对主机IP段进行了对应的扩展,如果是应用环境,是在多个虚拟机之间,不涉及主机,这种机制很好。但是恰好测试应用中,一部分调试代码需要放在主机上,因此需要把主机也纳入网路,作为网络的一部分。这种网络部署也就是常见的客户端服务器模式,现在客户端上部署了DataServer,服务器端部署了应用服务,应用服务要调取DataServer那就自然调取不到了,因为每次系统启动的IP和NAT在网关上转换的端口都不一致(NAT是有时效性,NAT不透明)。

剩下的就是桥接模式了,桥接模式有一点是需要将虚拟主机桥接到特定的网卡上,如果在没有网络的环境,因为虚拟主机桥接的网卡没有对应的连接网路,也就无法获取动态IP了,或者是换了网络,可能网段就变了,对应动态IP也变了,这在调试应用时及其不利。

为了解决上述问题,我们可以在设备管理器上,增加一个虚拟网卡,Microsoft Lookback Adapter,虚拟主机桥接到新增的虚拟网卡上,这样虚拟主机和主机之间都有了固定的网卡了,再通过设置固定IP,就实现将二者部署到同一网段中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: