Я всегда использовал локальный DNS-сервер, чтобы получать доступ к своим серверам, которые находятся за NAT из интернета. Всё просто и работает отлично. Например, если мой веб-сервер – video.myserver.com с локальным IP 192.168.100.50, то для внешних пользователей в публичной DNS-записи будет прописан IP 82.xx.xx.xx, а в локальной DNS-записи – 192.168.100.50. Для каждого сервиса добавляешь одну строку (DNS), без изменений в настройках NAT.
Если вы настраиваете Hairpin NAT и у вас динамический внешний IP, тогда нужно использовать облачные функции (или другую систему dyndns) и переделывать всю вашу NAT-настройку, чтобы это работало.
Пример видео:
Также нашёл хороший комментарий от thirdstreetzero на reddit:
Это ломает кучу основных стандартов и норм, не говоря уже о статистике, безопасности, таких вещах, как fasttrack и т.п. Это усложняет смену текущей конфигурации. Для будущих администраторов это будет невозможно понять, потому что так делать не стоит, а без подробных объяснений это обычно приводит к путанице и дополнительной работе, особенно если есть очереди или манипуляции с пакетами. Представьте, что вы хотите попасть в гостиную, но для этого вам нужно выйти через заднюю дверь, обойти квартал и войти через входную дверь. Если кажется, что это слишком громко сказано, попробуйте изобразить то, что собираетесь сделать, используя сетевую терминологию — это так же абсурдно.
Ваша проблема, если формулировать правильно, в том, что вы обращаетесь к ресурсу так, что не используете кратчайший путь к нему. То есть проблема в том, как вы его адресуете, а не в том, как к нему добираетесь.
Как только вы это осознаёте, можно переходить к следующей проблеме — универсальным способам доступа. Вы не хотите думать, где вы находитесь или в какой сети, чтобы получить доступ к ресурсу. Очевидно, локальный IP не подойдёт, потому что он не сработает вне локалки.
К счастью, у нас есть решение — DNS. Осталось только настроить локальный DNS-сервер, который будет обслуживать запросы из локальной сети и её окружения, а внешний DNS — для внешних пользователей.
P.S. Люди употребляют метамфетамин, чтобы сбежать от своей никчёмной жизни. Люди гоняют на машинах, потому что не умеют правильно планировать время. Люди не убирают за своими собаками, потому что ленивы. Это похоже — люди, не понимая, что делают, создают решение проблемы, которую не осознают.
Долгое время к этому усугубляли ситуацию плохие производители роутеров, которые добавляли (и продолжают добавлять) специальные функции для реализации этого, потому что это быстро решает, как вы сказали, распространённую проблему. Но это не значит, что это правильно. На самом деле это неправильно.
У любого устройства на ROS есть всё необходимое, чтобы грамотно решить эту проблему без использования hairpin NAT.
Есть ли у кого-то комментарии? Есть ли веские причины использовать Hairpin NAT, кроме отсутствия локального DNS-сервера?
Если вы настраиваете Hairpin NAT и у вас динамический внешний IP, тогда нужно использовать облачные функции (или другую систему dyndns) и переделывать всю вашу NAT-настройку, чтобы это работало.
Пример видео:
Также нашёл хороший комментарий от thirdstreetzero на reddit:
Это ломает кучу основных стандартов и норм, не говоря уже о статистике, безопасности, таких вещах, как fasttrack и т.п. Это усложняет смену текущей конфигурации. Для будущих администраторов это будет невозможно понять, потому что так делать не стоит, а без подробных объяснений это обычно приводит к путанице и дополнительной работе, особенно если есть очереди или манипуляции с пакетами. Представьте, что вы хотите попасть в гостиную, но для этого вам нужно выйти через заднюю дверь, обойти квартал и войти через входную дверь. Если кажется, что это слишком громко сказано, попробуйте изобразить то, что собираетесь сделать, используя сетевую терминологию — это так же абсурдно.
Ваша проблема, если формулировать правильно, в том, что вы обращаетесь к ресурсу так, что не используете кратчайший путь к нему. То есть проблема в том, как вы его адресуете, а не в том, как к нему добираетесь.
Как только вы это осознаёте, можно переходить к следующей проблеме — универсальным способам доступа. Вы не хотите думать, где вы находитесь или в какой сети, чтобы получить доступ к ресурсу. Очевидно, локальный IP не подойдёт, потому что он не сработает вне локалки.
К счастью, у нас есть решение — DNS. Осталось только настроить локальный DNS-сервер, который будет обслуживать запросы из локальной сети и её окружения, а внешний DNS — для внешних пользователей.
P.S. Люди употребляют метамфетамин, чтобы сбежать от своей никчёмной жизни. Люди гоняют на машинах, потому что не умеют правильно планировать время. Люди не убирают за своими собаками, потому что ленивы. Это похоже — люди, не понимая, что делают, создают решение проблемы, которую не осознают.
Долгое время к этому усугубляли ситуацию плохие производители роутеров, которые добавляли (и продолжают добавлять) специальные функции для реализации этого, потому что это быстро решает, как вы сказали, распространённую проблему. Но это не значит, что это правильно. На самом деле это неправильно.
У любого устройства на ROS есть всё необходимое, чтобы грамотно решить эту проблему без использования hairpin NAT.
Есть ли у кого-то комментарии? Есть ли веские причины использовать Hairpin NAT, кроме отсутствия локального DNS-сервера?
