테레도 터널링

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

테레도 터널링은 IPv4 주소 부족 문제를 해결하기 위해 개발된 IPv6 전환 기술로, NAT 장치 뒤에 있는 호스트에게 IPv6 연결을 제공한다. UDP/IPv4 데이터그램 내에 IPv6 패킷을 캡슐화하여 NAT 환경에서도 작동하며, 테레도 클라이언트, 서버, 릴레이, 호스트별 릴레이 등 여러 노드 유형을 정의한다. 테레도 클라이언트는 공인 IPv6 주소를 할당받으며, 테레도 서버는 초기 구성을 돕고, 릴레이는 IPv6 트래픽을 중계한다. 하지만 모든 NAT 장치를 지원하지 않으며, 보안 취약점과 DoS 공격의 가능성이 존재한다. 6to4, 점대점 터널과 같은 대안이 있으며, 윈도우 운영체제에서 기본적으로 비활성화되어 있다.

테레도 터널링
일반 정보

이미지 준비중입니다.

IPv4와 IPv6 네트워크 간의 Teredo 터널링 작동 방식
약칭Teredo
종류IPv6 전환 기술
IETF 표준RFC 4380
설계자크리스티안 우이테마
포트UDP 3544
기술 정보
목적IPv4 네트워크를 통해 IPv6 연결 제공
작동 방식IPv4 네트워크를 통해 IPv6 패킷을 캡슐화하여 전송
NAT 장비 뒤에 있는 호스트가 IPv6 인터넷에 접근 가능하도록 함
장점IPv4 인프라를 활용하여 IPv6 연결을 확장
특별한 하드웨어나 소프트웨어 업그레이드 없이 사용 가능
단점IPv4 네트워크 성능에 의존적
보안 문제 발생 가능성 존재
활용
적용 분야IPv6로의 점진적인 전환 지원
IPv4 네트워크에서 IPv6 애플리케이션 사용 가능
운영체제 지원마이크로소프트 윈도우
기타 여러 운영체제에서 지원
참고 사항
관련 기술6to4
ISATAP
IPv6 전환 기술
상태사실상 사용 중단됨.
📚 더 읽어볼만한 페이지
  • IPv6 전환 기술 - 6to4
    6to4는 IPv4 네트워크를 통해 IPv6 트래픽을 전송하기 위한 전환 기술로, IPv4 주소 기반 IPv6 주소 할당, 캡슐화, 라우팅을 수행하며, 2002::/16 IPv6 주소 접두사를 사용하고 6to4 릴레이 라우터를 통해 네이티브 IPv6 네트워크와 통신한다.
  • 터널링 프로토콜 - IPsec
    IPsec은 IP 네트워크에서 보안 통신을 제공하기 위한 프로토콜 스위트로서, 전송 모드와 터널 모드를 지원하며, AH, ESP 등의 프로토콜을 사용하여 데이터 무결성, 인증, 기밀성을 제공하고, IKE 프로토콜을 통해 보안 연결을 설정 및 키를 교환하는 개방형 표준이다.
  • 터널링 프로토콜 - PPPoE
    PPPoE는 이더넷을 통해 PPP 연결을 설정하는 네트워크 프로토콜로, DSL과 같은 광대역 환경에서 클라이언트-서버 모델로 동작하며, 사용자의 컴퓨터를 ISP에 연결하는 데 사용되고, 디스커버리 및 PPP 세션 단계를 거쳐 연결을 설정하며 전 세계에서 널리 쓰인다.
  • 인터넷 구조 - 네트워크 접속 지점
    네트워크 접속 지점(NAP)은 미국에서 ISP를 연결하기 위한 인터넷 연결점 중 하나이며, 미국 과학재단이 지원하여 설립되었고, 현재는 공용 교환 설비를 제공하지만 인터넷 트래픽의 대부분은 NAP를 거치지 않고 처리된다.
  • 인터넷 구조 - 사물인터넷

2. 목적

6to4와 같은 일반적인 IPv6 over IPv4 터널링 프로토콜은 터널 종단점에 공인 IPv4 주소가 필요하다. 그러나 현재 많은 호스트들이 IPv4 주소 부족 문제 때문에 하나 이상의 NAT 장치를 통해 IPv4 인터넷에 연결된다. 이 경우, 유일한 공인 IPv4 주소는 NAT 장치에 할당되며, 6to4 터널 종단점은 NAT 장치 자체에 구현되어야 한다. 하지만 현재 배포된 많은 NAT 장치들은 기술적, 경제적 이유로 6to4를 구현하도록 업그레이드하기 어렵다.

테레도는 이러한 문제를 해결하기 위해 IPv6 패킷을 UDP/IPv4 데이터그램 안에 캡슐화한다. 대부분의 NAT는 UDP/IPv4 데이터그램을 제대로 처리할 수 있기 때문에, NAT 뒤에 있는 IPv6 지원 호스트는 전용 공인 IPv4 주소가 없어도 테레도 터널 종단점 역할을 할 수 있다. 즉, 테레도를 구현하는 호스트는 로컬 네트워크 환경의 도움 없이 IPv6 연결을 확보할 수 있다.

장기적으로는 모든 IPv6 호스트가 자체적인 IPv6 연결을 사용해야 한다. 따라서 테레도 프로토콜은 임시적인 성격을 가지며, IPv6가 발전하고 안정적인 연결 메커니즘이 보편화되면 테레도 연결 사용을 중단하는 절차를 포함하고 있다. IETF89에 따르면, 마이크로소프트는 2014년 상반기에 윈도우 클라이언트에 대한 테레도 서버를 비활성화하고, 공개적으로 운영되는 테레도 릴레이의 비활성화를 권장할 계획이었다.

3. 작동 방식

테레도는 6to4의 문제점을 완화한 기술이다. 6to4는 터널 종단점에 공인 IPv4 주소가 필요하지만, 많은 호스트가 NAT 장치를 통해 IPv4 인터넷에 연결되어 있어 공인 IPv4 주소를 할당받지 못하는 경우가 많다. 테레도는 IPv6 패킷을 UDP/IPv4 데이터그램 안에 캡슐화하여 이 문제를 해결한다. 이를 통해 NAT 뒤에 있는 IPv6 지원 호스트도 전용 공인 IPv4 주소 없이 테레도 터널 종단점 역할을 할 수 있다.

테레도 프로토콜의 주요 기능은 다음과 같다.

# UDP over IPv4 (UDPv4) 연결을 진단하고, STUN 프로토콜을 간소화한 대체 방식을 사용하여 현재 NAT 유형을 감지한다.
# 각 호스트에 전역적으로 라우팅 가능한 고유한 IPv6 주소를 할당한다.
# IPv6 패킷을 UDPv4 데이터그램 안에 캡슐화하여 IPv4 네트워크를 통해 전송한다. (NAT 트래버설 포함)
# 테레도 호스트와 네이티브 IPv6 호스트 간의 트래픽을 라우팅한다.

3.1. 노드 유형

테레도는 여러 종류의 노드를 정의한다.

* 테레도 클라이언트: NAT 뒤에서 IPv4 인터넷에 연결되어 있으며, 테레도를 사용하여 IPv6 인터넷에 접속하는 호스트이다. 테레도 클라이언트는 테레도 접두사(2001::/32)로 시작하는 IPv6 주소를 할당받는다.

* 테레도 서버: 테레도 터널의 초기 구성을 돕는 잘 알려진 호스트이다. 테레도 서버는 클라이언트를 위해 트래픽을 전달하지 않으며(IPv6 핑 제외), 따라서 적은 대역폭 요구 사항(최대 초당 몇 백 비트)을 가진다. 이는 단일 서버가 많은 클라이언트를 지원할 수 있음을 의미한다. 또한 테레도 서버는 완전한 무상태 방식으로 구현될 수 있으므로, 지원하는 클라이언트 수에 관계없이 동일한 양의 메모리를 사용한다.

* 테레도 릴레이: 테레도 터널의 원격 종단이다. 테레도 릴레이는 직접적인 테레도 클라이언트 간의 교환을 제외하고, 테레도 클라이언트를 대신하여 모든 데이터를 전달해야 한다. 따라서 릴레이는 많은 대역폭을 필요로 하며, 제한된 수의 동시 클라이언트만 지원할 수 있다. 각 테레도 릴레이는 IPv6 호스트 범위를 제공한다(예: 단일 캠퍼스 또는 회사, ISP 또는 전체 통신 사업자 네트워크, 또는 전체 IPv6 인터넷). 테레도 클라이언트와 해당 범위 내의 모든 호스트 간에 트래픽을 전달한다.

* 테레도 호스트별 릴레이: 서비스 범위가 실행 중인 호스트로 제한된 테레도 릴레이이다. 따라서 특별한 대역폭이나 라우팅 요구 사항이 없다. 호스트별 릴레이가 있는 컴퓨터는 테레도를 사용하여 테레도 클라이언트와 통신하지만, 나머지 IPv6 인터넷에 연결하기 위해 주 IPv6 연결 제공자를 고수한다.

3.2. IPv6 주소 할당

각 테레도(Teredo) 클라이언트는 다음과 같이 구성된 공인 IPv6 주소를 할당받는다.

👆
좌우로 밀어서 보기
테레도 IPv6 주소 지정 테이블
| 0 - 31 || 32 - 63 || 64 - 79 || 80 - 95 || 96 - 127
길이32비트32비트16비트16비트32비트
설명접두사 (2001::/32)테레도 서버 IPv4 주소플래그난독화된 UDP 포트난독화된 클라이언트 공인 IPv4 주소


* 비트 0~31: 테레도 접두사(2001::/32)를 저장한다.
* 비트 32~63: 사용되는 테레도 서버의 기본 IPv4 주소를 포함한다.
* 비트 64~79: 플래그 및 기타 비트를 저장한다. 이 16비트의 형식은 MSB(Most Significant Bit) 우선 "CRAAAAUG AAAAAAAA"이다.
* "C" 비트: 테레도 클라이언트가 콘 NAT 뒤에 위치한 경우 1, 그렇지 않으면 0으로 설정되지만, RFC 5991은 외부인에게 이 사실을 드러내지 않기 위해 항상 0으로 변경했다.
* "R" 비트: 현재 할당되지 않았으며 0으로 전송해야 한다.
* "U" 및 "G" 비트: MAC 주소의 "Universal/local" 및 "Group/individual" 비트를 에뮬레이션하기 위해 0으로 설정된다.
* 12개의 "A" 비트: 원래 RFC 4380 사양에서는 0이었지만, RFC 5991에서 테레도 노드에 IPv6 기반 스캔 공격에 대한 추가적인 보호를 제공하기 위해 테레도 클라이언트가 선택한 임의의 비트로 변경되었다.
* 비트 80~95: 난독화된 UDP 포트 번호를 포함한다. 이 번호는 NAT가 테레도 클라이언트에 매핑하는 포트 번호이며, 모든 비트가 반전된다.
* 비트 96~127: 난독화된 IPv4 주소를 포함한다. 이것은 모든 비트가 반전된 NAT의 공인 IPv4 주소이다.

예를 들어, IPv6 주소 2001:0000:4136:e378:8000:63bf:3fff:fdd2는 다음 테레도 클라이언트를 나타낸다.

👆
좌우로 밀어서 보기
테레도 IPv6 예시 테이블
| 0 - 31 || 32 - 63 || 64 - 79 || 80 - 95 || 96 - 127
길이32비트32비트16비트16비트32비트
설명접두사테레도
서버 IPv4
플래그난독화된
UDP 포트
난독화된 클라이언트
공인 IPv4
부분2001:00004136:e378800063bf3fff:fdd2
디코딩65.54.227.120콘 NAT40000192.0.2.45


* 주소 65.54.227.120(16진수 4136e378)에서 테레도 서버를 사용한다.
* 콘 NAT 뒤에 있으며 클라이언트는 RFC 5991을 완전히 준수하지 않는다(비트 64가 설정됨).
* RFC 5991을 준수하지 않을 가능성이 높다(12개의 임의 비트가 모두 0이며, 이는 0.025% 미만의 확률로 발생함).
* NAT에서 UDP 매핑 포트 40000을 사용한다(16진수 not 63bf는 9c40과 같으며, 이는 십진수 40000임).
* NAT 공인 IPv4 주소가 192.0.2.45이다(3ffffdd2가 아닌 c000022d는 192.0.2.45를 의미함).

3.3. 서버

테레도 서버는 테레도 클라이언트가 자신이 어떤 종류의 NAT 뒤에 있는지 자동으로 감지하도록 돕는다. 이를 위해 STUN과 유사한 "자격 절차"를 사용한다. 테레도 클라이언트는 정기적으로 UDP 패킷을 서버에 전송하여 NAT와의 연결을 유지한다. 이를 통해 서버는 항상 클라이언트에 접속할 수 있으며, NAT 펀칭이 제대로 작동하도록 돕는다.

테레도 릴레이나 다른 테레도 클라이언트가 테레도 클라이언트에게 IPv6 패킷을 보내야 할 때, 먼저 클라이언트의 테레도 서버로 테레도 버블 패킷을 보낸다. 서버는 이 버블을 클라이언트로 전달하여 클라이언트가 테레도 릴레이를 향해 홀 펀칭을 수행해야 함을 알린다.

테레도 서버는 테레도 클라이언트에서 IPv6 인터넷으로 ICMPv6 패킷을 전송할 수도 있다. 클라이언트가 네이티브 IPv6 노드에 연결하려는 경우, 캡슐화된 IPv6 패킷을 보낼 공용 IPv4 및 UDP 포트 번호를 찾아야 한다. 이를 위해 클라이언트는 ICMPv6 에코 요청(ping)을 생성하여 테레도 서버를 통해 보내고, 서버는 ping을 IPv6 인터넷으로 디캡슐화하여 IPv6 노드에 도달하게 한다. IPv6 노드는 ICMPv6 에코 응답으로 응답하고, 이 응답 패킷은 가장 가까운 테레도 릴레이를 통해 테레도 클라이언트에게 연결을 시도한다.

테레도 서버를 유지하는 데는 대역폭이 거의 필요하지 않으며, 인터넷 라우팅 프로토콜에 대한 접근도 필요하지 않다. 테레도 서버에 필요한 유일한 요구 사항은 다음과 같다.

* 테레도 접두사에 속하는 소스 주소로 ICMPv6 패킷을 내보낼 수 있는 기능
* 두 개의 서로 다른 공용 IPv4 주소 (Microsoft Windows 클라이언트는 두 주소가 연속적일 것으로 예상)

공용 테레도 서버로는 teredo.trex.fi (핀란드)가 있으며, 이전에는 teredo.remlab.net / teredo-debian.remlab.net (독일)이 있었으나 현재는 teredo.trex.fi로 리디렉션된다.

3.4. 릴레이

테레도 릴레이는 테레도 클라이언트와 네이티브 IPv6 호스트 간의 트래픽을 중계한다. IPv6 네트워크에 테레도 IPv6 접두사(2001::/32)를 알린다.

테레도 릴레이는 많은 네트워크 대역폭을 필요로 할 수 있다. 다른 IPv6 호스트에게 테레도 IPv6 접두사(2001::/32)로 가는 경로를 알려야 한다. 이를 통해 테레도 릴레이는 테레도 클라이언트를 대상으로 하는 IPv6 호스트로부터 트래픽을 수신하여 UDP/IPv4를 통해 전달하고, 반대로 UDP/IPv4를 통해 네이티브 IPv6 호스트를 대상으로 하는 테레도 클라이언트로부터 패킷을 수신하여 네이티브 IPv6 네트워크에 주입한다.

네트워크 관리자는 회사나 캠퍼스를 위해 사설 테레도 릴레이를 설정하여 해당 IPv6 네트워크와 모든 테레도 클라이언트 간의 짧은 경로를 제공할 수 있다. 그러나 단일 네트워크 규모를 넘어선 테레도 릴레이를 설정하려면 다른 자율 시스템(AS)에 BGP IPv6 경로를 내보낼 수 있는 능력이 필요하다.

6to4와 달리, 네이티브 IPv6 호스트와 테레도 클라이언트 간의 트래픽은 동일한 테레도 릴레이, 즉 네이티브 IPv6 호스트 네트워크에 가장 가까운 릴레이를 사용한다. 테레도 클라이언트는 스스로 릴레이를 찾을 수 없으므로, 네이티브 IPv6 호스트로의 연결을 시작해야 하는 경우 먼저 테레도 서버를 통해 첫 번째 패킷을 보낸다. 테레도 서버는 클라이언트의 테레도 IPv6 주소를 사용하여 네이티브 IPv6 호스트로 패킷을 보내고, 네이티브 IPv6 호스트는 클라이언트의 테레도 IPv6 주소에 응답하여 패킷이 테레도 릴레이를 찾아 연결을 시작한다.( NAT 관통을 위해 테레도 서버를 사용할 수 있음). 이후 테레도 클라이언트와 네이티브 IPv6 호스트는 필요한 만큼 릴레이를 사용하여 통신한다. 이러한 설계는 테레도 서버나 클라이언트 모두 테레도 릴레이의 IPv4 주소를 알 필요가 없음을 의미한다. 모든 테레도 릴레이가 네트워크 2001::/32를 광고하므로, 전역 IPv6 라우팅 테이블을 통해 적절한 릴레이를 자동으로 찾는다.

2006년 3월 30일, 이탈리아 ISP인 ITGate는 IPv6 인터넷에서 2001::/32로 가는 경로를 광고하기 시작한 최초의 AS였으나, 2007년 2월 16일 현재 더 이상 작동하지 않는다.

2009년 1분기, IPv6 백본 Hurricane Electric은 애니캐스트 구현에서 14개의 테레도 릴레이를 활성화하고 2001::/32를 전역적으로 광고했다. 릴레이는 다음 위치에 있었다.

👆
좌우로 밀어서 보기


대규모 네트워크 운영자가 테레도 릴레이를 유지할 것으로 예상된다. 6to4와 마찬가지로, 인터넷 호스트의 상당 부분이 IPv4 외에 테레도를 통해 IPv6를 사용하기 시작하면 테레도 서비스가 얼마나 잘 확장될지 불분명하다. 마이크로소프트는 Windows XP에서 처음 테레도 유사 터널을 릴리스한 이후 일련의 테레도 서버를 운영해 왔지만, IPv6 인터넷 전체를 위한 테레도 릴레이를 제공한 적은 없다.

4. 한계

테레도는 모든 NAT 장치와 호환되는 것은 아니다. RFC 3489에 따르면, 풀 콘, 제한형 및 포트 제한형 NAT는 지원하지만, 대칭 NAT는 지원하지 않는다. 원래 대칭 NAT도 지원할 예정이었지만, 보안 문제로 인해 제거되었다.

대만의 국립교통대학 연구자들은 나중에 SymTeredo를 제안했는데, 이는 대칭 NAT를 지원하도록 원래 테레도 프로토콜을 향상시킨 것이다. 마이크로소프트 및 Miredo 구현은 대칭 NAT에 대한 지원을 개선하기 위해 명시되지 않은 비표준 확장을 구현한다. 그러나 대칭 NAT 뒤에 있는 테레도 클라이언트와 포트 제한형 또는 대칭 NAT 뒤에 있는 테레도 클라이언트 간의 연결은 여전히 불가능해 보인다.

테레도는 두 클라이언트가 캡슐화된 IPv6 패킷을 교환할 때 사용되는 매핑/외부 UDP 포트 번호가 테레도 서버에 연결하는 데 사용된 것과 동일하다고 가정한다. 이 가정이 없으면 두 클라이언트 간의 직접적인 통신을 설정할 수 없으며, 삼각 라우팅을 수행하기 위해 비용이 많이 드는 릴레이를 사용해야 한다. 테레도 구현은 시작 시 NAT 유형을 감지하려고 시도하며, NAT가 대칭인 것으로 보이면 작동을 거부한다. (이 제한은 장치에 대한 관리자 권한이 필요한 NAT 상자에서 포트 전달 규칙을 수동으로 구성하여 때때로 해결할 수 있다.)

테레도는 터널 종단점당 단일 IPv6 주소만 제공할 수 있다. 따라서 6to4 및 일부 지점 간 IPv6 터널과 달리 단일 테레도 터널을 사용하여 여러 호스트를 연결하는 것은 불가능하다. IPv6 인터넷을 향한 모든 테레도 클라이언트에 사용 가능한 대역폭은 테레도 릴레이의 가용성에 의해 제한되며, 이는 6to4 릴레이와 다르지 않다.

5. 대안

6to4는 공용 IPv4 주소를 필요로 하지만, 각 터널 종단점에 대해 48비트의 큰 IPv6 접두사를 제공하고, 캡슐화 오버헤드가 더 낮다. 점대점 터널은 Teredo보다 더 안정적이고, 책임성이 더 높으며, 일반적으로 터널 종단점의 IPv4 주소에 의존하지 않는 영구적인 IPv6 주소를 제공한다. 일부 점대점 터널 브로커는 NAT 통과를 위해 UDP 캡슐화를 지원하기도 한다(예: AYIYA 프로토콜). 반면에 점대점 터널은 일반적으로 등록이 필요하다. AICCU 같은 자동화된 도구를 사용하면 점대점 터널을 쉽게 사용할 수 있다.

6. 보안 고려 사항

마이크로소프트 윈도우는 윈도우 10 버전 1803 이상부터 테레도를 기본적으로 비활성화한다. 필요하다면 CLI 명령 또는 그룹 정책을 통해 활성화할 수 있다.

테레도는 NAT 뒤의 네트워크 호스트에 라우팅 가능한 IPv6 주소를 부여하여 공격 표면을 증가시킬 수 있다. IPv6를 사용할 수 있고 외부에 포트를 열어두는 애플리케이션을 노출시키기 때문이다. 테레도 터널의 캡슐화로 인해 패킷 검사에서 IPv6 데이터 트래픽이 가려져 IPv6 멀웨어 및 IPv4 멀웨어의 확산 가능성이 발생한다. 미국 컴퓨터 비상 대응 팀(US CERT)은 IPv6 터널링을 이용하는 멀웨어의 위험에 대한 보고서를 공개했다.

마이크로소프트 IPv6 스택에는 "보호 수준" 소켓 옵션이 있다. 이를 통해 애플리케이션이 트래픽을 허용할 위치를 지정할 수 있다.

최신 버전의 윈도우에서는 테레도를 포함한 IPv6 전이 기술이 기본적으로 활성화되어 있다. 이를 비활성화하려면 명령 프롬프트 및 레지스트리 편집을 이용하거나, IPv6가 구현되지 않은 경우 조직 내 네트워크의 그룹 정책을 통해 비활성화할 수 있다.

6.1. 노출

테레도는 NAT 장치 뒤에 있는 네트워크 호스트에 전역적으로 라우팅 가능한 IPv6 주소를 할당하여 공격 표면을 증가시킨다. 이는 인터넷에서 연결할 수 없는 호스트를 연결 가능하게 만들어, 열린 포트가 있는 모든 IPv6 지원 애플리케이션을 잠재적으로 외부에 노출시킨다. 테레도 터널 캡슐화는 IPv6 데이터 트래픽의 내용을 패킷 검사 소프트웨어에서 보이지 않게 하여 멀웨어 확산을 용이하게 한다. IPv6 멀웨어 및 IPv4 멀웨어의 확산 가능성이 발생한다. 미국 컴퓨터 비상 대응 팀(US CERT)은 IPv6 터널링을 이용하는 멀웨어의 위험에 대한 보고서를 공개했다. 또한, 테레도에 원격으로 악용 가능한 취약점이 있을 경우 IPv6 스택과 터널링 소프트웨어가 공격에 노출될 수 있다.

공격 표면을 줄이기 위해, 마이크로소프트 IPv6 스택은 "보호 수준" 소켓 옵션을 가지고 있다. 이를 통해 애플리케이션은 테레도 터널에서, 테레도를 제외한 모든 곳(기본값)에서 또는 로컬 인트라넷에서 IPv6 트래픽을 수락할지 여부를 지정할 수 있다.

테레도 프로토콜은 데이터 패킷에 터널의 엔드포인트에 대한 자세한 정보를 캡슐화한다. 이 정보는 잠재적 공격자에게 도움을 줄 수 있다.

6.2. 방화벽, 필터링 및 차단

테레도 터널이 제대로 작동하려면 UDP 포트 3544로의 발신 및 수신 트래픽이 허용되어야 한다. 이는 NAT 및 상태 저장 방화벽의 일반적인 설정이다. 발신 IPv4 UDP 트래픽이 차단되면 테레도 터널링 소프트웨어는 치명적인 오류를 보고하고 중지된다.

테레도는 인터넷에서 일반적으로 도달할 수 없는 NAT 뒤의 네트워크 호스트에 라우팅 가능한 IPv6 주소를 부여하므로, IPv6를 사용할 수 있고 외부에 포트를 열어두는 애플리케이션을 노출시켜 공격 표면을 증가시킨다. 테레도 터널의 캡슐화로 인해 패킷 검사에서 IPv6 데이터 트래픽이 가려져 IPv6 멀웨어 및 경우에 따라 IPv4 멀웨어의 확산 가능성이 발생한다. 미국 컴퓨터 비상 대응 팀(US CERT)은 IPv6 터널링을 이용하는 멀웨어의 위험에 대한 보고서를 공개했다. 또한, 테레도에 부정한 원격 이용 가능한 취약점이 있다면, IPv6 스택과 터널링 소프트웨어가 공격자에게 노출될 수 있다.

마이크로소프트 IPv6 스택에는 "보호 수준" 소켓 옵션이 있다. 이를 통해 애플리케이션은 테레도 터널, 테레도 터널 이외의 위치 (기본값), 또는 로컬 인트라넷에서만 트래픽을 허용할 수 있다.

테레도 프로토콜은 또한 터널의 엔드포인트에 관한 상세한 정보를 데이터 패킷에 캡슐화한다.

6.3. DoS 공격

2010년, 테레도 터널을 사용하는 라우팅 루프를 통해 서비스 거부(DoS) 공격을 생성하는 새로운 방법이 밝혀졌으며, 이는 비교적 쉽게 방지할 수 있다.

7. 구현

* 윈도우 XP SP2 (서비스 팩 1용 Advanced Networking Pack)에는 클라이언트와 호스트 특정 중계기가 구현되어 있다.
* 윈도우 서버 2003용 중계기 및 서버는 마이크로소프트 베타 프로그램을 통해 제공되었다.
* 윈도우 비스타윈도우 7에는 테레도에 대한 내장 지원이 포함되어 있으며, 대칭 NAT 트래버설을 위한 지정되지 않은 확장이 포함되어 있다. 그러나 링크 로컬 및 테레도 주소만 있는 경우, 이러한 운영 체제는 DNS A 레코드가 있으면 IPv6 DNS AAAA 레코드를 해결하지 않고 IPv4를 사용한다. 따라서 일반적으로 리터럴 IPv6 URL만 테레도를 사용한다. 이 동작은 윈도우 레지스트리에서 수정할 수 있다.
* 윈도우 10 버전 1803 이상에서는 테레도가 기본적으로 비활성화되어 있다. 필요한 경우 CLI 명령 또는 그룹 정책을 통해 이 전환 기술을 활성화할 수 있다.
* Miredo는 리눅스, *BSD, 및 Mac OS X용 클라이언트, 중계기 및 서버이다.
* ng_teredo는 FreeBSD용 netgraph 기반 중계기 및 서버로, LIP6(Laboratoire d'Informatique de Paris 6) 대학교 및 6WIND에서 개발하였다.
* NICI-Teredo는 리눅스 커널용 중계기 및 사용자 영역 테레도 서버로, 국립교통대학에서 개발하였다.

8. 이름의 유래

테레도 터널링 프로토콜의 초기 별칭은 '선충(Shipworm)'이었다. 이 프로토콜이 마치 선충(배좀벌레, 나무를 뚫는 바다 조개)이 나무를 뚫는 것처럼 NAT 장치를 뚫고 지나간다는 의미였다. 선충은 많은 나무 선체의 손실에 책임이 있는 생물이다. 크리스티앙 위테마는 초안에서 선충에 대해 "비교적 깨끗하고 오염되지 않은 물에서만 생존하며, 최근 북아메리카 여러 항구에서 다시 나타난 것은 그들이 새롭게 회복된 청결함에 대한 증거이다. 마찬가지로 선충 서비스는 인터넷의 새롭게 회복된 투명성에 기여해야 한다."라고 언급했다.

컴퓨터 웜과의 혼동을 피하기 위해, 위테마는 나중에 프로토콜의 이름을 '선충(Shipworm)'에서 선충의 명인 테레도로 변경했다.