El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe la implementación paso a paso de CPNR en OpenStack Cisco Virtualized Infrastructure Manager (CVIM) mediante SR-IOV y la vinculación de Active-Backup.
Cisco recomienda que tenga conocimiento sobre estos temas:
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando
En el panorama actual de las redes, las funciones de red virtual (VNF) desempeñan un papel fundamental a la hora de habilitar servicios de red ágiles, escalables y eficientes. Para las VNF que requieren conectividad de red de alto rendimiento, SR-IOV es una tecnología de uso común. SR-IOV permite que las VNF eludan el switch virtual del hipervisor y accedan directamente a los recursos físicos del controlador de interfaz de red (NIC), lo que reduce la latencia y aumenta el rendimiento.
Antes de continuar con la implementación, asegúrese de que se cumplen estos requisitos previos.
Las tarjetas NIC Intel XL710 y E810CQDA2 se utilizan habitualmente para las redes SR-IOV de alto rendimiento. Para verificar el modelo de tarjeta NIC en el host, consulte estos pasos:
Ejecute este comando para enumerar los dispositivos de interconexión de componentes periféricos (PCI) relacionados con los controladores de red:
lspci | grep -i ethernet
Ejemplo de salida:
81:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
82:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP (rev 03)
Si la NIC es Intel XL710, puede ver Controlador Ethernet XL710 en la salida.
Si la NIC es Intel E810CQDA2, puede ver la salida Ethernet Controller E810-Cin.
Para verificar el controlador NIC en uso, ejecute:
ethtool -i
Ejemplo de salida para XL710:
driver: i40e
version: 2.13.10
Ejemplo de salida para E810CQDA2:
driver: ice
version: 1.7.12
Asegúrese de que la versión del controlador coincida con la matriz de compatibilidad de su distribución OpenStack y Linux.
Asegúrese de que SR-IOV esté habilitado en el BIOS/UEFI de los servidores.
Intel VT-d o AMD-Vi deben estar activados para el paso a través de PCI y la funcionalidad SR-IOV.
Asegúrese de que los servicios de OpenStack como Nova, Neutron, Glance y Keystone estén instalados y configurados.
Neutron debe admitir Openvswitch (OVS) para redes de orquestación/gestión y SR-IOV para redes de aplicaciones/servicios.
Los nodos informáticos deben configurarse para admitir SR-IOV, con funciones virtuales (VF) creadas en las NIC.
La imagen de VNF de CPNR debe admitir interfaces SR-IOV e incluir los controladores necesarios.
Asegúrese de que la imagen de CPNR VNF esté disponible en OpenStack Glance.
Garantizar el acceso a la CLI de OpenStack para crear redes, tipos e iniciar VNF.
Acceso raíz o administrativo para configurar la red en el host Linux y dentro de VNF.
SRIOV
A continuación se incluye un ejemplo de XML de Cisco Elastic Services Controller (ESC), que muestra la implementación de máquinas virtuales (VM) mediante redes SR-IOV (con type>direct</type>) para un arrendatario denominado test-tenant y una VM denominada sriov-vm-1. Esto incluye varias interfaces, incluidas las interfaces SR-IOV (directas):
test-tenant
true
false
sriov-vm-deployment
sriov-vm-1-group
vim1
default
sriov-image
custom-flavor
300
30
REBOOT_ONLY
0
mgmt-net
192.168.10.101
1
direct
sriov-net-1
0
sriov-subnet-1
10.10.10.10
2
direct
sriov-net-2
0
sriov-subnet-2
10.10.20.10
1
1
false
--user-data
file://tmp/init/sriov-vm-1.cfg
type>direct</type> en <interface> habilita SR-IOV (paso a través de PCI) para esa NIC.
Cada interfaz SR-IOV tiene su propia red y subred.
Puede asociar IPv4/IPv6 en <addresses> según sea necesario.
Archivo Day0 de ejemplo para transmitir el archivo XML ESC de Cisco:
Content-Type: multipart/mixed; boundary="===============2678395050260980330=="
MIME-Version: 1.0`
--===============2678395050260980330==
MIME-Version: 1.0
Content-Type: text/cloud-boothook; charset="us-ascii"
#cloud-boothook
#!/bin/bash
if [ ! -f /etc/cloud/cloud.cfg.orig ]; then
cp /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.orig
cp /etc/cloud/cloud.cfg.norootpasswd /etc/cloud/cloud.cfg
fi
--===============2678395050260980330==
MIME-Version: 1.0
Content-Type: text/cloud-config; charset="us-ascii"
#cloud-config
hostname: cpnr
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7pf8gvOWH/Zv8iAlTv6LWEiPGA3B6t96G6LwTHF6iXOqQxyIUkg8IkqZ6wNwxsDV8DYESOzFGp//aXO6wZDtoawMExe9sNEx0qVOt/ueP3IYQ8731fNJwFtWQsCQTM7VQjpcg5/d6eMxQ8zvmiIYo2huwfclE+zLdihjL/Y6v4HK760u/DQ+OaEIgqTgrwePJK5Db/gMDf+oXI9KvNxDb2vtxzroX0APEnZ9JX+Ic0JGWTkD4smMkTdWsjaqDYXqW6SUsyCc4Bf9tHL5Irr1AgUR4hEbLnbk6NlIqWrgVeI5CQVMMFpWqV0o2hyDz2rMA7tbBeYzD/ynslQAerU7DmBRb1FDVh79+JeaCNIM8EpwbCUKHT6CQAjPK8cYBieO1yEHKjHyFTsZgpvdi4rVMP+Qsvab+J5RPPcJeKj7o8KIrtyyESXbLNcZv1uGwZ8nLZKfZQSJP04HUkRKoQJ/JoMvMurEKG/cJ1VtocV4AJiRHj+367D3uzrKd6eHYlM9oD+zpPeJ1P1J2TDPUp2K7GcKCrItn9blSGo/n/+gYBO793QjSdkmc/Ag4TEVhUfG17l0WlSvAw4L0csMlYBAGGqKAUEEx3BJGYNJ851bj23m6JBe83OVWGRWrDIIE+G14/tx8qYXDaFxFUFPb2zj+gmDXq80hYpv++/yFtTocbw== cpnr@INVITN14SLM1BULD01CO
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAmkQGCZUrYqkZ0C0J9t7mF9La9zYOqfzzFkk1wWtPga+aANOaFgjqbjj+VlBdd3zJy1p6BMWZhaZIcOh0+knCisJArcHM3HlurQZXO45zHtBcm7tB1FQ0W1HI9GbvJ+IPIe7kpPme/socd5ytTx0ZkYtlcRDDZuxTwYY4P4/vpnzXuwPS2dfcfQscubj6MkSlx4JHhc/hkDsmtJUipkWEungE/UsldjQzkj8oJorymYHQXE/czNxwzCGizK1YinhebeHFcmHd6Jcqd5oZZWnmkGKGeW6o0ddSFI5NmwzHd5RzwjztU2nqmiyOA8mu7YkCm6X82uhACwQlfY0pGRpTVkIhlf+tKDwKQRuwpcbR1ZUHmli0zi5QZtbzc31aLNlUPpR21BptS4GSfbKJaMOaDUClfe8rGk+9GCgm6wnZiT+SMa4/wEA9NILlwobrwHxVsb/kFlFKXg0aPkdvmqWPNcd09vF50enrs0aXFsqCyl6CPMJpZtGAgckvX8iU2bCJkxzD9F4rAu2D/FNb8KG5cbw7uptiwB4yoek6Q36NyxHYYJyOGiV4oQJ02T9MRPkvjLf7ASx9HA25nG+J4CZXWkuV7XYX1N5DFvOg/kwA7xMPyNgTEkblTRpIcfXU2PCWYSZcn1vYmsazf2uVCY+mjfLcvi85c/1mLnUGikiovQ== admin@invitn14slm1escx01co
runcmd:
- /usr/sbin/useradd FMLVL1 -d /home/FMLVL1 -s /bin/bash -g users; (/bin/echo changeme; /bin/echo changeme) | /usr/bin/passwd FMLVL1
- nmcli con add type ethernet con-name eth0 ifname eth0 ip4 10.xx.xx.xx/24
- nmcli con add type ethernet con-name eth1 ifname eth1 ip4 172.xx.xx.xx/23
- nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000,fail_over_mac=1" ipv4.addresses 'xx.xx.xx.xx/29' ipv4.gateway 'xx.xx.xx.xx' ipv4.method manual ipv6.addresses '2402:xxxx:xx:0025::5/64' ipv6.gateway '2402:xxxx:xx:0025::1' ipv6.method manual
- nmcli connection add type ethernet ifname ens6 master bond0
- nmcli connection add type ethernet ifname ens7 master bond0
- nmcli con up eth0
- nmcli con up eth1
- nmcli con up bond-slave-ens6
- nmcli con up bond-slave-ens7
- nmcli con down bond0
- nmcli con up bond0
- nmcli connection reload
- hostnamectl set-hostname CPNRDNS01CO
--===============2678395050260980330==
CPNR es una función de red virtual (VNF) fundamental que proporciona servicios de administración de direcciones IP (IPAM), DHCP y servidor de nombres de dominio (DNS) para redes empresariales y de proveedores de servicios. La implementación de CPNR como VNF en OpenStack requiere una planificación cuidadosa, especialmente al aprovechar los puertos SR-IOV, las configuraciones de NUMA cruzadas y una interfaz de enlace de copia de seguridad activa para obtener redundancia y rendimiento.
Este artículo explica el proceso paso a paso para implementar CPNR VNF en OpenStack. Incluye:
Reconocimiento de NUMA cruzado:
Enlace de copia de seguridad activa:
Redes OpenStack:
NUMA es una arquitectura de memoria en la que cada CPU (y su memoria y dispositivos locales) se agrupa en un nodo NUMA. En OpenStack, la ubicación con reconocimiento de NUMA garantiza que las VNF se asignen de forma óptima a los recursos del mismo nodo de NUMA para minimizar la latencia y maximizar el rendimiento.
Las NIC SR-IOV son locales de NUMA:
Limitación del Modo Single-NUMA:
CPNR VNF requiere acceso a:
En esta implementación, la VNF de CPNR requiere acceso a las NIC SR-IOV tanto de NUMA 0 (sriov0) como de NUMA 1 (sriov1) para proporcionar redundancia y alta disponibilidad. Para lograr esto:
Contrack es una función del núcleo de Linux que se utiliza para realizar un seguimiento de las conexiones de red, especialmente para la traducción de direcciones de red (NAT) y las reglas de firewall. En el caso de los puertos basados en OVS en OpenStack, conntrack se utiliza para administrar el estado de la conexión y aplicar reglas de grupos de seguridad.
Tabla de seguimiento:
Límite predeterminado:
Impacto en los puertos de OVS:
Aumentar tamaño de tabla de seguimiento:
sysctl net.netfilter.nf_conntrack_max
sysctl -w net.netfilter.nf_conntrack_max=262144
echo "net.netfilter.nf_conntrack_max=262144" >> /etc/sysctl.conf
Supervisar el uso de Conntrack:
Comprobar estadísticas de seguimiento:cat /proc/sys/net/netfilter/nf_conntrack_count
Optimice las reglas de grupos de seguridad:
Reduzca el número de reglas aplicadas a los puertos OVS para minimizar la sobrecarga de pista de conexión.Los puertos SR-IOV omiten la ruta de datos OVS y las funciones del núcleo Linux como conntrack. Esto elimina por completo la sobrecarga de seguimiento de conexión.
A diferencia de los puertos OVS, que están limitados por el tamaño de la tabla de conexiones (nf_conntrack_max), los puertos SR-IOV pueden gestionar un número prácticamente ilimitado de conexiones.
Al descargar el procesamiento de paquetes al hardware NIC, los puertos SR-IOV eliminan la latencia que introduce el procesamiento de seguimiento basado en software.
El modo de vinculación de copia de seguridad activa es especialmente adecuado para esta implementación debido a su simplicidad, tolerancia a errores y compatibilidad con las interfaces SR-IOV. He aquí por qué:
El modo de copia de seguridad activa funciona independientemente del hardware o los switches físicos subyacentes. La lógica de conmutación por fallas reside completamente en el kernel de Linux, lo que lo hace altamente portátil y versátil.
Las VF SR-IOV están vinculadas a NIC físicas específicas y nodos NUMA. Mediante el modo Active-Backup, puede combinar VF de diferentes nodos NUMA en una única interfaz de enlace lógico (bond0). Esto garantiza una alta disponibilidad al tiempo que se hace un uso eficiente de los recursos de NUMA.
El modo de copia de seguridad activa es uno de los modos más simples y ampliamente utilizados en la vinculación de Linux. Está diseñado para proporcionar alta disponibilidad asegurando que el tráfico continúe fluyendo sin problemas incluso si falla una de las interfaces vinculadas. Esta es una explicación detallada de cómo funciona el modo de copia de seguridad activa, sus características clave y ventajas.
Una interfaz de enlace en Linux combina dos o más interfaces de red en una sola interfaz lógica. Esta interfaz lógica, denominada enlace (por ejemplo, bond0), se utiliza para proporcionar:
En el modo de copia de seguridad activa, sólo se utiliza una interfaz (denominada interfaz activa) en un momento dado para transmitir y recibir tráfico. Las otras interfaces permanecen en modo de espera. Si la interfaz activa falla, una de las interfaces en espera pasa al estado activo y el tráfico se redirige automáticamente a la nueva interfaz activa.
Interfaz activa única:
Conmutación por fallo automática:
Soporte de Failover:
Una vez restaurada la interfaz fallida, puede volver a activarse automáticamente (si está configurada para ello) o permanecer en modo de espera, según la configuración de vinculación.Sin requisitos en el switch:
Control:
emimon
(Media Independent Interface Monitor, Monitor de interfaz independiente de medios).Interfaz activa:
Control:
Falla de link en la interfaz activa:
Si la interfaz activa (eth2) falla (por ejemplo, cable desconectado, falla de hardware NIC o link caído), el link detecta inmediatamente la falla usando monitoreo ARP mínimo.Conmutación por fallo automática:
Tiempo de conmutación por fallas:
El proceso de conmutación por fallo es casi instantáneo (normalmente en unos pocos milisegundos, dependiendo delintervalo de minuto).Restauración de la interfaz fallida:
Continuidad del tráfico:
La conmutación por recuperación es perfecta, lo que garantiza que no se interrumpirán los flujos de tráfico en curso.El modo de copia de seguridad activa es especialmente adecuado para las interfaces SR-IOV porque:
Por ejemplo:
La VNF CPNR requiere estas cuatro redes:
Implementación paso a paso:
Red de orquestación:
openstack network create --provider-network-type vxlan orchestration-network
Red de gestión:
openstack network create --provider-network-type vxlan management-network
Subred de orquestación:
openstack subnet create --network orchestration-network \
--subnet-range 192.168.100.0/24 orchestration-subnet
Subred de administración:
openstack subnet create --network management-network \
--subnet-range 10.10.10.0/24 management-subnet
Red SR-IOV 1:
openstack network create --provider-network-type vlan \
--provider-physical-network sriov0 --provider-segment 101 sriov-network-1
Red SR-IOV 2:
openstack network create --provider-network-type vlan \
--provider-physical-network sriov1 --provider-segment 102 sriov-network-2
Para asegurarse de que VNF pueda acceder a las NIC SR-IOV desde ambos nodos NUMA, cree un sabor con compatibilidad con NUMA cruzada:
openstack flavor create --ram 8192 --vcpus 4 --disk 40 cross-numa-flavor
Establecer propiedades específicas de NUMA:
openstack flavor set cross-numa-flavor \
--property hw:numa_nodes=2 \
--property hw:cpu_policy=dedicated \
--property hw:mem_page_size=large
Después de iniciar VNF, configure la interfaz de enlace para los puertos SR-IOV (eth2 y eth3) en VNF.
Cree una interfaz de enlace (bond0) en el modo Active-Backup:
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
BONDING_OPTS="mode=active-backup miimon=100"
IPADDR=172.16.1.10
NETMASK=255.255.255.0
GATEWAY=172.16.1.1
eth2:
vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
eth3:
vi /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
MASTER=bond0
SLAVE=yes
Reinicie el servicio de red para aplicar la configuración:
systemctl restart network
Después de implementar VNF, verifique su funcionalidad mediante los siguientes pasos:
Compruebe que la instancia de VNF está activa:
openstack server show cpnr-instance
Asegúrese de que el estado es ACTIVE.
Prueba de ping: Verifique que VNF pueda comunicarse en todas las redes:
ping
ping
Interfaz de enlace:
Confirme que bond0 está activo:
cat /proc/net/bonding/bond0
Busque:
Asegúrese de que VNF esté utilizando recursos de ambos nodos NUMA:
nova show --human | grep numa
Supervisión y solución de problemas: Utilice herramientas como etcpdumpandethtool para supervisar las interfaces SR-IOV.
Seguridad: Gestione cuidadosamente el acceso a la red física y aplique un aislamiento estricto entre los arrendatarios.
Escalabilidad: Planifique la capacidad de NIC física al ampliar las implementaciones de SR-IOV, ya que el número de VF disponibles está limitado por el hardware de NIC.
Si la implementación no funciona como se esperaba, consulte estos pasos de solución de problemas:
dmesg | grep -i "SR-IOV"
lspci | grep Ethernet
Si VNF no puede acceder a ambas NIC, asegúrese de que el modo NUMA cruzado esté habilitado:
openstack flavor show cross-numa-flavor
cat /proc/net/bonding/bond0
systemctl restart network
openstack port list --server cpnr-instance
ip addr show
La implementación de CPNR VNF en OpenStack con puertos SR-IOV requiere el modo NUMA cruzado para permitir que VNF se conecte a NIC desde ambos nodos NUMA. Esto es esencial porque OpenStack restringe las VNF en modo de NUMA único para que solo accedan a los recursos (NIC, CPU, memoria) dentro del nodo NUMA donde se inicia la VNF. La combinación del modo de NUMA cruzado con la vinculación de copia de seguridad activa garantiza una alta disponibilidad, tolerancia a fallos y una utilización eficiente de los recursos, lo que hace que esta implementación sea altamente resistente y eficaz.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
10-Jul-2025 |
Versión inicial |