DNS 応答で複数の IP アドレスを取得した場合、iPhone はどのようにして IP アドレスを選択しますか?

DNS 応答で複数の IP アドレスを取得した場合、iPhone はどのようにして IP アドレスを選択しますか?

私は、以下の特定のシナリオで、DNS 応答で返された 2 つの IP アドレスからどの IP アドレスを使用するかを iPhone がどのように決定するかを理解しようとしています。

シナリオは次のようになります:

1- iPhone は「bsf.mncxx.mccxx.pub.3gppnetwork.org」のような Arecord の DNS クエリを送信し、応答で 2 つの IP アドレスを取得します。

2- iPhone は、認証のために IP アドレスの 1 つに GET リクエストを送信します (このステップでどの BSF IP が選択されるかは重要ではありません)

3- BSFは認証チャレンジで401 Unauthorizedを返します

4- iPhone は応答を計算し、2 番目の GET リクエストで送信します。

問題はここから始まります。iPhone はここで BSF をランダムに選択します。期待されるのは、この 2 番目の GET (計算された応答を含む) をステップ 2 で同じ BSF に送信することです。他のすべての電話 (Samsung、Huawei、Sony など) は、ステップ 2 でそれを BSF に送信します。しかし、iPhone はランダムに選択しているだけのようです。他の BSF が選択されると、認証は失敗します。

回避策として、http 401 応答で Connection:keep-alive を送信するように BSF を設定しましたが、残念ながら効果はありませんでした。iPhone は依然としてそれをランダムに選択します。

ここでの設定では、BSF IP アドレスは近いサブネットにあります (BSF1 = 172.31.59.165、BSF2 = 172.31.59.181)

別の設定(私たちのものとまったく同じ BSF ではありませんが、http 要求と応答は似ています)では、同じ iPhone が常にステップ 2 とステップ 4 で同じ BSF(BSF1=10.216.138.78、BSF2= 10.210.149.79)を選択するのは非常に奇妙です。ステップ 2 で BSF1 を選択した場合は、ステップ 4 でも BSF1 が継続されます。BSF2 についても同様です。

iPhone が決定中にサブネットをチェックする可能性はありますか? その他の推測や提案があれば、ぜひ教えてください。

ありがとうホワイト

関連情報