Не могу использовать внешний IP на Hetzner VPS

Я недавно изменил свою модель виртуального сервера на Hetzner. У нового есть внешний IPv4-адрес, по которому он доступен из Интернета (как и должно быть). Но я не могу использовать этот внешний IP в конфигурации: iptables правила не имеют никакого эффекта, openvpn сервер не может привязать слушателя ни к какому порту, используя этот IP и т. д. Я нашел "локальный" IP-адрес (172.31.x.x) в ifconfig вывод, и если я использую его в конфигурации, все работает как шарм.

На моем старом сервере я смог использовать его где угодно. Поэтому мне просто интересно: почему внешний IP не может работать на моем новом сервере? ОС есть Ubuntu 15.04

2 ответа

Решение

Хетцнер прекратил назначать общедоступные IPv4-адреса виртуальным серверам. Насколько я могу судить, это изменение произошло, когда они изменили название продукта с VQ на CX. Использование NAT не упоминается в описании продукта.

В итоге Хецнер представил новую облачную платформу, в которой виртуальные машины получают реальные публичные адреса IPv4 и маршрутизируемый префикс /64 IPv6. Обе версии имеют имя CX.

Виртуальные серверы, заказанные в 2012 и 2013 годах, будут сохранять свои общедоступные IPv4-адреса до 2019 года, когда линия VQ будет прекращена. Но виртуальные серверы, заказанные в 2016 году, имеют только адрес RFC1918, и Hetzner не будет направлять общедоступный адрес IPv4 на такой виртуальный сервер.

Они по-прежнему выделяли выделенный публичный IPv4-адрес каждому виртуальному серверу, которому они присваивают NAT назначенный адрес RFC1918. Хетцнер считал, что это не проблема, потому что это был NAT 1:1.

Как вы узнали, это подвержено ошибкам при настройке сервера. Вы должны знать об этом NAT. И вам нужно искать отображение всякий раз, когда вы что-то настраиваете. Для первого виртуального сервера, который мы получили в такой конфигурации, он был неправильно настроен дважды в первые пару дней из-за этого.

Любое программное обеспечение, которое полагается на знание общедоступного IPv4-адреса, сломается или нуждается в специальной настройке. Кроме того, некоторые VPN и IP-туннели могут иметь проблемы, потому что туннелированные пакеты не будут преобразованы в NAT.

Если вы установили, что эти потенциальные проблемы не влияют на ваше предполагаемое использование, и если вам удобно учитывать соответствие между публичными и частными адресами при внесении изменений в конфигурацию, вы можете принять ситуацию.

Однако имейте в виду, что большинство реализаций NAT имеют состояние. Если NAT действительно с состоянием, вы можете столкнуться с остановкой TCP-соединений при потере состояния.

Я не знаю, является ли NAT, используемый Гетцнером, состоящим из состояний или без учета состояния. Самым очевидным способом проверки состояния на состояние, которое я мог бы придумать, является туннельное установление соединения и отключение туннеля после установления TCP-соединения. Увы, такого рода туннелирование не работает, поэтому для выполнения этого эксперимента сначала нужно будет скопировать их конфигурацию NAT 1:1. Я не пытался этот довольно сложный эксперимент.

У вас есть следующие варианты:

  • Перейдите на новую линию CX, на которой Hetzner предоставит вам реальный IPv4-адрес и маршрутизированный /64 IPv6 -префикс.
  • Примите, что ваш трафик будет проходить через NAT 1:1 с недостатками.
  • Делайте весь свой важный трафик на IPv6 - поскольку Hetzner правильно маршрутизирует трафик IPv6 без NAT.
  • Переключитесь на выделенный сервер (при условии, что они все еще получают общедоступный IPv4-адрес, что трудно понять, поскольку использование NAT нигде не упоминается в описании продукта).
  • Переключитесь на другого провайдера.

Поскольку вы арендуете у Hetzner, я думаю, вы говорите по-немецки, поэтому вот ответ прямо из вики поддержки Hetzner:

Warum hat meine VM die IP 172.31.1.100?

Одер аух:

Warum hat meine VM eine andere IP als im Robot angegeben?

Warum hat meine VM eine private IP?

Приведенный ниже пример использования IPv4-адреса в частном IP-адресе - 1:1 на NAT при использовании IPv4-адреса. Aktuell ist die private IP bei allen gleich: 172.31.1.100. Die öffentliche IP wird im Hetzner Robot angezeigt.

На английском:

Почему у моей виртуальной машины IP 172.31.1.100?

Или также:

Почему у моей виртуальной машины другой IP-адрес, чем у робота?

Почему у моей виртуальной машины есть частный IP?

В моделях CX IPv4-адрес виртуального сервера является частным IP-адресом, который настраивается 1:1 через NAT на общедоступном IP-адресе. В настоящее время частный IP-адрес одинаков для всех: 172.31.1.100. Публичный IP-адрес отображается в роботе.

Другие вопросы по тегам