如下图所示: 我们假设将VMP(VDC)服务器放在了客户的核心交换机上,实现跨三层的桌面虚拟化。每个客户的adesk盒子使用不同VLAN里的IP地址连接VDC,通过VDC发布虚拟独享桌面来访问内(外)网段,每个客户的虚拟桌面设置成不同客户所在VLAN的IP地址。 我们先举一个例子,假如我们VMP(VDC)使用的地址所在的VLAN是VLAN 10,每一个客户的adesk盒子能否与VDC通信?如果能,能否访问内(外)网?如下图: 我们先来分析一下数据包怎么走,VLAN 10的adesk首先要连接VDC,数据包到达交换机A后,交换机通过VLAN10里的access接口收到的数据后,就认为这个数据包是VLAN10的包,于是就通过打上VLAN 10的标记,通过trunk(允许所有VLAN通过)发给核心交换机,核心交换机收到VLAN10的包,于是就通过VLAN10的access接口发给VDC,VDC再讲虚拟桌面发布给客户使用(反向和正向数据一样的分析方式),这时候VLAN10的客户就可以使用虚拟桌面了,访问其他的网段如何访问,例如VALN20,VLAN10访问VLAN20通过VMP(因为虚拟机网口都是桥接到VMP物理网卡)的网口将数据包打上VLAN10的标记(虚拟交换机的存在)发到核心,核心查看路由有到达VLAN 20的路由,并将标记的VLAN10的包通过trunk发给交换机A,交换机A上有VLAN 20,就通过VLAN 20的acess接口发给VLAN20的客户端。访问其他网段也是如此。 如果客户盒子是VLAN20,30,40呢,我们继续分析,数据包到达交换机A上,打上VLAN20的标记走trunk发给核心,核心查路由,直接将包通过VLAN10的access接口发给VDC,VDC发布虚拟桌面给客户,也就是说客户现在可以使用虚拟桌面了,那客户的虚拟桌面能访问其他网段么?提醒一下,虚拟桌面可是配置成VLAN20的地址,假如访问VLAN 10吧,由于VMP属于VLAN10,虚拟桌面现在要访问VLAN20的地址,打上VLAN20的标记(配置了虚拟交换机的原因),access属于VLAN10的,收到标记是VALN20的包肯定会丢包的,再者说由于不是同一网段,走默认网关,首先要解析默认网关(此网关非彼网关)的MAC地址,arp广播请求包到达交换机,核心与VMP连接的接口收到arp广播请求包,发现这包是不会给自己的,直接丢弃,虚拟桌面连自己网关的mac都不知道,如何封装,更别提发包了,所以周磊连网关都ping不同,就是这个原因。所以目前客户只能得到虚拟桌面,但是不能访问内网。 那么如果核心连VMP接口是trunk口呢,如下图:
假设adesk盒子是VLAN10的,首先数据包和前面一样打上VLAN10的标记到达核心,核心收到VLAN10的数据包后,走trunk给了VLAN10(虚拟机交换机),而不是给了VDC(即使VDC配置的地址是VLAN10里的地址,但VDC是默认VLAN1的)所以到盒子到VDC就不通了,更别提访问其他网段了。盒子是其他VLAN也是一样的结果 综上所述,如果要和VDC通信,就得使用vmp和vdc的地址使用的是默认VLAN1(native vlan(本征VLAN:允许所有未打标机的通过))里的地址,如果客户native vlan 不是默认的,那vmp和vdc必须配置成不是默认的native VLAN的地址。 大家应该很清楚了,现在在梳理一下,桌面虚拟化测试跨三层注意事项: 1. VMP,VDC必须使用native vlan里的地址(默认是vlan1)(为了盒子能够和VDC通信) 2. Vmp服务器和交换连的接口必须起trunk(允许所有VLAN通过) 3. Vmp服务器上必须配置虚拟桌面对应的虚拟交换机(相当于给出去的数据包打VLAN标记,和trunk一样) 思科的trunk配置: 进入接口后: Switchport mode trunk Switchport trunk native vlan 1(默认为1) Switchport trunk allow vlan all(默认允许所有) 华三交换机trunk配置: 进入接口后: Port link-type trunk Port trunk allow vlan all Port trunk pvid vlan 1(华三交换就native VLAN叫pvid) 对于把VMP服务器放在接入层是否可行,按照以上方式来分析一下就行,这里就不分析了.小试牛刀,大神勿喷.
|