Все, что я хочу добиться, - это установить соединение с моим простым сервером (написанным на C # с использованием класса TcpListener, если это имеет значение) на моем компьютере, который находится за NAT. У него есть IPv6-адрес (публичный IP, начиная с 2001: 0) на интерфейсе Teredo. Однако я даже не могу пинговать его из-за пределов моей сети, например, я пытаюсь пинговать этот адрес с этого сайта. http://mebsd.com/ipv6-ping-and-traceroute, результат - 100% потеря пакетов. Как я понял из чтения про Teredo, в какой-то пробросе портов нет необходимости? Так в чем же может быть проблема?
Хорошо, теперь я в замешательстве. Итак, каковы вообще цели NAT Traversal и интерфейса Teredo? Я подумал, что могу использовать Teredo, например, для установления соединения Tcp между двумя компьютерами за NAT, БЕЗ перенаправления портов.
Википедия говорит:
"[..] Teredo решает эту проблему, инкапсулируя пакеты IPv6 в дейтаграммы UDP / IPv4, которые большинство NAT могут пересылать должным образом. Таким образом, хосты, поддерживающие IPv6, за NAT могут использоваться в качестве конечных точек туннеля Teredo, даже если у них нет выделенного общедоступный IPv4-адрес. Фактически, хост, реализующий Teredo, может получить возможность подключения по IPv6 без взаимодействия с локальной сетевой средой ".
@Serge из вашего ответа. Я прихожу к выводу, что без перенаправления портов обойтись невозможно, так как же работают одноранговые приложения? Например, BitTorrent-клиенты? Хороший вопрос для меня (и не только для меня), нужны пояснения;)
P.S. Вот статья, которую я прочитал о NAT Traversal и Teredo в .NET: http://blogs.msdn.com/b/ncl/archive/2009/07/27/end-to-end-connectivity-with-nat-traversal-.aspx
Ваш traceroute показывает, что ваш трафик был сброшен в сети Hurricane Electric. Скорее всего, они использовали реле Teredo, к которому был подключен ваш компьютер.
Тот факт, что пакеты не могут проходить дальше, предполагает нарушение связи между вашим ПК и ретранслятором Teredo. И наиболее вероятная причина который заключается в том, что ваше устройство NAT разорвало состояние подключения для UDP-трафика Teredo из-за тайм-аута бездействия. В этом случае соединение не восстановится до тех пор, пока ваш компьютер не отправит дополнительный трафик через туннель, в результате чего устройство NAT снова не начнет отслеживать соединение.
Это одна из причин, по которой Teredo крайне ненадежен на практике, несмотря на его теоретическое обещание пробивать устройства NAT. Если в этом сценарии вам нужен более надежный туннель, попробуйте использовать SixXS который имеет собственный протокол туннелирования, который проходит через NAT и остается подключенным (иногда отправляя трафик, даже когда соединение простаивает). Вы также можете использовать прямой туннель прото-41, например, из Ураган Электрик, но в этом случае вам придется вручную вмешаться, если ваш IPv4-адрес изменится.