Linux netns: запуск разных команд с разных IP-адресов на одном физическом интерфейсе

Linux netns: запуск разных команд с разных IP-адресов на одном физическом интерфейсе

У меня есть Debian Stretch VPS с 4 IPv4-адресами. Я хочу запустить несколько программ, привязав их к определенным IP-адресам (чтобы делать исходящие HTTP-запросы с разных IP-адресов). Например, команда

~$ curl icanhazip.com

выведет определенные различные IP-адреса.

Что я наделал:

0) Заказал дополнительные IP-адреса у своего интернет-провайдера.

1) Отредактировал /etc/network/interfaces и добавил дополнительные IP-адреса:

# 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) Затем я создал netns для каждого IP

ip netns add ns1
ip netns add ns2
and so on

3) Попытался добавить интерфейс к недавно созданным netns:

# ip link set ens3:1 netns ns1

4) В этот момент SSH-соединение обрывается. Если я войду через VNC и выполню ip a, то увижу, что весь физический интерфейс ens3 и все его подинтерфейсы исчезли из основных netns. Скриншот вывода команды

Что я делаю не так? Как мне привязать программы к разным исходным IP-адресам?

P.S. Я разрабатываю простой парсер сайтов с использованием Python, мне нужны разные IP-адреса, чтобы ускорить парсинг (создать больше запросов в секунду) и избежать бана.

решение1

Данный физический интерфейс может находиться только в одном сетевом пространстве имен, поэтому каждый из ваших псевдонимов не может находиться в своих собственных пространствах имен. Как только вы начнете перемещать один, все начнет перемещаться, что объясняет ваше наблюдение.

См. этот вопрос:Вторичный IP в собственном пространстве имен netnsдля обоих объяснений, почему это так, а также решения на основе macvlan(или в противном случае вы можете использовать мосты, переадресацию IP или NAT).

Связанный контент