2016-07-08 5 views
2

사과가 검토 환경을 IPv6 전용 네트워크로 변경 했으므로 테스트하는 동안 응용 프로그램에 문제가 발생했습니다.iOS NAT64 IPv6 환경 문제

응용 프로그램에 액세스하려면 응용 프로그램에서 서버/시스템 IP 주소, 포트 (4401) 및 자격 증명을 입력해야합니다. apple에서 제공하는 지침에 따라 내 응용 프로그램의 호환성을 테스트하기 위해 NAT64 환경을 설정합니다. iOS 9.3.2를 iphone 5s에서 실행 중입니다.

제 업무 환경에는 몇 가지 내부 네트워크가 있습니다. iMac을 내부 서버 (10.10.50.XX)에 이더넷을 통해 연결했습니다.이 IP는 Apple에 제공하는 외부 IP도 가지고 있습니다. 50 네트워크는 프록시에서 실행되지 않지만 필터링 된 사이트가 있지만 확인을 통해 액세스 할 수 있습니다. WiFI를 통해 이더넷 연결을 공유했습니다.

기기에 연결되어 있으며 필터링되는 동일한 페이지로 인터넷에 접속했습니다. 장치에 로컬 링크 주소 169.254.XX.XX가 할당됩니다. 어떤 장치에서 아이피가 로컬 링크 만 ipv6 주소를 표시하지 않기 때문에 내 장치가 ipv6 네트워크에만 올바르게 연결되어 있음을 읽을 수 있습니다.

공유 IPv6 네트워크에 올바르게 연결되어 있다면 응용 프로그램에서 50 네트워크의 서버에 연결하는 데 문제가 있습니다. 10.10.50.XX 네트워크 나 외부 (iMac이 50 내부 네트워크에 있기 때문에) 연결하려고하면 응용 프로그램이 실패합니다.

50 네트워크에 연결된 무선 라우터로 IPv4를 사용하여 응용 프로그램을 테스트하면 완벽하게 실행됩니다. 로컬 링크 주소가 50 네트워크 또는 다른 것을 볼 수 없다는 문제가 있다고 생각합니다.

Heres는 서버에 연결하는 방법에 대한 간단한 배경 정보를 제공합니다. 사용자는 연결하려는 서버의 모든 자격 증명과 IP 주소 및 포트를 입력합니다. 응용 프로그램은이 내용을 텍스트 (utf-8)로 저장하고 boost_upr을 사용하여 자격 증명의 유효성을 검사하고 사용자에게 액세스 권한을 제공하는 cpp 연결 클래스로 보냅니다. 이 cpp 연결 클래스는 연결, 동기화, 로깅, 요청 및 서버의 응답을 처리합니다.

어떻게하면 NAT64 인터넷 공유 옵션을 사용하여 50 네트워크에 액세스 할 수 있습니까?

+0

"cpp 연결 클래스가 어떻게 연결, 동기화, 로깅, 요청 및 서버의 응답을 처리합니까?" – user102008

답변

1

IP 주소를 네트워크 라이브러리에 직접 전달하는 경우에는 no입니다. 장치가 NAT64의 IPv6 전용 측면에있을 때 서버의 IPv4 주소는 쓸모가 없습니다.

도달하려는 서버의 DNS 이름이 거의 확실합니다. NAT64는 서버가 IPv4 전용 인 경우 DNS64를 사용하여 응용 프로그램의 IPv6 주소를 만듭니다. 이러한 합성 된 주소에는 NAT64가 IPv6에서 IPv4로 변환하는 데 필요한 정보를 제공하는 서버의 IPv4 주소가 포함됩니다.

업데이트 추가 : user102008이이 답변에 첨부 된 주석 스레드에서 제안한대로 getaddrinfo()를 통해 IPv4 문자열 리터럴을 전달할 수도 있습니다 (code listing 10-1 on this page 참조). NAT64의이면에 합성 IPv6 주소가 해당 호출에 의해 반환 된 결과 중 하나 여야합니다. NAT64는이 주소에서 IPv4로 다시 변환하여 지정한 호스트에 도달합니다. 이 경우 시스템이 NAT64에 사용할 올바른 접두사를 알고 있으면 호스트 이름이 필요하지 않습니다.

+0

"접속하려는 서버에 대해 거의 확실하게 DNS 이름이 필요합니다." 이것은 사실이 아닙니다. IPv6 전용 네트워크에서 IPv4 주소 리터럴에 연결할 수 있습니다. – user102008

+0

app/lib가 사용중인 NAT64 접두사를 알고 있고 app/lib가 DNS64와 같은 방식으로 NAT64에 도달 할 수 있도록 IPv6 주소를 합성하는 경우에만 가능합니다. 그런 다음 IPv6 패킷을 NAT64로 보내고 NAT64는 IPv4로 변환 할 수 있습니다. 확실히 IPv4 패킷을 IPv6 전용 네트워크에 찔러 넣을 수는 없으며 어느 곳 으로든 이동할 수 있습니다. – Stephen

+0

또는 시스템 API에 종합 해달라고 요청하십시오. 내 요점은, 호스트 이름이 필요하지 않습니다. – user102008