Hành vi mong muốn
Khi một ứng dụng gửi một gói đến địa chỉ IP quảng bá toàn cầu 255.255.255.255
, tôi muốn gói đó được gửi đến địa chỉ quảng bá toàn cầu Ethernet ( ff:ff:ff:ff:ff:ff
), trên tất cả các giao diện.
Trên Linux và có lẽ các hệ điều hành khác cũng có vẻ như hoạt động. Windows XP và Windows 7 thể hiện các hành vi khác nhau về điều này và không có hành vi nào là mong muốn đối với tình huống của tôi.
Hành vi Windows XP
Gói tin sẽ được gửi chính xác đến giao diện mạng đầu tiên (thứ tự giao diện được chỉ định trong "Kết nối mạng / Cài đặt nâng cao / Nâng cao"). Nó cũng sẽ được gửi đến các giao diện khác.
Mọi thứ đều đúng cho đến nay. Vấn đề là, khi gửi đến các giao diện khác, địa chỉ nguồn của gói tin quảng bá là địa chỉ IP của giao diện đầu tiên. Ví dụ: hãy tưởng tượng cấu hình mạng này (thứ tự là quan trọng):
- Bộ điều hợp 1: Địa chỉ IP
192.168.0.1
- Bộ chuyển đổi 2: Địa chỉ IP
10.0.0.1
- Bộ chuyển đổi 3: Địa chỉ IP
172.17.0.1
Bây giờ nếu tôi gửi một gói phát sóng, các gói sau sẽ được gửi (với địa chỉ IP nguồn và đích):
- Trên bộ chuyển đổi 1:
192.168.0.1
=>255.255.255.255
- Trên bộ chuyển đổi 2:
192.168.0.1
=>255.255.255.255
Trên bộ chuyển đổi 3:
192.168.0.1
=>255.255.255.255
Trong thực tế, các ứng dụng sử dụng gói quảng bá sẽ không hoạt động trên bất kỳ giao diện nào ngoài bộ điều hợp 1. Theo tôi, đây là một lỗi trắng trợn trong ngăn xếp TCP / IP của Windows XP.
Hành vi của Windows 7
Sửa đổi thứ tự giao diện mạng dường như không có bất kỳ ảnh hưởng nào đến Windows 7. Thay vào đó, việc phát sóng dường như được kiểm soát bởi bảng định tuyến 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
===========================================================================
Xem các 255.255.255.255
tuyến đường? Đúng, họ kiểm soát các gói phát sóng. Trong tình huống này, các gói tin quảng bá sẽ được gửi qua 192.168.0.3
vì nó có số liệu thấp hơn ... nhưng không đến các giao diện khác.
Bạn có thể thay đổi giao diện thông qua đó các gói phát sóng toàn cầu sẽ được gửi rất dễ dàng (chỉ cần thêm một 255.255.255.255
tuyến liên tục với số liệu thấp). Nhưng cho dù bạn có cố gắng thế nào, các gói phát sóng sẽ chỉ được gửi trên một giao diện duy nhất , không phải tất cả chúng đều giống như tôi muốn làm.
Phần kết luận
- Windows 7 chỉ gửi các gói tin quảng bá đến một giao diện. Bạn có thể chọn cái nào, nhưng đó không phải là điểm chính ở đây.
- Windows XP gửi các gói tin quảng bá đến tất cả các giao diện, nhưng nó chỉ gửi chúng như mong đợi cho một giao diện, trong thực tế là tương đương với hành vi của Windows 7.
Mục đích
Tôi muốn thay đổi hỗ trợ phát IP toàn cầu này trong Windows (tốt nhất là Windows 7) một lần và mãi mãi. Tất nhiên cách tốt hơn là có một số loại thay đổi cấu hình được hỗ trợ (hack registry hoặc tương tự), nhưng tôi mở tất cả các đề xuất.
Có ý kiến gì không?