ฉันพยายามทำความเข้าใจวิธีที่ Iphone ตัดสินใจว่าจะใช้ที่อยู่ IP ใดจากที่อยู่ IP 2 รายการที่ส่งกลับในการตอบสนอง DNS ในสถานการณ์เฉพาะด้านล่างนี้
สถานการณ์เป็นดังนี้:
1- Iphone ส่งแบบสอบถาม dns สำหรับ Arecord เช่น "bsf.mncxx.mccxx.pub.3gppnetwork.org" และได้รับ 2 ที่อยู่ IP ในการตอบกลับ
2- Iphone ส่งคำขอ GET ไปยังหนึ่งในที่อยู่ IP เพื่อรับรองความถูกต้อง (ไม่สำคัญว่า BSF IP ใดที่เลือกในขั้นตอนนี้)
3- BSF ส่งคืน 401 ไม่ได้รับอนุญาตพร้อมความท้าทายในการตรวจสอบสิทธิ์
4- Iphone คำนวณการตอบสนองและส่งในคำขอ GET ครั้งที่ 2
ปัญหาเริ่มต้นที่นี่ Iphone เลือก BSF แบบสุ่มที่นี่ ความคาดหวังคือการส่ง GET ครั้งที่ 2 (พร้อมการตอบสนองที่คำนวณได้) ไปยัง BSF เดียวกันในขั้นตอนที่ 2 โทรศัพท์รุ่นอื่นๆ ทั้งหมด (Samsung, Huawei, Sony ฯลฯ) ส่งไปยัง BSF ในขั้นตอนที่ 2 แต่ดูเหมือนว่า Iphone จะสุ่มเลือก
หากเลือก BSF อื่น การรับรองความถูกต้องจะล้มเหลว
วิธีแก้ปัญหา เราได้กำหนดค่า BSF ให้ส่ง Connection:keep-alive ในการตอบกลับ http 401 แต่น่าเสียดายที่มันไม่ได้ช่วยอะไร Iphone ยังคงเลือกแบบสุ่ม
ในการตั้งค่าของเรา ที่อยู่ IP ของ BSF อยู่ในเครือข่ายย่อยแบบปิด (BSF1 = 172.31.59.165, BSF2= 172.31.59.181)
เป็นเรื่องแปลกมากที่ในการตั้งค่าอื่น (ไม่ใช่ BSF เดียวกันกับของเรา แต่คำขอ http และการตอบสนองคล้ายกัน) Iphone เครื่องเดียวกันจะเลือก BSF เดียวกันเสมอในขั้นตอนที่ 2 และขั้นตอนที่ 4 (BSF1=10.216.138.78, BSF2=10.210.149.79) หากเลือก BSF1 ในขั้นตอนที่ 2 ให้ดำเนินการต่อด้วย BSF1 ในขั้นตอนที่ 4 เช่นเดียวกับ BSF2
เป็นไปได้ไหมที่ Iphone จะตรวจสอบ subnets ระหว่างการตัดสินใจ?
การเดาหรือข้อเสนอแนะอื่น ๆ จะได้รับการชื่นชมอย่างสูง
ขอบคุณ
สีขาว