Tuyến VPN ghim vào chỉ số giao diện hỏng khi kết nối lại
Tuyến đường gắn với số của bộ điều hợp sẽ chết khi số đó thay đổi. Kiểm tra kho, buộc tiền tố vào hồ sơ, rồi kết nối lại theo thứ tự mới.
Tuyến đường hoạt động suốt nhiều tuần rồi bắt đầu gửi lưu lượng đến hư không, trong khi đích đến không đổi và không có gì bị sửa. Thứ đã thay đổi là con số: một tuyến tạo cho một chỉ số giao diện cụ thể trỏ tới bộ điều hợp không còn tồn tại sau khi kết nối lại, và tiền tố đích vẫn trỏ vào hạ tầng đã bị thay thế. Thêm tính bền vững cho lệnh đó không giúp gì, vì vấn đề chưa bao giờ là tuyến có sống sót qua lần khởi động lại hay không. Giải pháp là buộc ý định vào kết nối, thứ theo thiết kế vẫn sống sót qua các lần thay bộ điều hợp.
Kiểm tra xem tuyến thực sự trỏ tới đâu
Bắt đầu bằng việc đọc mục tuyến và các bộ điều hợp cạnh nhau. Một tuyến có bước nhảy tiếp theo trên giao diện VPN và chỉ số không khớp với bộ điều hợp hiện tại nào chính là dấu hiệu của lỗi này; cùng tiền tố trên chỉ số khác hoặc là phần sót lại hoặc là tuyến bạn thực sự muốn. Đọc cả hai danh sách trước khi sửa bất kỳ cái nào, vì phép so sánh đáng quan tâm là giữa con số trong tuyến và những con số đang tồn tại bây giờ. Nếu chỉ số của tuyến xuất hiện trong danh sách bộ điều hợp thì chỉ số không phải vấn đề của bạn và việc tìm kiếm chuyển sang số đo, chính sách hoặc đầu xa. Nếu nó không xuất hiện thì không còn gì để chẩn đoán: tuyến đang gắn vào hạ tầng không còn tồn tại.
Get-NetRoute -DestinationPrefix '10.77.0.0/16' | Select-Object DestinationPrefix, NextHop, InterfaceIndex, Store
Get-NetAdapter | Where-Object InterfaceDescription -like '*VPN*' | Select-Object Name, InterfaceIndex, InterfaceDescription
Get-VpnConnection -Name 'Lab VPN' | Select-Object Name, ServerAddress, SplitTunneling
Cột Store phân biệt một mục tồn tại qua các lần khởi động lại với một mục biến mất cùng bộ điều hợp, và khác biệt đó quyết định lỗi có quay lại vào ngày mai hay không. Một mục trong kho bền vững trỏ tới chỉ số đã biến mất là trường hợp tệ nhất, vì nó sống qua các lần khởi động lại mà không bao giờ khớp với bất cứ thứ gì.
Buộc tiền tố vào hồ sơ, không phải vào bộ điều hợp
VPN gốc của Windows có thể mang danh sách tuyến riêng, nên kết nối dùng lại bộ điều hợp đúng mỗi khi nó xuất hiện. Khi đó tuyến đi theo hồ sơ thay vì một con số bạn từng quan sát một lần, và không tập lệnh nào phải đoán chỉ số sau mỗi lần quay số. Thêm tiền tố cũng có thể đảo ngược bằng lệnh xóa tương ứng, giúp thay đổi vẫn kiểm toán được. Tiền tố được lưu cùng kết nối thay vì trong tập lệnh khởi động, nên hồ sơ sao chép sang người dùng khác mang theo ý định.
Add-VpnConnectionRoute -ConnectionName 'Lab VPN' -DestinationPrefix '10.77.0.0/16' -PassThru
Tài liệu tham chiếu của Add-VpnConnectionRoute ghi lại liên kết với kết nối, và phạm vi của sổ điện thoại quan trọng: hồ sơ cho từng người dùng và hồ sơ cho mọi người dùng là những đối tượng khác nhau. Cơ chế này thuộc về ứng dụng VPN của chính Windows, nên bộ điều hợp của nhà cung cấp do dịch vụ riêng của nó quản lý có thể lấy tuyến từ một nguồn chính sách hoàn toàn khác.
Dọn các tuyến cũ trước khi thêm tuyến mới
Hai tuyến cùng tiền tố và chủ sở hữu khác nhau tệ hơn một tuyến sai, vì bên thắng phụ thuộc vào các số đo mà không ai ghi lại. Xem xét những gì đã tồn tại cho tiền tố, kể cả các mục trong kho bền vững, và chỉ xóa những gì thuộc lần thử thất bại. Phần sót lại từ thiết kế trước là phổ biến trong lĩnh vực này, vì tuyến hỏng thường đã thay thế một thứ đang hoạt động. Ghi lại mục nào thuộc kết nối nào trước khi xóa bất cứ thứ gì, và giữ danh sách trong hồ sơ thay đổi.
Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like '10.77.*'
Remove-NetRoute -DestinationPrefix '10.77.0.0/16' -NextHop '0.0.0.0' -Confirm:$false
Khớp tiền tố, bước nhảy tiếp theo, kho và chủ sở hữu cùng lúc thay vì xóa mọi thứ trông giống nhau. Một kết nối khác có thể phụ thuộc hợp pháp vào một phần không gian đó, và việc xóa tràn lan biến một sửa chữa gọn gàng thành sự cố hỗ trợ.
Kết nối lại theo thứ tự khác
Tái hiện điều kiện thay vì hy vọng lần thử đầu tiên là đại diện. Ngắt kết nối, kết nối lại và xác nhận đường đi đã chọn tới cùng tài nguyên từ xa trong khi đường hầm đang hoạt động; nếu có nhiều VPN tham gia, hãy bật chúng theo thứ tự khác và xem đường đi được chọn có thay đổi không. Thứ tự là biến mà hầu hết mọi người bỏ qua, và chính nó phơi ra một tuyến gắn với kết nối sai.
rasdial 'Lab VPN' /disconnect
rasdial 'Lab VPN'
Find-NetRoute -RemoteIPAddress 10.77.5.20 | Select-Object -First 1
Kết quả bạn muốn không phải là bộ điều hợp giữ nguyên con số một lần. Mà là tuyến xuất hiện với bất kỳ con số nào kết nối nhận được, mỗi lần, và biến mất khi kết nối đóng lại. Kết nối lại hai lần là cách rẻ nhất để phân biệt những kết quả đó.
Biết điều tuyến không thể làm
Một tuyến từ hồ sơ cung cấp một đường đi và không gì khác. Nó không mở tường lửa từ xa, không tạo tuyến quay lại ở đầu xa và không giải quyết hai trang dùng cùng dải địa chỉ; mỗi thứ đó là một cấu hình riêng với chủ sở hữu riêng. Vì vậy xác nhận đường đi là khởi đầu của bài kiểm tra chấp nhận chứ không phải toàn bộ bài kiểm tra.
Giữ danh sách tiền tố cùng hồ sơ và ghi lại nó được thêm dưới phạm vi nào, để người tiếp theo có thể đọc thiết kế dự định thay vì suy ra từ bảng tuyến. Những tuyến chỉ tồn tại trong ký ức của ai đó là những tuyến bị dựng lại sai sau lần kết nối lại tiếp theo. Một dòng bình luận trong ghi chú triển khai tốn ít hơn một buổi chiều phát hiện lại.