Вот мой сценарий:
У меня есть два отдельных сетевых интерфейса, каждый со своим собственным статическим публичным и частным IP (IPv4), подключенных к одной виртуальной сети, которая подключена к одной виртуальной машине. Я хотел бы иметь возможность назначить eth1
, вторичный сетевой интерфейс, его собственному сетевому пространству имен, а затем использовать это пространство имен для выполнения приложения Python, которое отправляет информацию в базу данных MySQL.
По сути, я хочу запустить два из этих приложений одновременно на одной виртуальной машине, но запустить их в отдельных пространствах имен, чтобы моя база данных получала запросы с двух разных публичных IP-адресов. Использование пространств имен было лучшим вариантом, который я смог найти. У меня есть немного Python (я использую оболочку Python для netns), но я борюсь с тем, что, как я считаю, является сервером имен для пространства имен.
Я выполняю следующие команды для создания пространства имен:
>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
Затем я пытаюсь выполнить ping google.com
и получаю следующую ошибку:
ping: google.com: Temporary failure in name resolution
Я знаю, что я что-то упускаю, и признаю, что я большой нуб, когда дело касается нетворкинга. Любая помощь будет оценена по достоинству.
К вашему сведению: Я использую облачные сервисы Azure для всего этого. Мои DNS-серверы на обоих сетевых интерфейсах настроены наНаследовать от виртуальной сетии IP-пересылка отключена. Адресное пространство для виртуальной сети 10.0.0.0/24
с первичным интерфейсом ( eth0
) с использованием 10.0.0.4
и вторичным интерфейсом ( eth1
) с использованием 10.0.0.5
.
РЕДАКТИРОВАТЬ: Кажется, я начинаю понимать, как работает сетевая маршрутизация, но у меня возникла еще одна ошибка.
>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
>> sudo ip netns exec 001 ip addr add 10.0.0.5/24 dev eth1
Шлюзом по умолчанию для eth0
является 10.0.0.1
, поэтому я предположил, что настрою eth1
шлюз по умолчанию для , так как они используют одну и ту же виртуальную сеть.
>> sudo ip netns exec 001 ip route add default via 10.0.0.1 dev eth1
Error: Nexthop has invalid gateway.