Încerc să înțeleg cum Iphone decide ce adresă IP să folosească din 2 adrese IP returnate în răspunsul dns în acest scenariu specific de mai jos.
Scenariul este astfel:
1- Iphone trimite o interogare dns pentru un Arecord precum „bsf.mncxx.mccxx.pub.3gppnetwork.org” și primește 2 adrese IP în răspuns.
2- Iphone trimite cereri GET la una dintre adresele IP pentru a se autentifica (nu este important ce IP BSF a selectat la acest pas)
3- BSF returnează 401 Neautorizat cu provocare de autentificare
4- Iphone calculează răspunsul și îl trimite în a doua cerere GET.
Problema începe aici. Iphone selectează BSF la întâmplare aici. Se așteaptă să se trimită acest al doilea GET (cu răspuns calculat) către același BSF în pasul 2. Toate celelalte telefoane (Samsung, Huawei, Sony etc) îl trimite la BSF în pasul 2. Dar se pare că Iphone selectează doar aleatoriu.
Dacă este selectat alt BSF, autentificarea eșuează.
Ca o soluție, am configurat BSF să trimită Connection:keep-alive în răspunsul http 401, dar, din păcate, nu a ajutat. Iphone îl selectează în continuare aleatoriu.
Aici, în configurația noastră, adresele IP BSF sunt în subrețele apropiate (BSF1 = 172.31.59.165, BSF2 = 172.31.59.181)
Este foarte ciudat că, într-o altă configurare (nu exact aceleași BSF-uri cu ale noastre, dar cererea http și răspunsurile similare) același Iphone selectează întotdeauna același BSF în pasul 2 și pasul 4 (BSF1=10.216.138.78, BSF2= 10.210.149.79). Dacă selectează BSF1 în pasul 2, continuă cu BSF1 în pasul 4. Același lucru pentru BSF2.
Este posibil ca Iphone să verifice subrețele în timpul deciziei?
Orice altă presupunere sau sugestie va fi foarte apreciată.
Mulțumiri
alb