FusionCompute R3C00业务虚拟机无法与网关正常通信

发布时间:  2015-03-05 浏览次数:  445 下载次数:  0
问题描述
FusionCompute R3C00,创建的Win2008业务虚拟机无法与网关正常通信:
1. VM i-0000000A,所在Portgroup Vlan为101,手动配置IP 10.42.2.240,未安装PVdriver,可ping同网关10.42.2.254;
2. VM i-00000008,所在Portgroup Vlan为101,手动配置IP 10.42.2.220,安装PVdriver,无法ping同网关10.42.2.254。
处理过程
1. 在交换机上查询Vlan101下的MAC信息,可以看到VM i-00000008的MAC是通过GE0/0/14获取的,这与规划一致;


2. VNC登陆VM i-00000008查看PVdriver安装情况,也是正常的;


3. 虚拟机所属的Portgroup配置为101,与交换机的逻辑连接也符合预期。


4. 虚拟机所属的Portgroup配置不正确。
    a. 使用virsh list查询到i-0000000A的Id是62,使用ovs-vsctl show | more查询CNA节点上该VM对应的网桥上信息是正确的:
        Port "tap62.0"
                tag: 101
                Interface "tap62.0"
                type: system
    b. 上传并拷贝软件 libpcap0-0.9.8-50.4.80.x86_64.rpm和tcpdump-3.9.8-1.21.x86_64.rpm包至GalaX8800目录,在VM上ping网关,只有arp报文,未发现有tcp报文,说明VM没有发包:
        CNA01:~ # cd /home/GalaX8800/
        CNA01:/home/GalaX8800 # rpm -ivh libpcap0-0.9.8-50.4.80.x86_64.rpm
        Preparing...                ########################################### [100%]
        1:libpcap0               ########################################### [100%]
      
        CNA01:/home/GalaX8800 # rpm -ivh tcpdump-3.9.8-1.21.x86_64.rpm
        Preparing...                ########################################### [100%]
        1:tcpdump                ########################################### [100%]

        CNA01:/home/GalaX8800 # tcpdump -i vif61.0
        tcpdump: WARNING: vif61.0: no IPv4 address assigned
        tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
        listening on vif61.0, link-type EN10MB (Ethernet), capture size 96 bytes
       10:40:37.381602 arp who-has 10.42.2.220 tell 10.42.2.240
       10:40:37.911910 arp who-has 10.42.2.220 tell 10.42.2.240
       10:40:38.911978 arp who-has 10.42.2.220 tell 10.42.2.240
       26 packets captured
       26 packets received by filter
       0 packets dropped by kernel

4. 查询虚拟机所在CNA节点EVS(分布式交换机DVS)配置信息:
    a. 使用evsadm evs show查询CNA节点EVS列表
        ret=0
        cli_show_evs_list:
        name=bond129, id=1, uuid=18c397b4-f475-4170-aa12-3f63ce046a31
        name=bond145, id=2, uuid=cc70ea6c-a21e-4c50-8335-db995270938f
        name=bond146, id=3, uuid=7a16fcff-6471-4fc3-bbc6-d248e9ee5efa

   b. 使用evsadm port show --evs_id=3 --content=cfg查询到问题虚拟机(vif62.0)所在EVS的配置信息:
        port info port id = 5  uuid=13a2c773-602d-4edf-8185-0bbfea67863a
        port name=vm
             state=enable
        vlan mode=access
             ids=101
        interface name=vif62.0
              type=0
        port dhcp snooping is       ON
        port dhcp isolate is        ON
        port qos rate is    0
        port qos ceil is    0
        port qos burst is    0
        port qos prio is    0

    c. 发现:port dhcp snooping & isolate is  ON,推测在创建端口组时做了DHCP隔离或IP-Mac绑定。
        测试:使用evsadm port modify --evs_id=3 --port_id=5 --dhcp_snooping=off --dhcp_isolate=off修改参数为off,则VM可以正常ping通网关。
        进一步验证:在FC portal上勾选端口组参数——IP-Mac绑定,则IP不通;去勾选,则IP可通。

5. 至此,问题所在应该在于创建端口组时,勾选了IP-Mac绑定,而在创建VM后有手动修改了IP地址,导致IP不通。

PS:为什么没有安装PVdriver的VM可以ping网关?在未安装PVdriver时,虚拟机本身可依靠vlan进行二层通信,但不具备高级特性;在安装了PVdriver后,虚拟机启用DVS进行通信,因此IP-MAC绑定生效,阻止了修改IP后的VM通讯。
根因
可能原因如下:
1. 物理Server网口与交换机规划的Vlan端口连接错误;
2. 虚拟机的PVdriver安装异常;
3. 虚拟机所属的Portgroup配置不正确。
建议与总结
建议:在设定参数时严格按照功能场景进行配置。

IP与MAC绑定:使用该端口组的虚拟机,其IP地址与MAC地址绑定。防止用户通过修改虚拟机网卡的IP地址或MAC地址,发起IP或MAC仿冒攻击,增强用户虚拟机的网络安全性。

END