169.254 qua VPN: địa chỉ này chưa bao giờ có thể định tuyến
Đích link-local bị loại bỏ trước khi tới đường hầm, nên thêm tuyến chỉ mở rộng lỗi. Hãy chọn giữa sửa subnet và dựng cầu nối.
Bạn thêm tuyến, đường hầm dựng lên, và ping sang phía bên kia vẫn chết với mất mát hoàn toàn thay vì «network unreachable». Khác biệt đó quan trọng, vì nó hướng cái nhìn từ bảng định tuyến sang chính địa chỉ. Đích 169.254 là link-local, và phạm vi của nó kết thúc ở hop đầu tiên theo thiết kế, không phải do cấu hình sai.
Quyết định tiếp theo hẹp và đáng được đưa ra một cách rõ ràng: sửa subnet phía máy chủ, hoặc mở rộng phân đoạn lớp 2 để địa chỉ có lại ý nghĩa cục bộ. Mọi thứ khác, kể cả một tuyến rộng hơn, chỉ làm cùng một lỗi áp dụng cho nhiều đích hơn.
Địa chỉ không phải thiếu tuyến, nó không thể định tuyến
Địa chỉ IPv4 link-local tự gán cho mình khi không có gì tốt hơn trả lời; đây là nguồn gốc của việc gán địa chỉ riêng tự động trong Windows và tương đương ở các hệ thống khác. Dải này được dùng trên mọi liên kết cùng lúc, và chính vì thế nó hoạt động: hai máy trong cùng phân đoạn nói chuyện được mà không cần phối hợp gì.
Cũng chính đặc tính đó khiến bộ định tuyến không được chuyển tiếp các gói này giữa các mạng. Nhận một gói hướng tới đích link-local rồi gửi ra qua giao diện khác sẽ tạo ra sự mơ hồ, vì «cục bộ» của bên gửi và «cục bộ» của bên nhận là những nơi khác nhau. Không có phép tra cứu nào quyết định được bên gửi muốn nói cái nào. Chuyển tiếp ở đây không phải lựa chọn chính sách mà quản trị viên có thể bật; lớp địa chỉ loại trừ nó.
Vì vậy một cổng vào đặt 169.254.1.10 là có thể tới được qua đường hầm đang yêu cầu nhân làm điều mà định dạng địa chỉ cấm. Gói bị loại bỏ rất lâu trước khi tới máy ở xa, và không độ chính xác tuyến nào thay đổi kết quả đó.
Vì sao đường hầm làm lộ vấn đề phạm vi
Giao diện TUN mang gói IP giữa hai bên và không có phân đoạn chia sẻ phía sau. Không có quảng bá, không có ARP cho phía bên kia, và không có khám phá lân cận nào chuyển được đích link-local thành địa chỉ lớp liên kết.
Các triệu chứng khớp chính xác khi biết cần tìm gì. Tuyến có trong bảng, ping báo mất mát hoàn toàn thay vì mạng không tới được, và bảng lân cận hiện một mục chưa đầy đủ hoặc thất bại. Bản ghi trên đường hầm cho thấy gói đi ra, điều này khiến người ta nhìn về đầu xa thay vì lớp địa chỉ.
Trong Windows có triệu chứng thứ hai, trông không liên quan nhưng cùng gốc: một card mạng chỉ còn địa chỉ link-local không có cổng vào dùng được, nên nhận diện mạng không phân loại được kết nối và hồ sơ tường lửa rơi vào công cộng. Đường hầm không phải nguyên nhân; địa chỉ mới là.
Quyết định bằng ba câu hỏi
Lựa chọn giữa sửa subnet và bắc cầu liên kết phụ thuộc ba điều kiện, và bất kỳ điều nào cũng có thể quyết định trước khi bạn mở tệp cấu hình.
| Question | If yes | If no |
|---|---|---|
| Can the far-side host be given a routable address? | Change the host or fix DHCP and route normally | Continue to the next question |
| Does the device accept a static address at all? | Assign one from the site's real prefix | Bridging is the only remaining option |
| Can you accept broadcast crossing the tunnel? | A bridge is viable for a small segment | Replace the device or accept no remote access |
Phần lớn trường hợp dừng ở câu hỏi đầu tiên. Máy hiện địa chỉ link-local thường có nghĩa DHCP không trả lời, cáp hoặc VLAN sai, hoặc ai đó gõ địa chỉ bằng tay. Sửa điều đó rẻ hơn mọi việc với đường hầm, và nó loại bỏ vấn đề cho mọi khách hàng tương lai, không chỉ máy này.
Kiểm tra phía máy chủ trước khi giả định bất cứ điều gì. Chạy ip addr show và ip route trên máy, và arp -n hoặc route print -4 trên máy khách, để xem tiền tố có thực sự tồn tại hay chỉ một mục cũ nói như vậy.
Cầu nối tốn gì khi đó là câu trả lời đúng
Bắc cầu một card mạng vật lý với card TAP khiến máy khách ở xa trở thành một phần của miền quảng bá cục bộ. Khi đó quảng bá và khám phá lân cận hoạt động, và địa chỉ link-local có lại ý nghĩa vì máy khách thực sự cục bộ trên liên kết đó.
Chi phí là thật và cần được nói ra trước khi ai đó đồng ý. Lưu lượng quảng bá đi qua đường hầm, máy khách bị phơi ra phân đoạn cục bộ cho mọi mục đích chứ không chỉ những dịch vụ nó cần, và máy chủ giờ phải chuyển tiếp khung thay vì định tuyến gói. Đó là trao đổi hợp lý cho bàn thí nghiệm hoặc thiết bị không có đường cấu hình định tuyến được, và là mặc định tồi cho truy cập từ xa.
Khi bắc cầu, cần cả hai nửa: cầu trên máy chủ và một tuyến trong hồ sơ máy khách cho biết đích nào ở phía bên kia. Chỉ cầu thì máy khách phải đoán, và chỉ tuyến thì không sửa được lớp địa chỉ.