fusioninventory / fusioninventory-for-glpi

FusionInventory plugin for GLPI
http://www.FusionInventory.org/
GNU Affero General Public License v3.0
361 stars 148 forks source link

MAC loopup, shoud use VIRTUALDEV<>1 devices first #1152

Closed ddurieux closed 8 years ago

ddurieux commented 8 years ago

Author Name: Tomás Abad (Tomás Abad) Original Redmine Issue: 2139, http://forge.fusioninventory.org/issues/2139 Original Date: 2013-06-10 Original Assignee: David Durieux


The environment

The connections with the network devices are done with virtual ports instead of with physical ports.

As normal rule, the connections between a network port of a computer and a network device should use a physical network port of the computer intead of a virtual network port as happens now.

The image IncorrectNetworkPortConnections.png shows that bug in a computer with a single network adapter with only one Ethernet port. The following is an extract of the XML file of the sections for that computer. The only physical network port is the "Broadcom NetXtreme Gigabit Ethernet - Teefer2 Miniport"; that is the port which should be connected with the network device c37hgcr1W6r27, and not the port "Teefer2 Miniport".

    ...
    ...
    <NETWORKS>
      <DESCRIPTION>Broadcom NetXtreme Gigabit Ethernet - Teefer2 Miniport</DESCRIPTION>
      <IPADDRESS>10.36.1.132</IPADDRESS>
      <IPDHCP>10.36.6.100</IPDHCP>
      <IPGATEWAY>10.36.0.1</IPGATEWAY>
      <IPMASK>255.255.254.0</IPMASK>
      <IPSUBNET>10.36.0.0</IPSUBNET>
      <MACADDR>00:16:35:74:07:25</MACADDR>
      <PNPDEVICEID>PCI\\VEN_14E4&amp;DEV_1677&amp;SUBSYS_3006103C&amp;REV_01\\4&amp;1886B119&amp;0&amp;00E1</PNPDEVICEID>
      <STATUS>Up</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>0</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Minipuerto del administrador de paquetes</DESCRIPTION>
      <MACADDR>00:16:35:74:07:25</MACADDR>
      <PNPDEVICEID>ROOT\\MS_PSCHEDMP\\0000</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Minipuerto WAN (PPTP)</DESCRIPTION>
      <MACADDR></MACADDR>
      <PNPDEVICEID>ROOT\\MS_PPTPMINIPORT\\0000</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Red de área extensa (WAN)</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Minipuerto WAN (PPPOE)</DESCRIPTION>
      <MACADDR></MACADDR>
      <PNPDEVICEID>ROOT\\MS_PPPOEMINIPORT\\0000</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Red de área extensa (WAN)</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Minipuerto del administrador de paquetes</DESCRIPTION>
      <MACADDR>F4:9B:20:52:41:53</MACADDR>
      <PNPDEVICEID>ROOT\\MS_PSCHEDMP\\0001</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Teefer2 Miniport</DESCRIPTION>
      <MACADDR>00:16:35:74:07:25</MACADDR>
      <PNPDEVICEID>ROOT\\SYMC_TEEFER2MP\\0000</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Teefer2 Miniport</DESCRIPTION>
      <MACADDR>F4:9B:20:52:41:53</MACADDR>
      <PNPDEVICEID>ROOT\\SYMC_TEEFER2MP\\0001</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    ...
    ...

The exception to the rule are those computers with multiple network port which are configured as a Team or Bonding. The image IncorrectNetworkTeamPortConnections.png is an example of that. The following is an extract of the XML file of that computer.

    ...
    ...
    <NETWORKS>
      <DESCRIPTION>WAN Miniport (PPTP)</DESCRIPTION>
      <MACADDR></MACADDR>
      <PNPDEVICEID>ROOT\\MS_PPTPMINIPORT\\0000</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Wide Area Network (WAN)</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>WAN Miniport (PPPOE)</DESCRIPTION>
      <MACADDR></MACADDR>
      <PNPDEVICEID>ROOT\\MS_PPPOEMINIPORT\\0000</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Wide Area Network (WAN)</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>HP NC7781 Gigabit Server Adapter</DESCRIPTION>
      <MACADDR>00:13:21:07:53:80</MACADDR>
      <PNPDEVICEID>PCI\\VEN_14E4&amp;DEV_16A7&amp;SUBSYS_00CB0E11&amp;REV_02\\3&amp;13C0B0C5&amp;2&amp;20</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>0</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Microsoft Failover Cluster Virtual Adapter</DESCRIPTION>
      <IPADDRESS>169.254.1.124</IPADDRESS>
      <IPMASK>255.255.0.0</IPMASK>
      <IPSUBNET>169.254.0.0</IPSUBNET>
      <MACADDR>02:13:21:07:53:80</MACADDR>
      <PNPDEVICEID>ROOT\\NETFT\\0000</PNPDEVICEID>
      <SPEED>1073741824</SPEED>
      <STATUS>Up</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Microsoft Failover Cluster Virtual Adapter</DESCRIPTION>
      <IPADDRESS6>fe80::d508:5214:68da:9a1f</IPADDRESS6>
      <IPMASK6>ffff:ffff:ffff:ffff::</IPMASK6>
      <IPSUBNET6>fe80::</IPSUBNET6>
      <MACADDR>02:13:21:07:53:80</MACADDR>
      <PNPDEVICEID>ROOT\\NETFT\\0000</PNPDEVICEID>
      <SPEED>1073741824</SPEED>
      <STATUS>Up</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>HP NC7781 Gigabit Server Adapter #2</DESCRIPTION>
      <IPADDRESS>172.18.69.10</IPADDRESS>
      <IPMASK>255.255.255.0</IPMASK>
      <IPSUBNET>172.18.69.0</IPSUBNET>
      <MACADDR>00:13:21:07:53:81</MACADDR>
      <PNPDEVICEID>PCI\\VEN_14E4&amp;DEV_16A7&amp;SUBSYS_00CB0E11&amp;REV_02\\3&amp;13C0B0C5&amp;2&amp;28</PNPDEVICEID>
      <SPEED>1000000000</SPEED>
      <STATUS>Up</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>0</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>HP NC7170 Dual Gigabit Server Adapter</DESCRIPTION>
      <MACADDR>00:13:21:07:53:80</MACADDR>
      <PNPDEVICEID>PCI\\VEN_8086&amp;DEV_1010&amp;SUBSYS_00DB0E11&amp;REV_01\\3&amp;172E68DD&amp;0&amp;08</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>0</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>RAS Async Adapter</DESCRIPTION>
      <MACADDR></MACADDR>
      <PNPDEVICEID>SW\\{EEAB7790-C514-11D1-B42B-00805FC1270E}\\ASYNCMAC</PNPDEVICEID>
      <STATUS>Down</STATUS>
      <TYPE>Wide Area Network (WAN)</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>HP NC7170 Dual Gigabit Server Adapter #2</DESCRIPTION>
      <IPADDRESS>192.168.0.10</IPADDRESS>
      <IPMASK>255.255.255.0</IPMASK>
      <IPSUBNET>192.168.0.0</IPSUBNET>
      <MACADDR>00:11:0A:56:A5:C9</MACADDR>
      <PNPDEVICEID>PCI\\VEN_8086&amp;DEV_1010&amp;SUBSYS_00DB0E11&amp;REV_01\\3&amp;172E68DD&amp;0&amp;09</PNPDEVICEID>
      <SPEED>1000000000</SPEED>
      <STATUS>Up</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>0</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>HP Network Team #1</DESCRIPTION>
      <IPADDRESS>10.36.12.14</IPADDRESS>
      <IPGATEWAY>10.36.12.1</IPGATEWAY>
      <IPMASK>255.255.255.0</IPMASK>
      <IPSUBNET>10.36.12.0</IPSUBNET>
      <MACADDR>00:13:21:07:53:80</MACADDR>
      <PNPDEVICEID>ROOT\\CQ_CPQTEAMMP\\0000</PNPDEVICEID>
      <SPEED>1000000000</SPEED>
      <STATUS>Up</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>0</VIRTUALDEV>
    </NETWORKS>
    <NETWORKS>
      <DESCRIPTION>Microsoft Tun Miniport Adapter</DESCRIPTION>
      <MACADDR>02:00:54:55:4E:01</MACADDR>
      <PNPDEVICEID>ROOT\\*TUNMP\\0000</PNPDEVICEID>
      <SPEED>1073741824</SPEED>
      <STATUS>Down</STATUS>
      <TYPE>Ethernet</TYPE>
      <VIRTUALDEV>1</VIRTUALDEV>
    </NETWORKS>
    ...
    ...
ddurieux commented 8 years ago

Original Redmine Comment Author Name: Gonéri Le Bouder (Gonéri Le Bouder) Original Date: 2013-06-10T14:17:46Z


Hi,

This is not a real bug, but indeed, we should pick the real physical devices first when we find the same MAC on difference devices.

ddurieux commented 8 years ago

Original Redmine Comment Author Name: Tomás Abad (Tomás Abad) Original Date: 2013-06-12T11:51:24Z


Hello Goneri,

I insist. You have changed the bug title but the reality is that "The connections with the network devices are done with virtual ports instead of with physical ports.". Whether you prefer, the title could be "MAC loopup, shoud +never+ use VIRTUALDEV<>0 devices". ;)

The reality is that you never connect a virtual device with a network device; you connect the physical port of a network device with another physical port of other network device. I think all the virtual ports should not be connected with any network device.

And, finally, perhaps the bug is not so important or does not have so much implications but, a thing is clear, it is a bug.

ddurieux commented 8 years ago

Original Redmine Comment Author Name: Tomás Abad (Tomás Abad) Original Date: 2013-06-12T11:59:44Z


Note: Of the two previous examples, only the first one is an error. I apologize.

ddurieux commented 8 years ago

Original Redmine Comment Author Name: David Durieux (@ddurieux) Original Date: 2013-06-12T20:21:24Z


W have problem into GLPI, because we don't store VIRTUALDEV information in the DB. Will think how to do this

ddurieux commented 8 years ago

Original Redmine Comment Author Name: David Durieux (@ddurieux) Original Date: 2013-07-11T21:08:35Z


I can't use only physical, because of old data.

But I can search first on physical card, if not found, try on logical. (so I can't remove try on logical for the moment)

ddurieux commented 8 years ago

Original Redmine Comment Author Name: David Durieux (@ddurieux) Original Date: 2013-07-11T21:27:07Z


Applied in changeset commit:a983d0f40718b24fcc7479854db83540d10f2837.

ddurieux commented 8 years ago

Original Redmine Comment Author Name: David Durieux (@ddurieux) Original Date: 2013-07-11T21:28:05Z


When you apply with patch, you must drop all lines in table _glpi_plugin_fusinvinventorylibserialization

ddurieux commented 8 years ago

Original Redmine Comment Author Name: Tomás Abad (Tomás Abad) Original Date: 2013-07-16T12:24:50Z


Ok David, I'll do

mysql> TRUNCATE TABLE glpi_plugin_fusinvinventory_libserialization;

after applying the patch and after activating the plugin.

Thank you for the information.