Redes de Linux: ejecute diferentes comandos con diferentes IP en una interfaz física

Redes de Linux: ejecute diferentes comandos con diferentes IP en una interfaz física

Tengo un VPS Debian Stretch con 4 direcciones IPv4. Quiero ejecutar varios programas, vinculándolos a direcciones IP específicas (para realizar solicitudes HTTP salientes desde diferentes IP). Entonces, por ejemplo, comando

~$ curl icanhazip.com

generaría IP diferentes específicas.

Qué he hecho:

0) Pedí IP adicionales a mi ISP

1) Edité /etc/network/interfaces y agregué IP adicionales:

# Initial configuration after ordering VPS
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug ens3 
iface ens3 inet static
    address 194.67.205.100
    netmask 255.255.252.0
    gateway 194.67.204.1

# Next lines were added by me
auto ens3:1
iface ens3:1 inet static
    address 185.125.216.101
    netmask 255.255.252.0

auto ens3:2
iface ens3:2 inet static
    address 185.125.216.102
    netmask 255.255.252.0

auto ens3:3
iface ens3:3 inet static
    address 185.125.216.103
    netmask 255.255.252.0

2) Luego he creado redes para cada IP.

ip netns add ns1
ip netns add ns2
and so on

3) Intenté agregar una interfaz a las redes recién creadas:

# ip link set ens3:1 netns ns1

4) En ese momento se cae la conexión SSH. Si inicio sesión usando VNC y ejecuto ip a, veo que toda la interfaz física ens3 y todas sus subinterfaces desaparecieron de las redes principales. Captura de pantalla de salida del comando

¿Qué estoy haciendo mal? ¿Cómo puedo vincular programas a diferentes direcciones IP de origen?

PD: Estoy desarrollando un raspador de sitios simple usando Python, necesito diferentes IP para acelerar el análisis (realizar más solicitudes por segundo) y evitar la prohibición.

Respuesta1

Una interfaz física determinada solo puede estar en un espacio de nombres de red, por lo que cada uno de sus alias no puede estar en sus propios espacios de nombres. Tan pronto como empieces a mover uno, todo se moverá, lo que explica tu observación.

Vea esta pregunta:IP secundaria en su propio espacio de nombres de redpara ambas explicaciones de por qué es así, y también una solución basada en macvlan(o en caso contrario puedes hacer puentes, reenvío de IP o NAT).

información relacionada