linux - mac - mp3tag ubuntu
Dispositivos de red virtual en Linux (3)
¿Alguien puede explicar en detalle cuáles son las diferencias entre los pares veth y las interfaces tap y cómo estos dispositivos se conectan a linux bridge o openvswitch?
Encontré esto: "Veth es un dispositivo de red especial que se creó en pares, lo considero como un método para cambiar la dirección del tráfico, es decir, cuando el tráfico de dirección de salida se envía a un dispositivo de la pila de protocolos de Linux, se envió para otro es un dispositivo de espejo, por lo que el espejo uno lo trata como un tráfico en la dirección y lo vuelve a poner en la pila de protocolos de Linux para su uso posterior.
Tap device es un dispositivo lógico de red pero diferente con cualquier otro: permite que el programa de espacio de usuario inyecte directamente tráfico en la pila de protocolos de Linux, así como también puede recuperar el tráfico de la pila. Abre un túnel a la pila de protocolos de Linux en el nivel 2 (o tun dispositivo en el nivel 3) en el espacio de usuario, la pila considerará los datos del espacio de usuario como en el tráfico de dirección "
pero no me dio la imagen completa.
¡gracias por adelantado!
El propósito de estos artefactos de redes virtuales es similar. Pero hay diferencias sutiles y, por lo tanto, se usan en diferentes circunstancias:
TAP : la aplicación de espacio de usuario / máquina virtual puede leer o escribir un cuadro de Ethernet en la interfaz de tap y llegaría al kernel de host, donde se manejaría como cualquier otro marco de ethernet que llegara al kernel a través de puertos físicos (p. Ej. Eth0). Usted puede potencialmente agregarlo a un puente de software (por ejemplo, puente de Linux)
VETD : se usa normalmente cuando intentas conectar dos entidades que querrían "agarrar" (a falta de una frase mejor) una interfaz para reenviar / recibir marcos. Estas entidades podrían ser contenedores / bridges / ovs-switch, etc. Digamos que desea conectar un contenedor docker / lxc a OVS. Puede crear un par veth e insertar la primera interfaz en la ventana acoplable / lxc (por ejemplo, como una interfaz física) y pasar la otra interfaz a OVS. No puedes hacer esto con TAP.
Tenga en cuenta que no debemos malinterpretar que necesitamos usar VETH y no tocar cuando se usa el OVS. Siempre podemos crear los puertos internos en OVS que se comportan exactamente como la interfaz de toque. Pero esto no siempre es posible, por ejemplo, cuando quiere conectarse a una entidad que no puede sintetizar una interfaz tipo grifo. Es decir:
$ ovs-vsctl add-port ovs-switch-name tap0
Ahora puedes usar tap0
como utilizamos las interfaces de tap.
Esta entrada de blog muy bonita parece exactamente lo que necesita: Conmutación de Linux - Espacios de nombres interconectados Abra vSwitch. . . las interfaces de toque y los detalles de los pares veth se muestran con diagramas.
Las interfaces de tap de Linux creadas con ip tuntap no se pueden usar para adjuntar espacios de nombres de red a linuxbridges o openvswitch, por lo que debemos depender de veth pair.
Las interfaces Ethernet virtuales vienen en pares, y están conectadas como un tubo: lo que venga en una de las cinco interfaces saldrá de la otra interfaz par. Como resultado, puede usar cinco interfaces para conectar un espacio de nombres de red al mundo exterior a través del espacio de nombres "predeterminado" o "global" donde existen interfaces físicas.
Un dispositivo TAP, como vnet0, es cómo hipervisores como KVM y Xen implementan una tarjeta de interfaz de red virtual ( generalmente llamada VIF o vNIC ). El sistema operativo invitado recibe una trama Ethernet enviada a un dispositivo TAP.