A GUID (globally unique identifier) is a 128-bit identifier generated locally using an algorithm to label objects, records, and devices with a value that remains stable even when names, IP addresses, or locations change, eliminating the need for central coordination in distributed network environments. In networked systems where hosts are renamed, DHCP reassigns IP addresses, and devices move between subnets, GUIDs provide a persistent key that allows inventory, directory, and address management tools to reliably match records to the same object over time. However, operational problems arise when GUIDs are cloned without regeneration, stored inconsistently across systems with different formatting, or generated from weak random sources, leading to duplicate records, failed lookups, and data loss.
Cómo funciona un GUID
Un GUID se crea mediante un algoritmo que hace que sea extremadamente improbable que se produzca una colisión entre dos valores generados de forma independiente. No es necesario realizar ninguna consulta en un registro central en el momento de la creación.
Un GUID es un valor de 128 bits, que se muestra como 32 dígitos hexadecimales con el formato 8-4-4-4-12, por ejemplo, entre llaves en las herramientas de Windows. El formato coincide con la estructura del UUID definida en el RFC 4122, que establece varias versiones. Algunas versiones derivan el valor de una marca de tiempo y un identificador de nodo; otras, de un nombre sometido a un algoritmo hash con un espacio de nombres; y una, de números aleatorios. La versión 4 se basa en bits aleatorios, por lo que la unicidad es estadística y no está garantizada. Con 122 bits aleatorios en un valor de la versión 4, la probabilidad de que coincidan dos valores es insignificante a escala práctica. Una vez generado, el GUID se almacena como un atributo del objeto, como una entrada de directorio, una fila de base de datos o un registro de dispositivo. A continuación, las aplicaciones hacen referencia al objeto mediante ese valor, de modo que el objeto conserva su identidad incluso cuando cambian su nombre, su dirección o su ubicación. Esto es lo que distingue a un GUID de un nombre de host o una dirección IP, que pueden cambiar con el tiempo.
Problemas habituales con los GUID
Cuando una integración empareja objetos por nombre de host o dirección IP en lugar de por GUID, un cambio de nombre o una modificación de la concesión DHCP crea un registro duplicado o deja huérfano al original. El uso del GUID como clave de unión evita esto.
Al eliminar y volver a crear un objeto de directorio se genera un nuevo GUID, incluso si el nombre es idéntico. Las pertenencias a grupos, los permisos y los registros vinculados que hacían referencia al antiguo GUID ya no se resuelven.
El uso de llaves, mayúsculas o minúsculas y la ausencia de guiones varían según la herramienta. Las comparaciones de cadenas fallan entonces con valores que son idénticos, por lo que las importaciones y las búsquedas deben normalizar primero el formato.
Los valores de la versión 4 dependen de un buen generador aleatorio. Una fuente débil o con una semilla idéntica, como puede ocurrir en sistemas recién clonados, aumenta la probabilidad de duplicados muy por encima del nivel teórico.