У меня есть виртуальная машина с сетевыми интерфейсами, а именно eth0
, eth1
и eth2
. Все эти интерфейсы подключены к независимым маршрутизаторам ISP, у которых настроен глобальный статический IP-адрес, скажем так Public-IP1
, Public-IP2
и Public-IP3
. На внутреннем уровне каждый из маршрутизаторов ISP предлагает IP-адрес виртуальной машине, скажем Internal- IP1
, [117422 7] Внутренний IP2 и ВнутреннийIP3
на соответствующих интерфейсах, подключенных к маршрутизатору. Я перенаправил порт 22 на всех интерфейсах виртуальных машин на общедоступные IP-адреса маршрутизаторов ISP.
Теперь, когда я пытаюсь использовать ssh
на Public-IP1
, я могу связаться с виртуальная машина, но я не могу связаться с ней на Public-IP2
и Public-IP3
. Для тестирования, если я включаю только один из сетевых интерфейсов на виртуальной машине, я могу войти в виртуальную машину с соответствующего общедоступного IP-адреса. Например, если на виртуальной машине активен только интерфейс eth2
, то я могу подключиться к виртуальной машине через Public-IP2
через ssh
.
Проблема происходит, только когда активны несколько сетевых интерфейсов. В этом случае только первый интерфейс принимает соединение, в то время как другие остаются недоступными.
Я хотел бы знать, требуется ли какая-то конфигурация для достижения настройки, при которой виртуальная машина становится доступной по всем трем общедоступным IP-адресам одновременно время.
Сначала я попытался настроить netplan
, но это не имело никакого значения, хотя служба работает без ошибок. Конфигурация доступна здесь https://paste.ubuntu.com/p/fxQkJMbtmb/ - точная вставка из /etc/neplan/network.yaml
Затем я обновил / etc / network / interfaces
, которые правильно подняли интерфейсы, но привели меня к проблеме, упомянутой выше. Конфигурация доступна здесь - https://paste.ubuntu.com/p/X5Vsy86z9M/ - точная вставка из / etc / network / interfaces
Я также установил таблицы на ] / etc / iproute2 / rt_tables
просто перечислил имена. Конфигурация доступна здесь - https://paste.ubuntu.com/p/4ykJp3W5cK/ - точная вставка из / etc / iproute2 / rt_tables
Список маршрутов доступен здесь - https: / /pastebin.ubuntu.com/p/b9JNTd9yHW/
В конфигурациях Netplan вы по-прежнему указываете шлюзы по умолчанию для всех трех интерфейсов. Вам нужно выбрать один в качестве интерфейса по умолчанию.
Эта конфигурация отменяет ваши таблицы маршрутизации и использует DHCP для определения ваших шлюзов, что не будет работать, поскольку устанавливает общесистемный шлюз по умолчанию.
Нам нужно адаптировать его — отключить маршруты, назначаемые DHCP, и оставить только адресацию.
Вам также потребуется правильно настроить конфигурацию для маршрутизации, и я думаю, что вы пытались слишком усложнить конфигурацию.
Попробуйте использовать эту конфигурацию в конфигурации вашего сетевого плана:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
table: 1000
routing-policy:
- from: 192.168.0.0/24
table: 1000
nameservers:
addresses: [192.168.0.10,192.168.0.20,8.8.8.8,8.8.4.4]
eth1:
dhcp4: true
dhcp4-overrides:
use-routes: false
routes:
- to: 0.0.0.0/0
via: 192.168.1.1
table: 1001
routing-policy:
- from: 192.168.1.0/24
table: 1001
nameservers:
addresses: [8.8.8.8,8.8.4.4]
eth2:
dhcp4: true
dhcp4-overrides:
use-routes: false
routes:
- to: 0.0.0.0/0
via: 192.168.2.1
table: 1002
routing-policy:
- from: 192.168.2.0/24
table: 1002
nameservers:
addresses: [8.8.8.8,8.8.4.4]
Однако здесь есть некоторые допущения, а именно: (1) ваши сети /24, (2) вы хотите использовать DHCP для своей сети, но НЕ иметь шлюзов определены для двух других интерфейсов (таким образом, eth0 является вашим основным, а eth1 и eth2 просто находятся в другой сети, но не являются основными шлюзами), и (3) вы фактически используете Netplan.