4

Один из моих компьютеров подключен только к IPv4-провайдеру, поэтому я использую miredo для получения IPv6-адреса. Теперь мне нужно получить удаленный доступ к этому компьютеру с помощью IPv6. (Я не могу использовать IPv4 здесь, потому что он находится за NAT I и не может добавить переадресацию новых портов.) Проблема в том, что я не могу добавить DNS-запись AAAA, потому что некоторая часть IP-адреса меняется случайным образом при каждом подключении компьютера к сети.

Итак, мой вопрос: есть ли способ всегда использовать один и тот же IP-адрес с Teredo?

4 ответа4

2

IP-адреса Teredo зависят от нескольких вещей в Википедии.

Прежде всего, это зависит от IPv4-адреса маршрутизатора. Если это может быть изменено, у вас есть проблема.

Во-вторых, это зависит от исходного порта, используемого Teredo, который может быть преобразован и изменен устройством NAT. Если ваше NAT-устройство сохраняет исходный порт, используемый приложениями внутри, вы можете сделать так, чтобы это не изменилось. Если вы работаете в Windows, вам может пригодиться опция "clientport" для Teredo. Смотрите эту статью Technet.

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

Лучшим вариантом может быть установка динамического DNS-клиента, при условии, что вы найдете тот, который опубликует IPv6-адрес интерфейса Teredo.

1

По-видимому, начиная с RFC 5991, некоторые части адреса IPv6 всегда случайны, чтобы сделать его непредсказуемым.

Таким образом, самым простым решением для меня было использование службы динамического DNS, поддерживающей IPv6, например dynv6.com.

1

Да, это можно сделать с помощью протокола Teredo. Но для этого требуется модифицированный код как на клиенте Teredo, так и на сервере Teredo.

Чтобы объяснить, почему он может считаться одним и тем же протоколом после того, как клиент и сервер были изменены, я сначала должен объяснить, каковы другие компоненты, участвующие в обмене данными.

Основы Teredo

Четыре критических сетевых узла в коммуникации, использующей протокол Teredo:

  • Клиент Teredo
  • Сервер Teredo (выбирается клиентом)
  • Реле Teredo (выбирается собственным узлом IPv6)
  • Собственный узел IPv6

В конечном счете, именно клиент Teredo и собственный узел IPv6 хотят обмениваться пакетами IPv6. Серверы Teredo и реле Teredo существуют для облегчения этого трафика.

Сервер Teredo участвует только в начальной настройке соединения. Как только соединение установлено, трафик между клиентом Teredo и собственным узлом IPv6 проходит через ретранслятор, и сервер Teredo не видит какой-либо трафик.

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

Поскольку клиент и ретранслятор по-прежнему обмениваются данными с использованием стандартного Teredo и поскольку клиент по-прежнему имеет IPv6-адрес в префиксе 2001::/32 , он по-прежнему считается Teredo.

Нужны изменения

12 бит в адресе Teredo выбираются случайным образом клиентом Teredo. На стороне клиента требуется модификация, чтобы они не были случайными.

48 битов в адресе Teredo - это адрес IPv4 и номер порта UDP клиента Teredo, видимый сервером Teredo.

Здесь очень важно, чтобы эти 48 бит были адресом порта, видимым сервером. Из-за NAT клиент и ретранслятор могут думать, что порт UDP имеет совершенно другой адрес. Но то, что видит IPv4-адрес и номер порта клиент и ретранслятор, не влияет на конечный IPv6-адрес.

Обычно единственный задействованный NAT расположен рядом с клиентом Teredo. Но если вы хотите повлиять на конечный IPv6-адрес, NAT может быть установлен на той же машине, что и сервер Teredo. Можно даже встроить NAT непосредственно в сервер Teredo, если вы склонны к этому.

Существует ли какая-либо реализация этого?

Возможно нет.

Ранее я реализовал большую часть сервера Teredo, делая это. Но клиент может выбрать только адрес IPv4, а не номер порта UDP. Мне нужен был номер порта UDP, чтобы различать клиентов.

Серверу Teredo с поддержкой сохранения статичности IPv4-адреса и UDP-порта для конкретного пользователя потребуется определенный способ распознавания пользователя. В протоколе есть поля, которые потенциально могут быть использованы для этого. Но я не знаю ни одной реализации с поддержкой идентификации клиентов Teredo по отношению к серверам Teredo.

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

Проблема с Тередо

Проблема в том, как собственный узел IPv6 выбирает, какой ретранслятор Teredo использовать. В идеале администратор сети, в которой расположен собственный узел IPv6, должен настроить ретранслятор Teredo для этой сети (и найти его вне NAT, если NAT используется для IPv4).

Но многие администраторы предпочитают не развертывать реле Teredo. Обычно полагая, что, поскольку Teredo настолько ненадежен, им не нужно его поддерживать (никогда не понимая, что это рассуждение делает Teredo ненадежным самоисполняющимся пророчеством).

Вместо этого происходит то, что трафик от нативного узла IPv6 будет отправляться по маршруту по умолчанию вышестоящему провайдеру, который, в свою очередь, может отправлять его своему вышестоящему провайдеру, и в конечном итоге трафик может оказаться на общедоступном стороннем ретрансляторе в AS, который имеет решил объявить 2001::/32 .

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

В большинстве случаев, когда требуется статический IP-адрес, также требуется некоторая надежность. И поскольку вы редко контролируете все удаленные узлы, с которыми вы будете связываться, вы также не можете контролировать, какие реле Teredo будут использоваться.

Это делает Teredo со статическим IP-адресом нишевым продуктом для тех немногих, кто желает установить модифицированный клиент Teredo, чтобы получить статический IP-адрес без каких-либо гарантий надежности.

0

Вам может быть лучше с туннелем 6in4 . При этом используется протокол 41, не требующий дополнительных правил NAT. Есть брокеры, которые предоставляют бесплатные туннели. Пока вы единственный в своей сети, который использует IP-адрес туннельного брокера, проблем не должно быть.

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

Сделайте брандмауэр своим подключением, так как у вас не будет NAT, защищающего вас от нежелательного трафика.

Поддержка как 6in4 и 6to4 встроена в Linux. Первоначально я начал с 6to4, который работал, но не был так стабилен, как мне хотелось. С 6in4 у меня была стабильная связь. Я использую его для NTP-соединения и получаю стабильные источники времени по IPv6.

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