พฤติกรรมที่ต้องการ
เมื่อแอปพลิเคชันส่งแพ็คเก็ตไปยังที่อยู่ IP การกระจายข้อมูลส่วนกลาง255.255.255.255
ฉันต้องการให้ส่งแพ็คเก็ตไปยังที่อยู่ออกอากาศทั่วโลกของ Ethernet ( ff:ff:ff:ff:ff:ff
) ในทุกอินเทอร์เฟซ
บน Linux และอาจเป็น OS อื่น ๆ เช่นนี้ดูเหมือนว่าจะทำงาน Windows XP และ Windows 7 มีพฤติกรรมที่แตกต่างกันเกี่ยวกับเรื่องนี้และพฤติกรรมไม่เหมาะสมกับสถานการณ์ของฉัน
พฤติกรรมของ Windows XP
แพ็คเก็ตจะถูกส่งไปยังเครือข่ายแรกอย่างถูกต้อง (ลำดับของอินเทอร์เฟซระบุไว้ใน มันจะถูกส่งไปยังอินเทอร์เฟซอื่น
ทุกอย่างถูกต้องจนถึงตอนนี้ ปัญหาคือเมื่อส่งไปยังอินเตอร์เฟสอื่นแอดเดรสต้นทางของแพ็กเก็ตบรอดคาสต์คือที่อยู่ IP ของอินเตอร์เฟสแรก ตัวอย่างเช่นลองนึกภาพการกำหนดค่าเครือข่ายนี้ (ลำดับเป็นสิ่งสำคัญ):
- อะแดปเตอร์ 1: ที่อยู่ IP
192.168.0.1
- อะแดปเตอร์ 2: ที่อยู่ IP
10.0.0.1
- อะแดปเตอร์ 3: ที่อยู่ IP
172.17.0.1
ตอนนี้ถ้าฉันส่งแพ็กเก็ตบรอดคาสต์แพ็กเก็ตต่อไปนี้จะถูกส่ง (พร้อมที่อยู่ IP ต้นทางและปลายทาง):
- บนอะแด็ปเตอร์ 1:
192.168.0.1
=>255.255.255.255
- บนอะแด็ปเตอร์ 2:
192.168.0.1
=>255.255.255.255
บนอะแด็ปเตอร์ 3:
192.168.0.1
=>255.255.255.255
ในทางปฏิบัติแล้วแอปพลิเคชันที่ใช้แพ็กเก็ตบรอดคาสต์จะไม่ทำงานบนอินเทอร์เฟซอื่นใดนอกจากอะแดปเตอร์ 1 ในความคิดของฉันนี่เป็นข้อบกพร่องที่เห็นได้ชัดในสแต็ค TCP / IP ของ Windows XP
พฤติกรรมของ Windows 7
ดูเหมือนว่าการปรับเปลี่ยนลำดับอินเทอร์เฟซเครือข่ายจะไม่มีผลกระทบใด ๆ กับ Windows 7 แต่การออกอากาศจะถูกควบคุมโดยตารางเส้นทาง IP
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.202.254.254 10.202.1.2 286
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.3 10
10.202.0.0 255.255.0.0 On-link 10.202.1.2 286
10.202.1.2 255.255.255.255 On-link 10.202.1.2 286
10.202.255.255 255.255.255.255 On-link 10.202.1.2 286
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.0.0 255.255.255.0 On-link 192.168.0.3 266
192.168.0.3 255.255.255.255 On-link 192.168.0.3 266
192.168.0.255 255.255.255.255 On-link 192.168.0.3 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.0.3 266
224.0.0.0 240.0.0.0 On-link 10.202.1.2 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.0.3 266
255.255.255.255 255.255.255.255 On-link 10.202.1.2 286
===========================================================================
ดู255.255.255.255
เส้นทาง? ใช่พวกเขาควบคุมแพ็กเก็ตออกอากาศ ในสถานการณ์นี้แพ็คเก็ตออกอากาศจะถูกส่งผ่าน192.168.0.3
เพราะมันมีเมตริกต่ำกว่า ... แต่ไม่ใช่ไปยังอินเทอร์เฟซอื่น
คุณสามารถเปลี่ยนอินเทอร์เฟซที่จะส่งแพ็กเก็ตบรอดคาสต์ทั่วโลกได้อย่างง่ายดายมาก (เพียงเพิ่ม255.255.255.255
เส้นทางถาวรด้วยการวัดค่าต่ำ) แต่ไม่ว่าคุณจะพยายามอย่างหนักเพียงใดแพ็กเก็ตออกอากาศจะถูกส่งไปยังอินเทอร์เฟซเดียวเท่านั้นไม่ใช่ทั้งหมดที่ฉันต้องการให้ทำ
ข้อสรุป
- Windows 7 ส่งแพ็กเก็ตบรอดคาสต์ไปยังอินเตอร์เฟสเดียวเท่านั้น คุณสามารถเลือกอันใดอันหนึ่ง แต่นั่นไม่ใช่ประเด็นที่นี่
- Windows XP ส่งแพ็กเก็ตบรอดคาสต์ไปยังอินเทอร์เฟซทั้งหมด แต่ส่งได้ตามที่คาดไว้ในอินเทอร์เฟซเดียวเท่านั้นซึ่งในทางปฏิบัติจะเทียบเท่ากับการทำงานของ Windows 7
เป้าหมาย
ฉันต้องการเปลี่ยนการสนับสนุนการออกอากาศ IP ทั่วโลกใน Windows (โดยเฉพาะ Windows 7) ทุกครั้ง แน่นอนว่าวิธีที่ดีกว่าคือมีการเปลี่ยนแปลงการกำหนดค่าที่รองรับ (การแฮกรีจิสทรีหรือคล้ายกัน) แต่ฉันเปิดรับข้อเสนอแนะทั้งหมด
ความคิดใด ๆ