ต้องการการเชื่อมต่อขาเข้า IPv4 มากกว่า IPv6


11

เราเรียกใช้บริการสังคม / ท้องถิ่นที่ได้รับประโยชน์จากการระบุตำแหน่งทางภูมิศาสตร์ของ IP ของผู้ใช้ ปัญหาคือว่าด้วย IPv6 ตำแหน่งทางภูมิศาสตร์ค่อนข้าง spottier กว่าด้วย IPv4

มีวิธีใดที่จะชอบการเชื่อมต่อขาเข้ามากกว่า IPv6 บนโฮสต์ Ubuntu ที่มี nginx หรือไม่? การกำหนดค่ามีลักษณะดังนี้:

server {
    listen 80 default_server;
    listen [::]:80 ipv6only=off default_server;
}

คำตอบ:


23

การกำหนดค่าตามความชอบ IPv6 / IPv4 ถูกกำหนดโดยผู้ริเริ่มการเชื่อมต่อเช่นเว็บเบราว์เซอร์ กฎการเลือกที่อยู่ที่ระบุไว้ในRFC 6724 ในขณะที่สิ่งเหล่านี้สามารถถูกแทนที่มันเป็นเพียงผู้ใช้กำหนดค่าระบบปฏิบัติการของพวกเขา

วิธีเดียวที่คุณสามารถบังคับให้ใครบางคนใช้ IPv4 คือการไม่เสนอ IPv6 เลย เห็นได้ชัดว่านี่ไม่ใช่วิธีแก้ปัญหาที่ปฏิบัติได้แม้ในระยะกลาง ...

ดังนั้นกลับไปที่ปัญหาเดิม: ตำแหน่งทางภูมิศาสตร์สำหรับ IPv6 คือ "ค่อนข้าง spottier กว่าด้วย IPv4"

ในส่วนนี้ขึ้นอยู่กับตำแหน่งที่คุณรับข้อมูลตำแหน่งทางภูมิศาสตร์ของคุณ ตัวอย่างเช่น Maxmind ให้ที่อยู่ IPv6 ของฉันเป็น "สหรัฐอเมริกา" โดยไม่มีเมืองเลยและชุดพิกัดที่น่าสนใจในขณะที่ Google อย่างน้อยก็ระบุพื้นที่ในเมืองหลวงได้อย่างถูกต้อง ทั้ง Maxmind และ Google อนุญาตให้มีการรายงานการแก้ไขและอย่างน้อยที่สุดสำหรับ Maxmind ทุกคนสามารถทำได้สำหรับที่อยู่ IP ใด ๆ

ฉันไม่คาดหวังว่าสถานการณ์นี้จะยาวนานนัก เมื่อการใช้งาน IPv6 ยังคงขยายตัวผู้ใช้บริการระบุตำแหน่งทางภูมิศาสตร์ดังกล่าวจะต้องการความแม่นยำมากขึ้นสำหรับที่อยู่ IPv6 และพวกเขาจะต้องส่งมอบในที่สุดอย่างน้อยก็สำหรับลูกค้าที่ชำระเงิน

ในระหว่างนี้คุณควรแน่ใจว่าแอปพลิเคชันของคุณมีวิธีอื่นในการค้นหาผู้ใช้ หากพวกเขาเข้าสู่ระบบคุณสามารถอ่านบัญชีที่มีอยู่เพื่อหาเบาะแสเกี่ยวกับที่ตั้งของพวกเขา คุณสามารถขอให้ผู้ใช้เลือกประเทศได้อย่างชัดเจน และอื่น ๆ ...

อีกสิ่งหนึ่งที่คุณสามารถทำได้คือให้โดเมนย่อย IPv4 เท่านั้นและโดเมนย่อย IPv6 เท่านั้นของเว็บไซต์ของคุณซึ่งแต่ละหน้าพยายามโหลด จากนั้นคุณสามารถเชื่อมโยงฝั่งไคลเอ็นต์และรายงานกลับไปยังเซิร์ฟเวอร์ ไม่บังเอิญ Maxmind กำลังทำสิ่งนี้อยู่ในเว็บไซต์ของตนเอง


12
ฉันคาดหวังว่าการระบุตำแหน่งทางภูมิศาสตร์ผ่าน IP เพื่อไปตามทางของไดโนเสาร์ สิ่งที่ดีที่สุดที่คุณควรหวังคือการแก้ไขในทวีปโดยเฉพาะอย่างยิ่งเมื่อการซื้อขายบล็อก v4 ได้รับแรงฉุดมากขึ้น
Jim B

4
สิ่งที่จะผลักดันให้คนจนบ้าคลั่งคือ บริษัท ทั้งหมดที่ได้รับบล็อก IPv4 จาก AFRINIC แต่ไม่ได้อยู่ในแอฟริกาจริงๆ ฉันเห็นสิ่งเหล่านี้ในป่าอยู่แล้ว
Michael Hampton

1
ใช่ฉันเคยเห็นแบบเดียวกัน ฉันเห็นการสาธิตการใช้งานนอกทางรถไฟเนื่องจากบล็อกซื้อขาย
Jim B

15

การกำหนดค่าตามความชอบดังกล่าวสามารถแสดงโดยใช้เรคคอร์ด SRV น่าเสียดายที่ HTTP เหล่านั้นไม่รองรับ ดังนั้นคุณจะเหลือสถานการณ์ที่ลูกค้าเพียงอย่างเดียวกำลังเลือกระหว่าง IPv4 และ IPv6

ไคลเอนต์จำนวนมากใช้เวลาไปกลับของ SYN + SYN-ACK เพื่อตัดสินใจว่าจะใช้สองแบบไหน ดังนั้นโดยการชะลอการส่งแพ็คเก็ต SYN-ACK บน IPv6 คุณสามารถทำให้ลูกค้าส่วนใหญ่ชอบ IPv4 แต่จงใจทำให้เว็บไซต์ของคุณช้าลงเป็นวิธีที่แย่มาก

แต่ฉันจะย้อนกลับไปดูปัญหา คุณต้องการข้อมูลตำแหน่งทางภูมิศาสตร์ที่ดีขึ้น ทุกครั้งที่ผู้เข้าชมเข้าถึงเว็บไซต์ของคุณคุณจะได้รับรู้ที่อยู่ IP ของพวกเขาทันที ไม่ว่าจะเป็นที่อยู่ IPv4 หรือ IPv6 ขึ้นอยู่กับว่าเบราว์เซอร์ใดที่พวกเขาต้องการสื่อสารกับเซิร์ฟเวอร์ของคุณ

ในหน้าของคุณคุณสามารถใช้คำขอ AJAX เพื่อทำความรู้จักกับที่อยู่ IP อื่น สำหรับลูกค้าที่ใช้ IPv4 ส่งคำขอ AJAX ไปยังโดเมน IPv6 เท่านั้นสำหรับลูกค้าที่ใช้ IPv6 ส่งคำขอ AJAX ไปยังโดเมน IPv4 เท่านั้น

ทันทีที่คำขอ AJAX มาถึงเซิร์ฟเวอร์คุณจะรู้ทั้งที่อยู่ IPv4 และ IPv6 ของผู้ใช้ การรู้จักจดหมายโต้ตอบนี้จะช่วยให้คุณสามารถระบุตำแหน่งทางภูมิศาสตร์ได้ดีกว่าที่คุณรู้เพียงอย่างใดอย่างหนึ่งเท่านั้น

คุณมักจะเห็นกรณีที่คำขอ AJAX ไม่เคยมาถึงบนเซิร์ฟเวอร์ สำหรับผู้ใช้เหล่านั้นคุณจะต้องระบุตำแหน่งทางภูมิศาสตร์ตามที่คุณสามารถทำได้โดยใช้ที่อยู่ IP เดียวเท่านั้น แต่ตราบใดที่การตอบกลับคำขอ AJAX นั้นไม่ได้ใช้สำหรับสิ่งใด ๆ ในฝั่งไคลเอ็นต์ผู้ใช้จะไม่สังเกตเห็นแม้แต่คำขอ AJAX ที่ล้มเหลว ดังนั้นจะไม่มีการรับรู้การชะลอตัวหรือพฤติกรรมผิดปกติที่เกิดจากการร้องขอ AJAX


2
ดูเหมือนว่าจะเป็นทางออกที่สร้างสรรค์และใช้งานง่าย
Dan Dascalescu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.