У меня есть вопрос, который может быть новичком для простого SNAT.Краткая схема сценария:
- Существует сервер с частным IP и общедоступным IP, и установлен Docker.
- Контейнеру в Docker необходимо подключиться черезSSH к другим хостам на интерфейсе Private IP.
- Docker по умолчанию отправляет только трафик на общедоступный IP.
- Для маршрутизации трафика из контейнера в контейнер можно использовать правило SNAT сетевого фильтра.Частный IP.(В настоящее время это рекомендуемое решение для обычного Docker, см. [1] ниже)
- Это прекрасно работает при подключении к другим хостам через частный интерфейс (например, с 10.0.0.7 по 10.0.0.3)однако трафик SNAT с частного IP при запросе порта SSH на этом частном IP не работает (например, с 10.0.0.7 по 10.0.0.7 не работает).
Правило SNAT выглядит действительно простым, поэтому я предполагаю, что здесь просто упущено что-то очевидное.Вот правила SNAT:
Системные IP-адреса:
208.10.10.123 (The public interface IP)
10.0.0.7 (The private interface IP)
Правила SNAT:
*nat
:DOCKER - [0:0]
:EXTERNAL_IP - [0:0]
-A POSTROUTING -j EXTERNAL_IP
-A EXTERNAL_IP -s 172.17.0.4/32 -j SNAT --to-source 10.0.0.7
-A EXTERNAL_IP -j RETURN
Использование команды nc
для демонстрации проблемы:
# Works: Request to another host on the private interface:
bash-4.4# nc -zv 10.0.0.3 22
10.0.0.3 (10.0.0.3:22) open
# Not Working: Request to local private IP interface of server:
bash-4.4# nc -zv 10.0.0.7 22
nc: 10.0.0.7 (10.0.0.7:22): Operation timed out
Исследуя проблему, я не могу найти ни одного обсуждения или документации по соединениям SNAT, где пунктом назначения является порт с тем же IP-адресом, с которого идет SNAT.Любые указатели будут очень цениться!
(Кроме того, я был бы рад предоставить любую дополнительную информацию, которая была бы полезна. Мне кажется, что вышеизложенное является самым простым воспроизводимым случаем, который я когда-либо предлагал, но, возможно, я упустил что-то очевидное.)
[1] Невозможно выбрать исходящий (внешний) IP для контейнеров. · Ошибка № 30053 · moby / moby: https://github.com/moby/moby/issues/30053#issuecomment-364344488