FAQ:在D-link交换机中有vlan 3、5、10等,并且上级配置有两个Dhcp服务器,当客户机自动获取ip地址的时候,会发生获取到不同vlan的ip地址

解决方案:

最后发现是Asymmetric VLAN在搞怪,设置为disabled之后,却发现交换及配置文件全部丢失,重新配置,却发现同一port不能设置跨vlan,每个port只能有一个untagged归属vlan,设置完毕后,测试正常。
               百度一下:Asymmetric VLAN,发现只有D-link有这个个东东。
 Asymmetric VLAN翻译成中文就是非对称VLAN,为什么叫做非对称呢?它的适用场景是什么? 
考虑以下的场景:PC A和PC B之间需要隔离开,但他们又要共享Server C的资源,并且只有一台2层交换机可用,这种情况下能否达到需求? 
显然,PC A和PC B应分属不同的VLAN,这样才能做到隔离,共享Server C则还需要另外划分一个VLAN,并且PC A PC B和Server C都要在这个VLAN中。假设PC A PC B和Server C都是VLAN tag un-aware的,我们做如下的配置: 
1)PC A连接交换机的port1,PC B连接交换机的port2,Server C连接交换机的port3 2)划分port1 port3 为VLAN 10, port 2 port3为VLAN 20, port 1 port2 port 3为VLAN 30. 显然port1在VLAN 10中必须是untagged port,port2在VLAN 20中必须是untagged port, port3在VLAN 30中必须是untagged port。 前面说了, PC A PC B和Server C都是不认识带VLAN标签的封包的,如果不是untagged port那根本无法通信。   
OK,下面分析封包的走向流程。假设交换机的转发表中还没有学习到任何信息,PC A向Server C发送一个请求,封包进入port1,交换机为这个封包打上pvid = 10,交换机学习到一条vid 10 MAC A port 1的信息记录到转发表中,这个封包被转发到port 3(vlan 10),Server C收到这个请求开始回复,Server C发出的封包进入port 3,封包被交换机打上pvid = 30,但转发表中有关vlan 30的目的MAC和port都找不到,因此交换机将这个回复在vlan 30中广播,这样PC A和PC B都收到了Server C的回复(它们都在vlan 30中)。这样就没有做到PC A和PC B的隔离。从这里就可以看出,如果按照这样的方式是不可能在只有一台2层交换机的情况下做到Server C被共享,且PC A和PC B还能隔离开来的。PC B同Server C的通信过程一样,不再赘述。