Вопрос или проблема
Я управляю несколькими вычислительными экземплярами Oracle Cloud (все серверы Ubuntu), расположенными в разных регионах.
На всех виртуальных машинах iptables настроен на разрешение входящего трафика на порт 22, и те же правила входящего трафика применяются к списку безопасности VCN.
Раньше я мог устанавливать соединения между хостами (ssh, rsync, scp), но это становится все сложнее, так как все больше соединений между отдельными хостами не удается установить из-за истечения времени ожидания:
ssh -vvv myhost
debug1: Connecting to myhost [xx.xx.xx.xx] port 22
debug3: set_sock_tos: set socket 3 IP_TOS 0x10
Я говорю “все сложнее”, потому что соединение от HostA (Амстердам) к HostB (Франкфурт), которое работало вчера, больше не работает сегодня. Поведение, похоже, распространяется на все большее количество хостов (или, может быть, пар хостов?), и я не могу установить закономерность.
Обратите внимание, что я могу подключаться по ssh ко всем виртуальным машинам с моего личного компьютера или не-Oracle-хостов.
Буду очень признателен за любые подсказки,
.
Ответ или решение
Управление сетевыми соединениями между вычислительными экземплярами на облачной платформе Oracle — это ответственная и важная задача. Вы отмечаете, что испытываете трудности с установлением SSH-соединений между различными виртуальными машинами (VM), работающими под управлением Ubuntu и находящимися в разных регионах. При этом вы можете подключаться к ним с вашего персонального компьютера и других неOracle-хостов, что подводит к мысли о проблемах, связанных именно с инфраструктурой Oracle или конфигурацией безопасности между этими экземплярами.
Теория
На ваш запрос возможно несколько причин нарушения связи, и их решение может быть связано как с сетевой конфигурацией на уровне Oracle Cloud Infrastructure (OCI), так и с настройками самих виртуальных машин. Разберем это подробнее:
-
Конфигурации безопасности VCN: Oracle использует виртуальные облачные сети (VCN) для изоляции сетевого трафика. Безопасные списки (Security Lists) и сетевые групповые политики безопасности (Network Security Groups) могут ограничивать или разрешать трафик между экземплярами.
-
IP-таблицы: Конфигурации iptables на уровне виртуальных машин могут создать блокировку или ограничение на прием или передачу пакетов.
-
Подсети и маршрутизация: Необходимо убедиться в правильной настройке маршрутизации и подсетей, которые могут ограничивать трафик по умолчанию.
-
Ограничения провайдера: В редких случаях может быть применено ограничение со стороны провайдера (Oracle), например, из-за превышения лимитов или политики безопасности.
-
Проблемы с DNS или именами хостов: Если используются доменные имена вместо IP-адресов, возможны проблемы с разрешением имен.
Пример
Представим ситуацию, что вчера вы могли успешно подключаться к HostB во Франкфурте с HostA в Амстердаме. Сегодня это соединение разрывается. Вы видите в логах, что происходит попытка подключения к нужному IP на порту 22, но соединение не устанавливается. При этом с вашей машины дома подключение происходит успешно. Исходя из этого, можно сделать предположение о возможной причине во внутренней сети Oracle.
Применение
Для решения проблемы следуйте следующим шагам:
-
Проверка и настройка VCN Security Lists:
- Убедитесь, что в security list разрешен входящий и исходящий трафик по порту 22 между всеми интересующими вас подсетями и IP-адресами.
- Настройте Network Security Groups аналогично, если они используются.
-
Анализ конфигурации iptables:
- Проверьте настройки iptables на каждом экземпляре, чтобы удостовериться, что они разрешают трафик на и с порта 22.
- Используйте команды
iptables -L -v -n
и ищите правила, которые могут блокировать необходимый трафик.
-
Настройка маршрутов:
- Убедитесь, что для каждого VCN определены правильные маршруты, включая локальные и межрегиональные трафики.
-
Диагностика через трассировку соединений:
- Используйте команды
traceroute
иtcpdump
для диагностики путей, по которым идет сетевой трафик, чтобы определить, где именно происходит его потеря.
- Используйте команды
-
Ресурсные лимиты и политика:
- Проверьте, не превысили ли вы лимиты ресурсов, установленные в вашем Oracle аккаунте, которые могли бы ограничить соединения.
-
Поддержка Oracle:
- В случае, если причиной являются внутренние проблемы облачной платформы, создайте запрос в службу поддержки Oracle для дальнейшей диагностики проблемы на уровне их инфраструктуры.
С учетом всех вышеуказанных шагов и методов диагностики проблема сетевой связности между Oracle VMs имеет высокий шанс на успешное разрешение. Однако, если она не была устранена, это может потребоваться в более глубокой оценке сетевой инфраструктуры, включая возможные индивидуальные региональные политики или заложенные ограничения провайдера.