내 컴퓨터 중 하나가 IPv4 전용 ISP에 있으므로 IPv6 주소를 갖기 위해 miredo를 사용하고 있습니다. 이제 IPv6를 사용하여 원격으로 이 컴퓨터에 액세스해야 합니다. (여기서는 IPv4가 NAT I 뒤에 있고 새 포트 전달을 추가할 수 없기 때문에 사용할 수 없습니다.) 문제는 IP 주소의 일부가 컴퓨터가 바뀔 때마다 무작위로 변경되기 때문에 AAAA DNS 레코드를 추가할 수 없다는 것입니다. 네트워크에 연결됩니다.
그래서 내 질문은: Teredo에서 항상 동일한 IP 주소를 사용할 수 있는 방법이 있습니까?
답변1
Teredo IP 주소는 다음과 같은 몇 가지 사항에 따라 달라집니다.위키피디아.
우선, 라우터의 IPv4 주소에 따라 다릅니다. 변경이 가능하다면 문제가 있는 것입니다.
둘째, Teredo에서 사용하는 소스 포트에 따라 달라지며 NAT 장치에서 변환 및 변경될 수 있습니다. NAT 장치가 내부 애플리케이션에서 사용하는 소스 포트를 유지하는 경우5월이것을 변하지 않게 할 수 있습니다. Windows를 사용하는 경우 Teredo의 "클라이언트 포트" 옵션이 유용할 수 있습니다.이 테크넷 문서를 참조하세요.
짧은 대답: 당신5월대부분의 경우 동일하게 만들 수 있지만 마일리지는 상당히 다를 수 있습니다. NAT 장치가 소스 포트를 망칠 수 있기 때문에 신뢰성을 확보하지 못할 가능성이 높습니다. 방화벽에서 포트 전달을 설정하여 이를 중지할 수 있지만... 이미 그렇게 할 수는 없습니다... 그래서...
더 나은 옵션은 teredo 인터페이스의 IPv6 주소를 게시할 클라이언트를 찾을 수 있다고 가정하고 동적 DNS 클라이언트를 설정하는 것입니다.
답변2
분명히 그 이후로RFC 5991, IPv6 주소의 일부 부분은 예측할 수 없도록 항상 무작위입니다.
그래서 저에게 가장 쉬운 해결책은 dynv6.com과 같이 IPv6를 지원하는 동적 DNS 서비스를 사용하는 것이었습니다.
답변3
예, Teredo 프로토콜을 사용하면 가능합니다. 그러나 Teredo 클라이언트와 Teredo 서버 모두에서 수정된 코드가 필요합니다.
클라이언트와 서버가 모두 수정된 후에도 여전히 동일한 프로토콜로 간주될 수 있는 이유를 설명하기 위해 먼저 통신에 관련된 다른 구성 요소가 무엇인지 설명해야 합니다.
Teredo 기본 사항
Teredo 프로토콜을 사용하는 통신에서 네 가지 중요한 네트워크 노드는 다음과 같습니다.
- Teredo 클라이언트
- Teredo 서버(클라이언트가 선택)
- Teredo 릴레이(기본 IPv6 노드에서 선택)
- 기본 IPv6 노드
궁극적으로 IPv6 패킷을 교환하려는 것은 Teredo 클라이언트와 기본 IPv6 노드입니다. Teredo 서버와 Teredo 릴레이는 해당 트래픽을 용이하게 하기 위해 존재합니다.
Teredo 서버는 초기 연결 설정에만 관여합니다. 연결이 설정되면 Teredo 클라이언트와 기본 IPv6 노드 간의 트래픽은 Teredo 서버에 트래픽이 표시되지 않고 릴레이를 통과합니다.
클라이언트는 Teredo 릴레이 선택에 영향을 미치지 않으므로 릴레이 변경이 필요한 솔루션은 작동하지 않습니다. 다행히도 그럴 필요는 없습니다. 대량의 트래픽이 전송되는 클라이언트와 릴레이 간의 연결은 여전히 완전한 표준 Teredo 트래픽입니다.
클라이언트와 릴레이는 여전히 표준 Teredo를 사용하여 통신하고 클라이언트의 접두사에 여전히 IPv6 주소가 있으므로 2001::/32
이는 여전히 Teredo에 해당합니다.
변경이 필요함
Teredo 주소의 비트 중 12개는 Teredo 클라이언트에 의해 무작위로 선택됩니다. 무작위가 아니도록 하려면 클라이언트 측에서 수정이 필요합니다.
Teredo 주소의 비트 중 48개는 Teredo 서버에 표시되는 Teredo 클라이언트의 IPv4 주소 및 UDP 포트 번호입니다.
여기서는 48비트가 서버에 표시되는 포트 주소라는 것이 매우 중요합니다. NAT로 인해 클라이언트와 릴레이는 UDP 포트가 완전히 다른 주소를 가지고 있다고 생각할 수 있습니다. 그러나 클라이언트와 릴레이가 보는 IPv4 주소와 포트 번호는 최종 IPv6 주소에 영향을 미치지 않습니다.
일반적으로 관련된 유일한 NAT는 Teredo 클라이언트 가까이에 있습니다. 그러나 최종 IPv6 주소에 영향을 미치고 싶다면 NAT를 Teredo 서버와 동일한 시스템에 배치할 수 있습니다. 원한다면 Teredo 서버에 직접 NAT를 구축하는 것도 가능합니다.
이에 대한 구현이 존재합니까?
아마도 그렇지 않을 것입니다.
이전에 구현한 적이 있음최대Teredo 서버가 이 작업을 수행합니다. 그러나 클라이언트는 UDP 포트 번호가 아닌 IPv4 주소만 선택할 수 있습니다. 클라이언트를 구별하려면 UDP 포트 번호가 필요했습니다.
특정 사용자에 대해 IPv4 주소와 UDP 포트를 모두 정적으로 유지하도록 지원하는 Teredo 서버에는 사용자를 인식하는 방법이 필요합니다. 프로토콜에는 잠재적으로 이를 위해 사용될 수 있는 필드가 있습니다. 그러나 Teredo 서버에 대한 Teredo 클라이언트 식별을 지원하는 구현에 대해서는 모르겠습니다.
더욱이 Teredo는 상당한 신뢰성 문제를 겪고 있습니다. 이 안정성 문제는 내가 여기서 설명한 수정 사항에 영향을 받지 않는 Teredo 프로토콜의 일부와 관련이 있습니다.
Teredo의 문제
문제는 기본 IPv6 노드가 사용할 Teredo 릴레이를 선택하는 방법입니다. 이상적으로는 기본 IPv6 노드가 있는 네트워크 관리자가 해당 네트워크에 대한 Teredo 릴레이를 구성합니다(그리고 NAT가 IPv4에 사용되는 경우 NAT 외부에 배치합니다).
그러나 많은 관리자는 Teredo 릴레이를 배포하지 않기로 선택합니다. 일반적으로 Teredo는 매우 신뢰할 수 없기 때문에 이를 지원할 필요가 없다고 추론합니다(이러한 추론으로 인해 Teredo의 불안정성이 자기 실현적 예언이 된다는 사실은 결코 깨닫지 못합니다).
대신 기본 IPv6 노드의 트래픽은 기본 경로를 통해 업스트림 공급자에게 전송되고, 업스트림 공급자는 이를 업스트림 공급자에게 보낼 수 있으며 결국 트래픽은 AS의 공개 제3자 릴레이로 끝날 수 있습니다. 발표하기로 결정했습니다 2001::/32
.
타사 릴레이를 사용하면 네트워크 경로가 길어지고 대기 시간도 늘어납니다. 이는 또한 SLA가 없으며 Teredo 릴레이에 전송되는 트래픽에 대한 용량이 충분하지 않을 수 있음을 의미합니다.
고정 IP 주소가 필요한 대부분의 경우 어느 정도의 안정성도 필요합니다. 또한 통신할 모든 원격 노드를 제어할 수 있는 경우가 거의 없으므로 어떤 Teredo 릴레이가 사용될 것인지도 제어할 수 없습니다.
이로 인해 고정 IP 주소를 사용하는 Teredo는 안정성을 보장하지 않고 고정 IP 주소를 얻기 위해 수정된 Teredo 클라이언트를 설치하려는 소수의 사람들을 위한 틈새 제품이 되었습니다.
답변4
터널 을 사용하는 것이 더 나을 수도 있습니다 6in4
. 이는 프로토콜 41을 사용하므로 추가 NAT 규칙이 필요하지 않습니다. 무료 터널을 제공하는 브로커가 있습니다. 네트워크에서 터널 브로커 IP를 사용하는 유일한 사람이라면 문제가 없습니다.
라우터의 IP 주소가 고정 IP 주소가 아닌 경우 IP 주소가 변경될 때 네트워크를 재구성하려면 추가 구성을 수행해야 합니다. 이는 DDNS에서 수행해야 하는 작업과 유사합니다.
원치 않는 트래픽으로부터 사용자를 보호하는 NAT가 없으므로 연결을 방화벽으로 설정하세요.
둘 다 지원하며 6in4
Linux 6to4
에 내장되어 있습니다. 처음에는 작동하는 6to4로 시작했지만 원하는 만큼 안정적이지는 않았습니다. 나는 6in4
안정적인 연결을 가지고 있습니다. 나는 NTP 연결을 위해 그것을 사용하고 있으며 IPv6를 통해 안정적인 시간 소스를 얻습니다.