Configuración de BYOIP en Oracle Cloud Infrastructure mediante un CIDR IPv6 desde RIPE NCC
Introducción
En este tutorial, repasaremos el proceso completo del espacio de direcciones Traiga su propia IP (BYOIP) a Oracle Cloud Infrastructure (OCI) mediante un bloque CIDR IPv6 asignado y administrado a través del Centro de Coordinación de Red Européens (RIPE NCC) de Réseaux IP. Este enfoque beneficia a las organizaciones que ya poseen rangos de IPv6 o que necesitan mantener una dirección IP coherente en entornos híbridos o multinube.
Al seguir este tutorial, no solo aprenderá a preparar el espacio de direcciones IPv6 para la importación a OCI, sino también a configurar correctamente los registros administrativos en el portal RIPE NCC, autorizar a Oracle a dar a conocer su prefijo y, en última instancia, asignar sus direcciones IPv6 personalizadas a recursos de OCI, como redes virtuales en la nube (VCN) e instancias informáticas.
En este tutorial se trata cada tarea en detalle, desde la adquisición o verificación del CIDR IPv6 hasta la actualización de registros de registro y el uso del rango importado en las redes de OCI. Ya sea que esté migrando cargas de trabajo, configurando conectividad híbrida o creando una arquitectura orientada a Internet, este tutorial le proporciona la base para integrar BYOIP IPv6 en su OCI.
El espacio de direcciones BYOIP en OCI te permite tener un control total sobre tu identidad IP. Esta capacidad admite redes consistentes en entornos híbridos y multinube, al tiempo que permite un diseño de red más flexible y personalizado.
En este tutorial, aprenderá a adquirir o utilizar un bloque de CIDR IPv6 existente, a realizar los pasos administrativos necesarios con RIPE NCC y a importar y validar el CIDR en OCI. También verá cómo desplegar el CIDR IPv6 en su red virtual en la nube (VCN) y gestionar direcciones IPv6 enrutables globalmente en sus cargas de trabajo en su propia asignación de registro regional de Internet (RIR). Tanto si sus objetivos se basan en la conformidad, la propiedad de la red o la coherencia arquitectónica, la funcionalidad BYOIP IPv6 de OCI proporciona una base sólida para crear un entorno de red en la nube totalmente autónomo.
Objetivos
- Tarea 1: Obtener el rango IPv6 para importar a OCI.
- Tarea 1.1: Compra o alquiler de un CIDR IPv6.
- Tarea 1.2: Completar las tareas de administración de RIPE NCC.
- Tarea 1.3: Verifique la asignación de CIDR IPv6 en la consola de RIPE NCC.
- Tarea 2: Iniciar la importación del CIDR IPv6 en OCI.
- Tarea 3: agregue la cadena de token como un nuevo campo
descr
asociado a su rango de direcciones. - Tarea 4: Cree un objeto de autorización de origen de ruta (ROA) que autorice a los Oracle a anunciar el bloque CIDR BYOIP.
- Tarea 5: Finalice la importación del CIDR IPv6 en OCI.
- Tarea 6: Verifique la importación del CIDR IPv6 en OCI.
- Tarea 7: Anuncie el CIDR IPv6 en Internet.
- Tarea 8: Asignar el CIDR IPv6 de BYOIP a una VCN.
- Tarea 9: Crear una subred dentro del rango de CIDR IPv6 de BYOIP.
- Tarea 10: Crear y asignar una nueva tabla de enrutamiento para la VCN.
- Tarea 11: Cree una instancia y utilice una dirección IPv6 del rango de CIDR IPv6 de BYOIP.
Tarea 1: Obtener un rango de IPv6 para importar a OCI
Para utilizar la función BYOIP en OCI con un bloque CIDR IPv6, el primer requisito es tener un espacio de dirección IPv6 enrutable públicamente que se registre y administre correctamente a través de un registro regional de Internet (RIR), en este caso, es RIPE NCC.
Nota: Alquilamos espacio de IPv6 de un proveedor externo, ya que no somos propietarios de una asignación de IPv6. Si ya posee el espacio de dirección IPv6 y lo gestiona directamente en su cuenta RIPE o en el Registro Local de Internet (LIR), puede omitir la tarea 1 y continuar con la tarea 2.
Tarea 1.1: Compra o alquiler de un CIDR IPv6
Si aún no posee un rango IPv6, deberá:
- Comprar un bloque de direcciones IPv6 de un proveedor o broker,
O bien,
- Alquiler un CIDR IPv6 de una compañía de terceros que ofrece espacio de direcciones arrendadas, enrutamiento y control de registro.
En este tutorial, estamos utilizando una compañía llamada NoPKT LLC que proporciona servicios LIR. Otros proveedores ofrecen servicios similares de LIR, por lo que puede elegir el que mejor se adapte a sus necesidades.
Antes de realizar cualquier compra en NoPKT LLC, debemos crear una cuenta.
-
Una vez registrado y conectado, vaya a la tienda NoPKT LLC y haga clic en LIR Service (Servicio LIR).
-
NoPKT LLC tiene la opción de alquilar IPv6 CIDRs desde RIPE o ARIN. Vamos con la opción RIPE.
-
Seleccione el producto RIPE /44 IPv6 ($2.00).
-
Agregue RIPE /44 IPv6 al carro.
-
Seleccione el plan. Para este tutorial, seleccionaremos el plan anual y haremos clic en Comprar.
-
Haga clic en Bloquear.
-
Haga clic en Pagar y complete el pago.
-
Una vez finalizado el pago, puede tardar unas horas antes de que NoPKT LLC asigne el /44 IPv6 CIDR a su cuenta.
- Puede ver que la orden es un recurso asignado.
- Este es el rango IPv6 que utilizaremos dentro de OCI con BYOIP.
-
Haga clic en Servicios para revisar los servicios.
-
OCI requiere que la autorización de origen de ruta (ROA) se realice con la infraestructura de clave pública de recursos (RPKI) porque se trata de un mecanismo de seguridad estándar del sector que se utiliza para validar el origen de ruta de BGP. Para obtener más información, consulte Cómo traer su propia IP.
-
Abrimos un ticket de soporte con esta solicitud y proporcionamos el ASN de BGP de Oracle para que la LIR pueda completar la solicitud.
Antes de que la LIR pueda asignar el rango IPv6 alquilado a su cuenta para que pueda completar las tareas administrativas necesarias. Primero debe crear una cuenta RIPE NCC y configurar los objetos administrativos necesarios. Estos objetos (como role
, mntner
y organization
) deben estar correctamente configurados y enlazados. Una vez finalizada esta configuración, RIPE NCC emitirá un ID de organización, que debe proporcionar a la LIR. A continuación, la LIR utilizará este ID para asignar el rango IPv6 a su cuenta RIPE NCC.
Tarea 1.2: Completar las tareas de administración de RIPE NCC
Para preparar el CIDR IPv6 para la importación a OCI, debe realizar las siguientes tareas administrativas en la base de datos RIPE NCC. Estos pasos garantizan un control adecuado del espacio de direcciones y cumplen los requisitos de validación de OCI.
Deberá:
-
Regístrese para una cuenta RIPE NCC, si aún no tiene una. Esta cuenta le dará acceso al portal LIR y le permitirá gestionar objetos de registro.
-
Cree un objeto
role
y un objetomntner
(mantenedor). Estos objetos son necesarios para definir quién gestiona los recursos y para proteger el acceso a las entradas del registro. -
Agregue un atributo
abuse-c
al objetorole
. Este es un campo obligatorio para informar sobre el uso indebido relacionado con el espacio IP. -
Cree un objeto
organization
para representar la entidad en la base de datos RIPE.- Este objeto se enlazará al bloque CIDR IPv6 y otras entradas del registro.
- Una vez que se haya hecho esto y se haya identificado la organización, obtendrá un ID de organización único que deberá proporcionar a la LIR para que puedan asignar el rango IPv6 alquilado a su cuenta de RIPE NCC (organización).
-
Agregue el mantenedor de su proveedor de LIR (por ejemplo,
NoPKT-MNT
si está utilizando NoPKT LLC) comomnt-ref
en el objeto de organización. Esto garantiza que la LIR pueda seguir gestionando la asignación en su nombre.
Asegúrese de que todos los objetos están correctamente enlazados y visibles en la base de datos RIPE. Posteriormente actualizará el objeto inet6num
asociado a su rango IPv6 para completar los pasos de validación de OCI.
Este paso administrativo es fundamental, OCI validará su propiedad o control del prefijo mediante los cambios que realice en la base de datos RIPE.
-
Cree una cuenta RIPE NCC e inicie sesión.
-
Haga clic en Create an Object.
-
Seleccione Tipo de objeto como par de rol y mantenedor y haga clic en Crear.
-
Cree RIPE Maintainer y Role y asegúrese de que el mantenedor esté enlazado al rol. Asegúrese de especificar todos los campos como se muestra en la siguiente imagen.
-
Enlace un nuevo objeto de organización al objeto de mantenimiento correcto.
-
Es necesario agregar
NoPKT-MNT
al objeto de organización RIPE para autorizar y controlar los recursos RIPE. Asegúrese de que el mantenedorNoPKT-MNT
se agrega como organización mediante el campomnt-ref
. -
Anote los ID de RIPE únicos:
- Rol con clave primaria:
NO2XXX-RIPE
. - Mantenedor con la clave primaria:
XXX-MNT
. - Organización:
ORG-XXXXX-RIPE
.
- Rol con clave primaria:
-
Introduzca el ID de organización a la LIR para que puedan asignar el bloque IPv6 alquilado a su cuenta/rol/organización RIPE.
Tarea 1.3: Verificación de la asignación de CIDR IPv6 en la consola de RIPE NCC
-
La LIR asignará el bloque IPv6 alquilado a su cuenta/rol/organización RIPE. Una vez hecho esto, se lo notificarán.
-
En la consola de RIPE NCC, haga clic en Mis recursos, IPv6 y revise el rango de IPv6 alquilado. Ahora, puede realizar tareas de administración en la subred que debe completar OCI BYOIP.
Tarea 2: Inicio de la importación del CIDR IPv6 en OCI
Una vez que el CIDR IPv6 esté registrado y visible en la base de datos RIPE NCC en su ID de organización, puede iniciar el proceso de importación BYOIP en OCI.
-
Vaya a la consola de OCI, vaya a Red y haga clic en BYOIP (Traiga su propia IP).
-
Haga clic en Importar prefijo/bloque de CIDR BYOIP.
-
Introduzca la siguiente información y haga clic en Importar prefijo/bloque de CIDR BYOIP.
- Nombre: especifique un nombre para el prefijo.
- IPv6 Bloque de CIDR: introduzca el prefijo IPv6 exacto tal y como aparece en la base de datos RIPE.
-
Tenga en cuenta que el estado del prefijo será Creando.
-
Haga clic en el nombre del prefijo.
-
OCI generará un token de validación, que debe publicar en la base de datos RIPE en la siguiente tarea. Copie este token de validación en un bloc de notas. OCI validará posteriormente este token para confirmar que tiene control administrativo sobre el bloque IPv6.
Nota:
- No continúe con la finalización de la importación.
- Primero debe agregar el token de verificación al objeto RIPE
inet6num
en la tarea 3 y crear un objeto ROA en la tarea 4.- Solo después de realizar ambas acciones, OCI podrá validar y completar el proceso de importación.
Tarea 3: Agregar el token como un nuevo descr
asociado al rango de direcciones
Después de iniciar el proceso de importación en OCI, se genera un token de verificación. Este token es una cadena única que Oracle utiliza para confirmar que tiene control administrativo sobre el bloque de CIDR IPv6 que intenta introducir en la nube.
Para verificar la propiedad, debe agregar este token como un nuevo descr
en el objeto inet6num
para el rango IPv6 en la base de datos de RIPE.
-
En la consola de RIPE Database, vaya a Mis recursos, IPv6 y haga clic en la subred IPv6.
-
Haga clic en Actualizar objeto.
-
Haga clic en cualquier signo + e introduzca la siguiente información.
- Para agregar un nuevo
descr
, pegue el token de OCI proporcionado en la consola de OCI. - Haga clic en Ejecutar.
- Para agregar un nuevo
-
Tenga en cuenta que el objeto se ha actualizado correctamente con el nuevo atributo
descr
.
OCI ahora comprobará periódicamente la presencia de este token en el registro RIPE. Una vez que se detecta el token, el CIDR puede pasar a la siguiente etapa de verificación (validación de ROA).
Tarea 4: Creación de un objeto ROA para autorizar a Oracle a anunciar el bloque de CIDR BYOIP
Además de agregar el token de verificación a la base de datos RIPE, Oracle requiere que lo autorice explícitamente para dar a conocer su bloque CIDR IPv6 a través de BGP. Para ello, se crea un objeto ROA en el panel de control RIPE NCC RPKI.
El objeto ROA indica al ecosistema de enrutamiento de Internet que Oracle (identificado por su número de sistema autónomo [ASN]) puede anunciar su prefijo IPv6. Sin esta autorización, OCI no completará el proceso de importación BYOIP.
Hemos solicitado a la LIR que haga esto, y confirmaron en el ticket de la Tarea 1.3 que esto está hecho.
También podemos comprobarlo desde aquí: Routinator.
-
Vaya al sitio web.
-
Introduzca el prefijo IPv6.
-
Introduzca su ASN (será el número de AS de Oracle AS31898).
-
Haga clic en Validar.
Una vez que tanto el token de verificación como el objeto ROA se hayan publicado y reconocido, Oracle validará la propiedad y la autorización de enrutamiento del bloque de CIDR BYOIP IPv6. Sin embargo, antes de hacerlo, debe hacer clic en Finalizar importación en la consola de OCI.
Tarea 5: Finalizar la importación del CIDR IPv6 en OCI
Cuando haya agregado el token de verificación como descr
en el objeto inet6num
de RIPE y haya creado un objeto ROA válido que autorice el ASN AS31898
de Oracle, OCI iniciará automáticamente el proceso de verificación una vez que haga clic en Finalizar importación.
-
Haga clic en Finalizar importación para confirmar.
-
Tenga en cuenta que el estado pasó de CREANDO a VALIDANDO y que habrá un mensaje de que el proceso de importación puede tardar hasta 10 días laborables.
-
Revise la pantalla de estado BYOIP.
Oracle llevará a cabo las validaciones internas necesarias y realizará las configuraciones internas necesarias para completar la importación.
Tarea 6: Verificación de la importación del CIDR IPv6 en OCI
Después de completar el proceso de importación en la consola de OCI, es esencial verificar que el CIDR IPv6 se haya validado y aprovisionado correctamente y esté listo para su uso.
-
En la pantalla de gestión BYOIP, verá que el estado del rango BYOIP importado ahora está definido en Provisioned (Aprovisionado).
-
Tenga en cuenta que la columna Anunciado está definida en No.
-
Podemos verificar si la subred está disponible en línea desde aquí: sitio web bgp.tools.
-
Cuando introducimos el prefijo y lo buscamos, podemos ver que no se encuentra en Internet.
Una vez verificado, el CIDR IPv6 está totalmente incorporado y listo para anunciarse y asignarse en OCI. En la siguiente tarea, hacer que esté disponible en Internet.
Tarea 7: Anunciar el CIDR IPv6 en Internet
Una vez que su CIDR IPv6 se haya importado y verificado correctamente en OCI, la tarea final para que sea accesible globalmente es anunciarlo en Internet.
Esta tarea le indica a OCI que empiece a anunciar su CIDR IPv6 a través de BGP desde la red de Oracle (ASN 31898), lo que permite que el tráfico desde la red pública de Internet llegue a su espacio IPv6 en la nube.
Nota: Se necesita hacer publicidad del CIDR antes de utilizar el rango IPv6 con recursos de OCI orientados a Internet, como OCI Load Balancer, instancias de OCI Compute, etc.
-
Haga clic en los tres puntos al final de la subred y seleccione Advertise.
-
Haga clic en Advertise para confirmar.
-
Tenga en cuenta que la columna Anunciado está definida en Sí.
-
Para verificar si la subred está disponible en línea, vaya al sitio web bgp.tools.
-
Introduce el prefijo y búscalo, podemos ver que se encuentra en Internet.
Una vez que la publicidad esté activa, puede asignar el rango IPv6 a una VCN y utilizarlo dentro de OCI.
Tarea 8: Asignación del CIDR IPv6 de BYOIP a una VCN
En esta tarea, asigne el CIDR IPv6 a una VCN. Esto hace que el CIDR se pueda utilizar para crear subredes y asociar direcciones IPv6 a recursos como instancias informáticas de OCI y OCI Load Balancer.
-
Vaya a la consola de OCI, vaya a Redes, Redes virtuales en la nube y haga clic en la VCN a la que desea asignar este BYOIP IPv6.
-
Desplazar hacia abajo.
-
Tenga en cuenta que solo hay una subred disponible, que es una subred privada.
-
Haga clic en Prefijos/Bloques de CIDR. Tenga en cuenta que solo hay disponible un Prefijo/bloques de CIDR.
-
Haga clic en Agregar prefijo IPv6/bloque de CIDR.
-
Seleccione el prefijo BYOIP del menú desplegable y haga clic en Agregar bloques de CIDR/IPv6 prefijos.
-
Tenga en cuenta que el CIDR IPv6 de BYOIP ahora se agrega a la VCN.
-
Vaya a la consola de OCI, vaya a Networking, BYOIP y haga clic en el rango BYOIP importado. Tenga en cuenta que el rango ahora está asignado a la VCN.
-
Vaya a Red, Gestión de IP y haga clic en Información de direcciones IP. Tenga en cuenta que la VCN tiene asignado el rango IPv6.
-
Vaya a Networking y haga clic en VCN. Tenga en cuenta que el rango IPv6 de BYOIP también se ha agregado a la VCN.
Estamos listos para crear subredes dentro de su CIDR BYOIP IPv6 y asignarlas a recursos de OCI.
Tarea 9: Creación de una subred en el rango de CIDR IPv6 de BYOIP
Cree una subred dentro del rango IPv6. Esta subred le permitirá asignar direcciones IPv6 a recursos de OCI, como instancias informáticas o equilibradores de carga.
-
Vaya a la consola de OCI, vaya a Networking y haga clic en Virtual Cloud Networks.
-
Seleccione la VCN a la que ha asignado el CIDR IPv6 BYOIP.
-
En la página de detalles de la VCN, vaya a la sección Subredes.
-
Haga clic en Crear subred.
-
Introduzca la siguiente información.
- Nombre: introduzca un nombre para la subred.
- Tipo de subred: seleccione un dominio de disponibilidad específico o seleccione Regional para alta disponibilidad.
- Bloque de IPv4 CIDR (opcional): introduzca un bloque IPv4 si está creando una subred de doble pila.
-
IPv6 Prefijos: seleccione un rango de subred del CIDR IPv6 de BYOIP. Por ejemplo, si el rango importado es
/44
, puede asignar una subred/64
. Ya se ha proporcionado la primera parte del prefijo y, para crear una subred/64
, solo proporcione la última parte0::
. -
En Acceso a subred, seleccione Subred pública y haga clic en Crear subred.
-
Tenga en cuenta que la nueva subred se crea con un prefijo IPv6 tallado fuera del rango BYOIP importado.
En la siguiente tarea, configurará el enrutamiento para que la subred pueda enviar y recibir tráfico a través de Internet.
Tarea 10: Creación y asignación de una nueva tabla de enrutamiento para la VCN
En esta tarea, cree y asigne una tabla de enrutamiento que permita el flujo de tráfico de red correcto. Esta tabla de rutas definirá cómo se enruta el tráfico de la subred (tráfico IPv6) dentro y fuera de la VCN, incluido Internet.
-
Vaya a la consola de OCI, vaya a Redes y Redes virtuales en la nube.
-
Seleccione la VCN.
-
En Recursos, haga clic en Tablas de ruta.
-
Haga clic en Crear tabla de rutas.
-
En Reglas de ruta, introduzca la siguiente información.
- Nombre: introduzca un nombre descriptivo para la tabla de rutas.
- Versión de protocolo: seleccione IPv6.
- Tipo de destino: seleccione Gateway de Internet si la subred necesita acceso público a Internet.
- Bloque de CIDR de destino: introduzca
::/0
para permitir el tráfico saliente de IPv6 a Internet. - Destino: seleccione el gateway de Internet asociado a la VCN.
- Haga clic en Crear para guardar la tabla de rutas.
-
Tenga en cuenta que se crea la nueva tabla de enrutamiento.
-
Ahora, debemos asignar la tabla de rutas a la subred.
- Navegue hasta VCN y subredes.
- Haga clic para el nombre de la subred.
- Haga clic en Editar.
-
En Tabla de rutas, seleccione la nueva tabla de rutas que acaba de crear y haga clic en Guardar cambios.
-
Su subred ahora utiliza una tabla de rutas que permite que el tráfico IPv6 llegue a Internet a través de OCI. Cualquier instancia o recurso con una dirección IPv6 pública en esta subred ahora puede enviar y recibir tráfico IPv6.
A continuación, estará listo para iniciar una instancia informática y asignarle una dirección IPv6 desde su rango BYOIP.
Tarea 11: Creación de una instancia y uso de una dirección IPv6 desde el rango de CIDR IPv6 de BYOIP
Ahora que la VCN y la subred están configuradas y el enrutamiento está en su lugar, puede iniciar una instancia informática y asignarle una dirección IPv6 desde el rango CIDR IPv6 BYOIP importado. Esto hace que la instancia sea accesible a través de Internet mediante el espacio IPv6, que puede controlar y gestionar.
-
Vaya a la consola de OCI, vaya a Recursos informáticos, Instancias y haga clic en Crear instancia.
-
Introduzca la siguiente información.
- Nombre: introduzca un nombre para la instancia.
- Compartimento: seleccione el compartimento adecuado.
- Dominio de disponibilidad: seleccione un dominio de disponibilidad o utilice la disponibilidad regional, según la configuración.
- Imagen y unidad: seleccione la imagen y la unidad de sistema operativo que prefiera. Por ejemplo, Ubuntu y Oracle Linux.
-
Seleccione la VCN y la subred pública creadas en la tarea 9.
-
Active direcciones IPv6, si no puede activar direcciones IPv6, aunque la VCN tenga asignado un CIDR BYOIP IPv6 válido, podemos hacerlo más tarde.
-
(Opcional) Asocie claves SSH para un acceso seguro.
-
Haga clic en Crear para crear la instancia.
-
Tenga en cuenta que no hay ninguna dirección IPv6 asignada a la instancia (todavía).
-
Haga clic en VNIC asociadas y, a continuación, haga clic en la VNIC existente de la instancia.
-
Haga clic en IPv6 Direcciones y Asignar direcciones IPv6.
-
Introduzca la siguiente información.
- Seleccione el Prefijo de BYOIP IPv6 en el menú desplegable.
- Seleccione Asignar automáticamente direcciones IPv6 de prefijo.
- Haga clic en Asignar.
-
Tenga en cuenta que se ha asignado una nueva dirección IPv6 a la VNIC.
-
Vuelva a los detalles y tenga en cuenta que se ha agregado la dirección IPv6 pública de su rango IPv6 de BYOIP.
-
Vaya a un escáner de puerto IPv4 en línea. Por ejemplo, SubnetOnline. Utilice la dirección IPv4 pública para verificar qué puertos están abiertos y observe que el puerto TCP/22 está abierto.
-
Vaya a un escáner de puerto IPv6 en línea. Por ejemplo, SubnetOnline.
-
Utilice la dirección IPv6 pública para verificar qué puertos están abiertos.
-
Tenga en cuenta que el puerto TCP/22 está abierto.
-
Esto demuestra que nuestra dirección BYOIP IPv6 es accesible desde Internet.
Nota: Asegúrese de que las listas de seguridad o los grupos de seguridad de red (NSG) permiten el tráfico IPv6 entrante y saliente. Por ejemplo, ICMPv6, el puerto TCP 22 para SSH u otros puertos necesarios.
-
-
También podemos realizar una comprobación final iniciando sesión con SSH en la instancia. Por ahora, nos conectaremos a la dirección IPv4 pública.
-
Ejecute el comando
ip a
. Tenga en cuenta que la dirección IPv6 está configurada en la instancia.
Ahora tiene una instancia informática de OCI totalmente funcional que utiliza su propia dirección IPv6 de un CIDR BYOIP, que se puede enrutar públicamente y que está registrada en la administración de RIPE NCC.
Acuses de recibo
- Autor - Iwan Hoogendoorn (cinturón negro de redes en la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Configure BYOIP in Oracle Cloud Infrastructure Using an IPv6 CIDR from RIPE NCC
G38933-01
Copyright ©2025, Oracle and/or its affiliates.