3

До недавнего времени у меня был сервер, работающий дома в качестве DMZ (весь внешний трафик перенаправлялся на него) за кабельным маршрутизатором / модемом. Это сработало хорошо. Теперь, после того как мой провайдер перешел на 100% IPv6, я больше не могу подключиться к нему.

Я имел обыкновение понимать IPv4, сегменты сети и т.д., Но я не могу "читать" IPv6 таким же образом, поэтому, когда я теперь не могу войти в ssh я не знаю почему. Возможно, потому что я считаю, что внешний IP не может быть ...

Я получил внешний IP-адрес, зайдя на whatismyip.org , что привело к отображению на 2a01:79c:cebd:5bc:b0cc:d7d2:22d0:3369 . Это было сделано не на сервере (который является автономным), а на другой машине в той же сети. Когда я услышал что-то о том, что IPv6 позволяет напрямую подключаться к машине за NAT без пересылки, я подозреваю, что адрес IPv6, который я вижу, не является IP-адресом маршрутизатора (который обычно был бы в мире IPv4), но IPv6-адрес компьютера в локальной сети. Я, наверное, далеко отсюда, но подумал, что стоит упомянуть.

В любом случае, попытка подключения к веб-серверу, работающему на сервере, была выполнена следующим образом: curl http://[2a01:79c:cebd:5bc:b0cc:d7d2:22d0:3369] . Мне не удалось подключиться.

2 ответа2

3

Как я слышал, что IPv6 позволяет напрямую подключаться к машине за NAT без переадресации

О, так много ненужной путаницы. Мне жаль.

IPv6 по сути работает так же, как IPv4. Очевидно, есть некоторые различия, например, IPv6 использует больше битов на адрес.

Некоторое время DHCPv6 не был таким развитым, как DHCP/IPv4. Людям было рекомендовано использовать вместо этого протокол запроса маршрутизатора / рекламы маршрутизатора. (Я видел это упоминается как RS и RA.) RS / RA никогда не пользовался большой популярностью в IPv4, возможно, в основном потому, что DHCP/IPv4 уже был довольно популярен. В IPv6 процесс под названием SLAAC использует RS и RA.

Если вы используете SLAAC, некоторые реализации требуют, чтобы вы использовали /64 размера подсети. Это заметное изменение по сравнению с DHCP /IPv4, где поддерживаются многочисленные размеры подсетей, и довольно часто используются разные размеры подсетей.

В раннем стандарте IPv6 указывалось, что интернет-провайдеры должны выдавать как минимум /48 блоков. (Каждый блок /48 имел 2 ^ 16/64 подсетей, или 16 384/64 подсетей.) Это позволяет людям подсеть. Это в основном избавило от необходимости использовать NAT для минимизации использования адресов, потому что люди получали очень много адресов. Это заставило многих людей заявить, что NAT не нужен.

Чтобы обойти требование использовать NAT, нужно было настроить подсеть IPv6. Однако "обойти требование NAT" значительно отличается от "обойти NAT". Можно использовать NAT с IPv6 и заставить его технологически работать точно так же, как работает NAT с IPv4, с очевидными различиями, как обычно с большими размерами подсети. Принципы, тем не менее, будут работать одинаково.

это вызывает у меня подозрение, что IPv6-адрес, который я вижу, это не IP-адрес маршрутизатора (который обычно был бы в мире IPv4), а IPv6-адрес компьютера в локальной сети.

Да, это возможно С IPv4 вы можете назначать публичные IP-адреса своим внутренним машинам. Обычно этого не делается из-за отсутствия доступных общедоступных адресов IPv4, но его можно настроить. При использовании IPv6 общий сценарий обычно заключается в отсутствии доступных общедоступных адресов, поэтому этот тип настройки более распространен в IPv6.

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

Вы используете публичные адреса IPv6. Адреса частного использования IPv6 начинаются с "fd" (точно так же, как адреса частного использования IPv4 начинаются с "192.168." Или "172.16." - "172.31." Или "10.") Адреса, начинающиеся с "fe80:" are "link -local "адреса, похожие на IPv4" 169.254. " адреса, но с некоторыми отличиями. (В IPv6 видеть «fe80:» - это требование; не видеть это - проблема. Напротив, видя IPv4 "169.254". это часто проблема.)

Возможно, вы сможете найти адрес вашего сервера с NDP. например, в Microsoft Windows:

netsh interface ipv6 show neighbor

Другие операционные системы могут использовать такие команды, как ndp или ip -6 для отображения соседей IPv6.

3

Обычно включение IPv6 не влияет на IPv4. Итак, я предполагаю, что вы имеете в виду, что ваш провайдер на самом деле отключил родное подключение IPv4 (и пошел с CGNAT)?


В любом случае, давайте сначала выясним, что отличает IPv6:

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

Причина, по которой вам не нужна переадресация портов, заключается в том, что вы больше не находитесь за NAT. Вместо этого, в дополнение к собственному глобальному адресу, ваш маршрутизатор также получает полный диапазон (префикс /64) для использования в локальной сети, и каждое устройство имеет собственный глобальный адрес из этого префикса. Диапазон вашей локальной 2a01:79c:cebd:5bc::/64 , и каждый адрес из него доступен извне.

Так что, если вы пытаетесь подключиться к адресу, указанному как "whatismyip" на вашем компьютере, то вы фактически подключаетесь к тому же компьютеру - если вы хотите узнать адрес вашего сервера, вам придется проверить это с того сервера. Вам на самом деле не нужно посещать сайт - поскольку адрес уже является глобальным, вы можете просто получить его из ip addr в Linux, или ifconfig в BSD, или ipconfig в Windows.

(На самом деле это даже лучше, потому что многие хосты самостоятельно настраивают несколько адресов - постоянный, плюс временные адреса меняются ежедневно. Веб-сайты покажут вам временный адрес, но для входящих соединений вам определенно нужен постоянный. Вышеупомянутые команды покажут вам оба.)


Однако то, что "переадресация портов" отсутствует, не обязательно означает, что вам больше не понадобится конфигурация маршрутизатора.

В IPv4 добавление правила "переадресация портов" не просто настраивало трансляцию NAT - оно также открывало брандмауэр для этого конкретного порта. Хотя NAT больше не является проблемой в IPv6, у вас все еще есть брандмауэр - и если у вашего интернет-провайдера было чувство безопасности, то этот брандмауэр по- прежнему блокирует входящие соединения по умолчанию.

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


IPv4 и IPv6 действительно используют одни и те же понятия - маршрутизация одинакова, подсети одинаковы, NAT - это вещь, частный адрес все еще существует, как упомянул TOOGAM. Последние два просто намного менее распространены в IPv6, чем в IPv4 (где они используются из-за нехватки адресов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .