Accede a los servicios publicados a través de extremos
En este documento, se explica cómo acceder a los servicios en otra red de VPC mediante los extremos de Private Service Connect. Puedes conectarte a tus propios servicios o a los que proporcionan otros productores de servicios, incluido Google.
Para obtener más información sobre los servicios, consulta Publica servicios administrados.
Roles
La siguiente función de IAM proporciona los permisos necesarios para realizar las tareas de esta guía.
Tarea | Roles |
---|---|
Crear un extremo |
Ambos roles: Administrador de red de Compute ( roles/compute.networkAdmin ) y
Directorio de servicios Editor ( roles/servicedirectory.editor )
|
Configura entradas de DNS de forma manual o automática para un extremo | Administrador de DNS(roles/dns.admin ) |
Antes de comenzar
Lee Acerca de la conexión a servicios mediante extremos, incluidas las limitaciones.
Debes habilitar la API de Compute Engine en tu proyecto.
Debes habilitar la API de Directorio de servicios en tu proyecto.
Debes habilitar la API de Cloud DNS en tu proyecto.
Las reglas de firewall de salida deben permitir el tráfico a la dirección IP interna del extremo. La regla de firewall implícita de permiso de salida permite la salida a cualquier dirección IP de destino.
Si creaste reglas de firewall de denegación de salida en la red de VPC o si creaste políticas de firewall jerárquicas que modifican el comportamiento de salida permitido, el acceso al extremo podría verse afectado. Crea una política o regla de firewall de permiso de salida específicas para permitir el tráfico al destino de la dirección IP interna del extremo del servicio.
Debes tener el URI del adjunto del servicio para el servicio. Por ejemplo,
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Crear un extremo
Un extremo se conecta a servicios en otra red de VPC mediante una regla de reenvío de Private Service Connect. Cada regla de reenvío se tiene en cuenta para la cuota por proyecto de las reglas de reenvío de Private Service Connect para acceder a los servicios en otra red de VPC.
Cuando usas Private Service Connect para conectarte a servicios en otra red de VPC, debes elegir una dirección IP interna de una subred regular en tu red de VPC. La dirección IP debe estar en la misma región que el adjunto de servicio del productor del servicio. La dirección IP se considera dentro de la cuota del proyecto para las direcciones IP internas.
Puedes usar una dirección IPv4 si la subred es de pila única. Puedes usar una dirección IPv4 o IPv6 (vista previa) si la subred es de pila doble.
La versión de IP de la dirección afecta a qué adjuntos de servicio se puede conectar el extremo. Para obtener más información, consulta Traducción de versiones de IP.
Cuando creas un extremo, se registra de forma automática con el Directorio de servicios mediante el espacio de nombres que elijas o el predeterminado, goog-psc-default
.
Si deseas que el extremo esté disponible en más de una región, activa el acceso global.
Solo puedes actualizar el campo de acceso global de los extremos para los servicios publicados. Si deseas actualizar otros campos, borra el extremo y, luego, crea uno nuevo.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Extremos conectados.
Haz clic en Conectar extremo.
En Destino, selecciona Servicio publicado.
En Servicio de destino, ingresa el URI del adjunto de servicio al que deseas conectarte.
El URI del adjunto de servicio tiene el siguiente formato:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
En Nombre del extremo, ingresa un nombre para usar en el extremo.
Selecciona una red para el extremo.
Selecciona una subred para el extremo.
Selecciona una dirección IP para el extremo. Si necesitas una dirección IP nueva, puedes crear una:
- Haz clic en el menú desplegable Dirección IP y selecciona Crear dirección IP.
- Ingresa un nombre y una descripción opcional para la dirección IP.
- Selecciona una Versión de IP.
Si creas una dirección IPv4, selecciona Asignar de forma automática o Permitirme elegir.
Si seleccionaste Permitirme elegir, ingresa la dirección IP personalizada que deseas usar.
Haz clic en Reservar.
Para que el extremo esté disponible desde cualquier región, selecciona Habilitar el acceso global.
Selecciona un espacio de nombres de la lista desplegable o crea un espacio de nombres nuevo.
La región se propaga en función de la subred seleccionada.
Haz clic en Agregar extremo.
gcloud
Reserva una dirección IP interna para asignarla al extremo.
gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET \ --ip-version=IP_VERSION
Reemplaza lo siguiente:
ADDRESS_NAME
: nombre que se asignará a la dirección IP reservada.REGION
: Es la región de la dirección IP del extremo. Debe ser la misma región que contiene el adjunto del servicio del productor de servicios.SUBNET
: Es el nombre de la subred para la dirección IP del extremo.IP_VERSION
: La versión de IP de la dirección IP, que puede serIPV4
oIPV6
.IPV4
es la configuración predeterminada. Para especificarIPV6
, la dirección IP debe estar conectada a una subred de pila doble.
Busca la dirección IP reservada.
gcloud compute addresses list --filter="name=ADDRESS_NAME"
Crea una regla de reenvío para conectar el extremo al adjunto de servicio del productor de servicios. De forma predeterminada, los extremos solo están disponibles en su propia región. Para que un extremo esté disponible desde cualquier región, usa la marca
--allow-psc-global-access
.Crea un extremo al que solo se pueda acceder desde su propia región.
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT \ [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
Crea un extremo al que se pueda acceder desde cualquier región.
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT \ --allow-psc-global-access \ [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
Reemplaza lo siguiente:
ENDPOINT_NAME
: nombre que se asignará al extremo.REGION
: Es la región para el extremo. Debe ser la misma región que contiene el adjunto del servicio del productor de servicios.NETWORK_NAME
: nombre de la red de VPC para el extremo.ADDRESS_NAME
: Es el nombre de la dirección reservada.SERVICE_ATTACHMENT
: Es el URI del adjunto del servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
PROJECT_ID
: el ID de tu proyectoNAMESPACE
: El espacio de nombres del Directorio de servicios que deseas usar. Si especificas un espacio de nombres que no existe, se crea el espacio de nombres.Si omites la marca
--service-directory-registration
, se usa el espacio de nombres predeterminado degoog-psc-default
.
API
Reserva una dirección IP interna para asignarla al extremo.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses { "name": "ADDRESS_NAME", "addressType": "INTERNAL", "subnetwork": "SUBNET_URI", "ipVersion": "IP_VERSION" }
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoADDRESS_NAME
: nombre que se asignará a la dirección IP reservada.SUBNET_URI
: la subred de la dirección IP. Usa el método subnetworks.list ogcloud compute networks subnets list --uri
para encontrar las URL de tus redes.IP_VERSION
: La versión de IP de la dirección IP, que puede serIPV4
oIPV6
.IPV4
es la configuración predeterminada. Para especificarIPV6
, la dirección IP debe estar conectada a una subred de pila doble.
Crea una regla de reenvío para conectar el extremo al adjunto de servicio del productor de servicios. De forma predeterminada, los extremos solo están disponibles en su propia región. Para hacer que un extremo esté disponible desde cualquier región, establece
allowPscGlobalAccess
entrue
.Crea un extremo al que solo se pueda acceder desde su propia región.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "ADDRESS_URI", "target": "SERVICE_ATTACHMENT", "network": "NETWORK_URI", "serviceDirectoryRegistrations": [ { "namespace": "NAMESPACE" } ] }
Crea un extremo al que se pueda acceder desde cualquier región.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "ADDRESS_URI", "target": "SERVICE_ATTACHMENT", "network": "NETWORK_URI", "allowPscGlobalAccess": true, "serviceDirectoryRegistrations": [ { "namespace": "NAMESPACE" } ] }
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoREGION
: Es la región para el extremo.ENDPOINT_NAME
: nombre que se asignará al extremo.ADDRESS_URI
: URI de la dirección reservada en la red asociada. Usa el método addresses.list ogcloud compute addresses list --uri
para encontrar la URL de la dirección reservada.SERVICE_ATTACHMENT
: Es el URI del adjunto del servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
NETWORK_URI
: red de VPC para el extremo. Usa el método network.list ogcloud compute networks list --uri
para encontrar el URI de tu red.NAMESPACE
: es el espacio de nombres para el extremo. Especificar un espacio de nombres que no existe, crea el espacio de nombres. Si omites el camponamespace
, se asigna el espacio de nombres predeterminado degoog-psc-default
.
Crea un extremo con una dirección IP desde una red de VPC compartida
Los administradores de proyectos de servicio pueden crear extremos en proyectos de servicio de VPC compartida que usan direcciones IP de las redes de VPC compartidas conectadas. La creación de extremos de este tipo no está disponible en la consola de Google Cloud. Debes usar Google Cloud CLI o enviar una solicitud a la API. Para obtener más información, consulta VPC compartida.
En este ejemplo, se muestra cómo crear un extremo con una dirección IP de una red de VPC compartida a la que se puede acceder desde una sola región. Si quieres habilitar el acceso global o elegir un espacio de nombres para el Directorio de servicios, consulta Crea un extremo.
gcloud
- Para reservar una dirección IP interna a fin de asignarla al extremo, realiza una de las siguientes acciones:
- En el proyecto de servicio, reserva una dirección IPv4 o IPv6 interna estática desde una subred compartida de la red de VPC compartida.
- En el proyecto host, pídele a un administrador del proyecto host que reserve una dirección IPv4 o IPv6 interna estática de una subred compartida de la red de VPC compartida.
En el proyecto de servicio, crea el extremo:
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=projects/HOST_PROJECT/global/networks/HOST_NETWORK \ --address=projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT
Reemplaza lo siguiente:
ENDPOINT_NAME
: nombre que se asignará al extremo.REGION
: Es la región para el extremo. Debe ser la misma región que contiene el adjunto del servicio del productor de servicios.HOST_PROJECT
: el ID del proyecto de la red de VPC compartida.HOST_NETWORK
: nombre de la red de VPC compartida que contiene la dirección IP del extremo.ADDRESS_PROJECT
: el ID del proyecto en el que reservaste la dirección IP. Puede ser el proyecto de servicio o el proyecto host.ADDRESS_NAME
: nombre de la dirección IP reservada.SERVICE_ATTACHMENT
: Es el URI del adjunto del servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
API
Para reservar una dirección IP interna a fin de asignarla al extremo, realiza una de las siguientes acciones:
- En el proyecto de servicio, reserva una dirección IPv4 o IPv6 interna estática desde una subred compartida de la red de VPC compartida.
- En el proyecto host, pídele a un administrador del proyecto host que reserve una dirección IPv4 o IPv6 interna estática de una subred compartida de la red de VPC compartida.
En el proyecto de servicio, crea el extremo:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "ENDPOINT_NAME", "IPAddress": "projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME", "target": "SERVICE_ATTACHMENT", "network": "projects/HOST_PROJECT/global/networks/HOST_NETWORK" }
Reemplaza lo siguiente:
PROJECT
: el ID del proyecto de servicio.REGION
: Es la región para el extremo. Debe ser la misma región que contiene el adjunto del servicio del productor de servicios.ENDPOINT_NAME
: nombre que se asignará al extremo.ADDRESS_PROJECT
: el ID del proyecto en el que reservaste la dirección IP. Puede ser el proyecto de servicio o el proyecto host.ADDRESS_NAME
: nombre de la dirección IP reservada.SERVICE_ATTACHMENT
: Es el URI del adjunto del servicio del productor de servicios. Por ejemplo:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
HOST_PROJECT
: el ID del proyecto de la red de VPC compartida.HOST_NETWORK
: nombre de la red de VPC compartida que contiene la dirección IP del extremo.
Enumerar extremos
Puedes enumerar todos los extremos configurados.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Extremos conectados.
Se muestran los extremos.
gcloud
gcloud compute forwarding-rules list \ --filter 'target~serviceAttachments'
El resultado es similar al siguiente:
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET RULE IP TCP REGION/serviceAttachments/SERVICE_NAME
API
Esta llamada a la API muestra todas las reglas de reenvío, no solo los extremos que se usan para acceder a los servicios.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
Reemplaza lo siguiente:
PROJECT_ID
: proyecto que contiene el extremo.REGION
: Es la región para el extremo.
Ver detalles del extremo
Puedes ver todos los detalles de configuración de un extremo, incluido su estado de conexión.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Extremos conectados.
Haz clic en el servicio que deseas ver.
gcloud
gcloud compute forwarding-rules describe \ ENDPOINT_NAME --region=REGION
Reemplaza lo siguiente:
ENDPOINT_NAME
: El nombre del extremo.REGION
: Es la región para el extremo.
API
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME
Reemplaza lo siguiente:
PROJECT_ID
: proyecto que contiene el extremo.REGION
: Es la región para el extremo.ENDPOINT_NAME
: El nombre del extremo.
Etiqueta un extremo
Puedes administrar etiquetas para los extremos. Para obtener instrucciones detalladas, consulta Etiqueta recursos.
Borra un extremo †
Puedes borrar un extremo.
Sin embargo, las siguientes configuraciones del Directorio de servicios no se borran cuando borras el extremo:
- Espacio de nombres del Directorio de servicios
- Zona del DNS del Directorio de servicios
Otros servicios pueden usar el espacio de nombres del Directorio de servicios y la zona del DNS del Directorio de servicios. Verifica que el espacio de nombres esté vacío antes de borrar el espacio de nombres del Directorio de servicios o borrar la zona del DNS del Directorio de servicios.
Console
En la consola de Google Cloud, ve a la página Private Service Connect.
Haz clic en la pestaña Extremos conectados.
Selecciona el extremo que deseas borrar y, luego, haz clic en Borrar.
gcloud
gcloud compute forwarding-rules delete \ ENDPOINT_NAME --region=REGION
Reemplaza lo siguiente:
ENDPOINT_NAME
: El nombre del extremo.REGION
: Es la región para el extremo.
API
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME
Reemplaza lo siguiente:
PROJECT_ID
: proyecto que contiene el extremo.REGION
: Es la región para el extremo.ENDPOINT_NAME
: El nombre del extremo.
Accede a los extremos desde redes híbridas
Los clientes en las redes conectadas a Google Cloud con adjuntos de VLAN para los túneles de Cloud Interconnect o Cloud VPN pueden llegar a los extremos de Private Service Connect.El adjunto de VLAN o el túnel de Cloud VPN deben finalizar en la misma red de VPC que el extremo. Los clientes en redes de VPC de intercambio de tráfico no pueden alcanzar extremos.
El tráfico del cliente desde los adjuntos de VLAN o los túneles de Cloud VPN puede llegar a los extremos en otra región si se configura el acceso global.
Dataplane v1 y Dataplane v2 son compatibles con los adjuntos de VLAN. Para obtener más información sobre las versiones de Dataplane, consulta Dataplane v2.
Si deseas acceder al extremo mediante su nombre de DNS, debes configurar los sistemas en la otra red para que puedan realizar consultas a tus zonas del DNS privado.
Si implementaste las zonas del DNS privado con Cloud DNS, completa los siguientes pasos:
Crea una política de servidor de entrada en la red de VPC a la que se conecta la otra red.
Identifica los puntos de entrada de reenvío entrantes en la región en la que se encuentra el adjunto de VLAN o el túnel de Cloud VPN, en la red de VPC a la que tu otra red se conecta.
Configura sistemas y servidores de nombres de DNS en la otra red para reenviar los Nombres de DNS para los extremos a un punto de entrada de reenvío entrante en la misma región que el adjunto de VLAN o el túnel de Cloud VPN que se conecta a la red de VPC.
Visualiza las zonas DNS del Directorio de servicios
Si se cumplen los requisitos para la configuración de DNS automática, se crea una zona DNS con un nombre en el formato NAMESPACE--REGION
.
Console
En la consola de Google Cloud, ve a la página Zonas de Cloud DNS.
Busca una zona privada con el nombre
NAMESPACE--REGION
.
gcloud
Ejecuta el siguiente comando para mostrar todas las zonas del DNS privadas:
gcloud dns managed-zones list \ --filter="visibility=private"
Ejecuta el siguiente comando para obtener detalles de una zona con el nombre
NAMESPACE--REGION
.gcloud dns managed-zones describe NAMESPACE--REGION
Si la zona no está presente, consulta los detalles del extremo y verifica si la configuración del extremo incluye un valor para el espacio de nombres.
Si el extremo tiene una configuración de espacio de nombres, consulta Configura una zona del DNS del Directorio de servicios.
Si el extremo no tiene una configuración de espacio de nombres, consulta Registra un extremo con el Directorio de servicios.
Otras formas de configurar el DNS
Si no se cumplen los requisitos para la configuración automática del DNS, puedes crear entradas del DNS de otras maneras:
Si el extremo tiene un espacio de nombres configurado, consulta Configura una zona del DNS del Directorio de servicios.
Si el extremo no tiene un espacio de nombres configurado, consulta Registra un extremo con el Directorio de servicios.
Si prefieres configurar DNS de forma manual, consulta Configura DNS de forma manual.
Configura una zona del DNS del Directorio de servicios
Si un extremo se registra con el Directorio de servicios, pero el servicio publicado con el que se conecta no tiene configurado un nombre de dominio, no se realizan cambios de DNS.
Si deseas replicar la configuración automática de DNS, puedes configurar de forma manual una zona DNS del Directorio de servicios respaldada por el espacio de nombres del Directorio de servicios. Después de crear la zona, se crean automáticamente entradas de DNS para el extremo.
Crea una zona DNS del directorio del servicio con la siguiente configuración:
Nombre de la zona: Especifica
NAMESPACE--REGION
, en la queNAMESPACE
es el espacio de nombres en el que está registrado el extremo yREGION
es la región en la que se crea el extremo.Nombre de DNS: Es el dominio DNS que el productor de servicios usa para sus servicios publicados. Consulta esta información con el productor de servicios.
El nombre del DNS puede tener el formato
REGION.p.DOMAIN
. Por ejemplo, si el dominio público del productor de servicios esexample.com
y su servicio publicado está enus-west1
, recomendamos que habiliten la disponibilidad de su servicio mediante los nombres de dominious-west1.p.example.com
. Incluye un punto final, por ejemplo,us-west1.p.example.com.
.Espacio de nombres del Directorio de servicios: El espacio de nombres que configuraste para este extremo.
Consulta los detalles del extremo para encontrar el espacio de nombres y la región del Directorio de servicios.
Mediante esta configuración, si configuraste una zona del DNS del Directorio de servicios con el nombre DNS us-west1.p.example.com
y creas un extremo llamado analytics
, se crea automáticamente un registro DNS para analytics.us-west1.p.example.com
.
Registra un extremo con el Directorio de servicios
Los extremos nuevos se registran de forma automática con el Directorio de servicios. Sin embargo, si se creó un extremo antes de que se habilitara el registro automático con el Directorio de servicios, es posible que falte esta configuración.
Puedes borrar el extremo y crear uno nuevo, que se registra con el Directorio de servicios de forma automática.
También puedes seguir estos pasos para registrar un extremo existente con un espacio de nombres del Directorio de servicios.
Crea un espacio de nombres del Directorio de servicios para el extremo,
NAMESPACE
.Crea un servicio del Directorio de servicios para el extremo,
SERVICE_NAME
.En el servicio, usa el mismo nombre que el de la regla de reenvío que se usa para el extremo,
ENDPOINT_NAME
.Crea un extremo de Directorio de servicios con el nombre
default
y usa la dirección IP y el puerto (443
) del extremo.
Después de registrar el extremo en el Directorio de servicios, sigue las instrucciones para configurar una zona DNS del Directorio de servicios.
Configura DNS de forma manual
Si impediste la configuración automática de DNS o si no está habilitada en tu configuración, puedes usar Cloud DNS para crear registros DNS de forma manual.
Si deseas obtener más información, consulta las siguientes páginas:
Control de acceso: El rol de administrador de DNS (
roles/dns.admin
) proporciona los permisos necesarios para crear zonas y registros DNS.-
Cuando configuras una zona privada, debes proporcionar un nombre de DNS. Usa el dominio DNS que el productor de servicios usa para sus servicios publicados. Consulta esta información con el productor de servicios.
Puede tener este formato:
REGION.p.DOMAIN
. Por ejemplo, si el dominio público del productor de servicios esexample.com
y su servicio publicado está enus-west1
, recomendamos que habiliten la disponibilidad de su servicio mediante los nombres de dominious-west1.p.example.com
.
Soluciona problemas
No se puede crear una zona DNS privada
Cuando creas un extremo, se crea una zona DNS del Directorio de servicios. La creación de zonas puede fallar por los siguientes motivos:
No habilitaste la API de Cloud DNS en tu proyecto.
No tienes los permisos necesarios para crear una zona DNS del Directorio de servicios.
Existe una zona DNS con el mismo nombre en esta red de VPC.
Ya existe una zona DNS para el mismo nombre de dominio en esta red de VPC.
Para crear manualmente la zona DNS del Directorio de servicios, haz lo siguiente:
Verifica que la API de Cloud DNS esté habilitada en tu proyecto.
Verifica que tengas los permisos necesarios para crear la zona DNS del Directorio de servicios:
dns.managedZones.create
dns.networks.bindPrivateDNSZone
servicedirectory.namespaces.associatePrivateZone
Si hay una zona en conflicto, pero ya no es necesaria, borra la zona DNS.
Crea una zona DNS de Directorio del servicio respaldada por el espacio de nombres del Directorio de servicios asociado con tu extremo.
La creación de extremos falla cuando se configura el acceso global
No todos los servicios publicados de Private Service Connect admiten extremos con acceso global. Si creas un extremo con acceso global y el servicio publicado no lo admite, verás este mensaje de error:
Private Service Connect global access is not supported for the given forwarding
rule, since its producer service does not support consumer global access.
Crea el extremo sin la opción de acceso global.
La creación del extremo se realiza de manera correcta, pero no se establece la conectividad
Si creas correctamente un extremo para servicios publicados, pero no se establece la conectividad, verifica el estado de conexión del extremo. El estado de la conexión puede indicar los pasos a seguir para resolver el problema.