iPhone이 DNS 응답에서 여러 IP 주소를 받으면 어떻게 IP 주소를 선택합니까?

iPhone이 DNS 응답에서 여러 IP 주소를 받으면 어떻게 IP 주소를 선택합니까?

아래의 특정 시나리오에서 Iphone이 DNS 응답으로 반환된 2개의 IP 주소에서 사용할 IP 주소를 결정하는 방법을 이해하려고 합니다.

시나리오는 다음과 같습니다.

1- Iphone은 "bsf.mncxx.mccxx.pub.3gppnetwork.org"와 같은 Arecord에 대한 DNS 쿼리를 보내고 응답으로 2개의 IP 주소를 얻습니다.

2- 아이폰은 자신을 인증하기 위해 IP 주소 중 하나로 GET 요청을 보냅니다. (이 단계에서 어떤 BSF IP를 선택했는지는 중요하지 않습니다.)

3- BSF는 인증 문제와 함께 401 Unauthorized를 반환합니다.

4- 아이폰은 응답을 계산하고 두 번째 GET 요청으로 보냅니다.

문제는 여기서 시작됩니다. 아이폰은 여기서 BSF를 무작위로 선택합니다. 이 두 번째 GET(계산된 응답 포함)을 2단계에서 동일한 BSF로 보내는 것이 예상됩니다. 다른 모든 휴대폰(삼성, 화웨이, 소니 등)은 2단계에서 BSF로 보냅니다. 하지만 아이폰은 그냥 무작위로 선택하는 것 같습니다. 다른 BSF를 선택하면 인증이 실패합니다.

해결 방법으로 http 401 응답에서 Connection:keep-alive를 보내도록 BSF를 구성했지만 불행하게도 도움이 되지 않았습니다. 아이폰은 여전히 ​​무작위로 선택합니다.

여기 설정에서 BSF IP 주소는 가까운 서브넷에 있습니다(BSF1 = 172.31.59.165, BSF2= 172.31.59.181).

다른 설정(우리와 정확히 동일한 BSF는 아니지만 http 요청 및 응답은 유사)에서 동일한 Iphone이 항상 2단계와 4단계(BSF1=10.216.138.78, BSF2= 10.210.149.79)에서 동일한 BSF를 선택한다는 것이 매우 이상합니다. 2단계에서 BSF1을 선택한 경우 4단계에서 BSF1을 계속 진행합니다. BSF2에서도 마찬가지입니다.

iPhone이 결정 중에 서브넷을 확인하는 것이 가능합니까? 다른 추측이나 제안은 높이 평가될 것입니다.

고마워요 화이트

관련 정보