GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar una red virtual `veth`

Para que Veth funcione, un extremo del túnel debe conectarse con otra interfaz. Dado que desea mantener todo esto virtual, puede unir el extremo vm1 del túnel (vm2 es el otro extremo del túnel) con una interfaz virtual de tipo tap, en un puente llamado brm. Ahora le da direcciones IP a brm y a vm2 (10.0.0.1 y 10.0.0.2, respectivamente), habilite el reenvío de IPv4 mediante

echo 1 > /proc/sys/net/ipv4/ip_forward

active todas las interfaces y agregue una ruta que indique al núcleo cómo llegar a las direcciones IP 10.0.0.0/24. Eso es todo.

Si desea crear más pares, repita los pasos a continuación con diferentes subredes, por ejemplo, 10.0.1.0/24, 10.0.2.0/24, etc. Dado que habilitó el reenvío de IPv4 y agregó las rutas apropiadas a la tabla de enrutamiento del kernel, podrán comunicarse entre sí de inmediato.

Además, recuerda que la mayoría de los comandos que estás usando (brctl, ifconfig,...) están obsoletos:el iproute2 suite tiene comandos para hacer todo esto, vea a continuación mi uso de la ip dominio.

Esta es una secuencia correcta de comandos para el uso de interfaces de tipo veth :

primero cree todas las interfaces requeridas,

ip link add dev vm1 type veth peer name vm2
ip link set dev vm1 up
ip tuntap add tapm mode tap
ip link set dev tapm up
ip link add brm type bridge

Tenga en cuenta que no mostramos brm y vm2 porque tenemos que asignarles direcciones IP, pero sí mostramos tapm y vm1, que es necesario para incluirlos en el puente brm. Ahora esclavice las interfaces tapm y vm1 al puente brm,

ip link set tapm master brm
ip link set vm1 master brm

ahora proporcione direcciones al puente y al resto de la interfaz veth vm2,

ip addr add 10.0.0.1/24 dev brm
ip addr add 10.0.0.2/24 dev vm2

ahora abre vm2 y brm,

ip link set brm up
ip link set vm2 up

No es necesario agregar la ruta a la subred 10.0.0.0/24 explícitamente, se genera automáticamente, puede verificar con ip route show . Esto resulta en

ping -c1 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.035 m

--- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.035/0.035/0.035/0.000 ms

También puede hacerlo al revés, es decir, de vm2 de vuelta a brm:

ping -I 10.0.0.2 -c1 10.0.0.1
PING 10.0.0.1 (10.0.0.1) from 10.0.0.2 : 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms

--- 10.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.045/0.045/0.045/0.000 ms

La aplicación más útil de NICs del veth tipo es un espacio de nombres de red , que es el que se usa en contenedores Linux (LXC). Comienza uno llamado nnsm de la siguiente manera

ip netns add nnsm

luego le transferimos vm2,

ip link set vm2 netns nnsm 

dotamos al nuevo espacio de nombres de red con una interfaz baja (absolutamente necesaria),

ip netns exec nnsm  ip link set dev lo up

permitimos NATting en la máquina principal,

iptables -t nat -A POSTROUTING -o brm -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

(si está conectado a Internet a través de eth0 , de lo contrario, cambie en consecuencia), inicie un shell en el nuevo espacio de nombres de red,

ip netns exec nnsm xterm & 

y ahora, si comienza a escribir el nuevo xterm, encontrará que está en una máquina virtual separada con la dirección IP 10.0.0.2, pero puede acceder a Internet. La ventaja de esto es que el nuevo espacio de nombres de red tiene su propia pila, lo que significa que, por ejemplo, puede iniciar una VPN en él mientras el resto de su PC no. en la VPN. Este es el artilugio en el que se basan los LXC.

EDITAR:

Cometí un error, trayendo la interfaz vm2 la baja y borra su dirección. Por lo tanto, debe agregar estos comandos, desde dentro del xterm:

ip addr add 10.0.0.2/24 dev vm2
ip link set dev  vm2 up
ip route add default via 10.0.0.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

y ahora puede navegar desde dentro de xterm.

El ip los comandos también se pueden hacer antes del xterm con

ip -netns nnsm addr add 10.0.0.2/24 dev vm2
ip -netns nnsm link set dev vm2 up
ip -netns nnsm route add default via 10.0.0.1

Linux
  1. Cómo configurar una dirección IP estática en Debian Linux

  2. Configuración de la red Proxmox en el servidor dedicado de Hetzner

  3. Configurar un host virtual basado en nombre en Apache

  4. Cómo configurar la vinculación de Etherchannel de Linux para la interfaz de red HA

  5. ¿Cómo conectarse a una máquina virtual Hyper-V local a través de SSH?

Cómo configurar la vinculación de red en Ubuntu 20.04

Configurar el servidor de documentación de la red, el sistema y el centro de datos.

Cómo configurar un host virtual Nginx

Zentyal como puerta de enlace:la configuración perfecta

Cómo configurar la configuración de host virtual de Apache (con ejemplos)

Cómo configurar las adiciones y la red de invitados de VirtualBox