Vì sao tuyến host /32 giữ điểm cuối VPN luôn truy cập được
Tuyến host chọn một địa chỉ, không phải một mạng con. Nó có thể giữ điểm cuối của đường hầm truy cập được hoặc ghim một tài nguyên, nhưng sẽ lỗi thời khi địa chỉ thay đổi.
Bạn mở bảng định tuyến sau khi kết nối và thấy một địa chỉ duy nhất được định tuyến qua đường hầm trong khi mạng con xung quanh vẫn đi tới cổng mặc định cục bộ. Mục đó là một tuyến host: một địa chỉ, khớp với tiền tố toàn số một. Nó quan trọng vì các quyết định định tuyến dùng tiền tố khớp dài nhất, nên một /32 có thể lấn át /24 hoặc tuyến mặc định mà không thay đổi cả hai. Việc đó là một ngoại lệ cẩn thận hay một sự cố tương lai phụ thuộc vào địa chỉ mà nó đặt tên và ai duy trì nó.
Một địa chỉ, một mục trong bảng
Tuyến host IPv4 mang tiền tố /32 và tuyến host IPv6 mang /128, nghĩa là mục này có thể khớp chính xác với một địa chỉ đích. Không gì khác trong bảng di chuyển: mạng con bao phủ và tuyến mặc định vẫn ở nguyên chỗ cũ. Mục hẹp thắng cho địa chỉ đó vì tiền tố của nó dài hơn, không phải vì nó được thêm sau.
Tính chất đó khiến tuyến host trở thành một ngoại lệ tốt và một thói quen xấu. Hai mục /32 đặt tên cho cửa trước của một dịch vụ không bao phủ địa chỉ thứ hai, địa chỉ IPv6 hay địa chỉ mà nó chuyển tới vào tháng sau của dịch vụ đó. Một bảng đầy các mục một địa chỉ không giải thích thường có nghĩa ai đó cứ vá quanh một quyết định mạng con thay vì đưa ra quyết định ấy. Hãy đọc độ dài tiền tố trước, rồi hỏi mục đó định bảo vệ điều gì.
Đọc mục từ phía máy khách ra ngoài
Bắt đầu từ máy gặp sự cố, vì cùng một địa chỉ có thể được định tuyến khác nhau trên laptop và trên cổng phía trước nó. Hỏi nhân hệ điều hành sẽ chọn đường nào cho đúng địa chỉ mà ứng dụng dùng, thay vì đọc bảng từ trên xuống. Câu trả lời bao gồm giao diện và bước nhảy tiếp theo, hai thứ cùng nhau tạo thành quyết định.
ip route get 203.0.113.25
ip -6 route get 2001:db8:4::25
ip route show | grep -F 203.0.113.25
Find-NetRoute -RemoteIPAddress 203.0.113.25
Lặp lại truy vấn cho họ địa chỉ mà ứng dụng thực sự chọn, vì máy khách có thể ưu tiên IPv6 và âm thầm bỏ qua một ngoại lệ IPv4. So sánh kết quả trước và sau khi đường hầm được dựng lên, và giữ cả hai đầu ra. So sánh đó cho thấy máy khách đã thêm mục lúc kết nối hay mục đã có từ trước.
Mục thường trú và mục thời gian chạy hỏng theo cách khác nhau. Mục thời gian chạy biến mất cùng phiên, còn mục thường trú sống qua lần khởi động lại và tiếp tục gửi lưu lượng tới một cổng không còn tồn tại.
Ngoại lệ điểm cuối và bẫy đệ quy
Các máy khách VPN thường cài đặt một tuyến host tới địa chỉ bên ngoài của máy chủ qua cổng gốc trước khi chuyển hướng tuyến mặc định. Không có mục đó, các gói đã mã hóa sẽ bị gửi vào chính đường hầm mà chúng đang cố dựng, và kết nối sẽ lặp cho tới khi hết thời gian.
Bẫy xuất hiện khi các mạng con được chấp nhận của đường hầm tình cờ bao gồm địa chỉ điểm cuối đó, hoặc khi một hồ sơ thứ hai thêm vào sau một tuyến rộng hơn. Khi đó mục điểm cuối thua tiền tố dài hơn và phiên sụp ngay khi bắt đầu cho lưu lượng đi qua. Ghi địa chỉ điểm cuối bên cạnh các mạng con được chấp nhận là cách rẻ nhất để nhận ra xung đột trước người dùng. Nó cũng giải thích vì sao cùng một hồ sơ chạy được từ mạng này mà hỏng từ mạng khác.
Xác minh đường đi mà ứng dụng thực sự dùng
Ping thành công tới tên máy chủ là bằng chứng yếu khi ứng dụng kết nối tới địa chỉ khác hoặc họ địa chỉ khác. Xác minh tổ hợp chính xác của địa chỉ, họ, cổng và giao diện, từ máy chạy máy khách.
ip route get 203.0.113.25
sudo nft list ruleset | grep -A 4 'chain output'
curl -sS --max-time 8 -o /dev/null -w '%{remote_ip}
' https://app.example.net
Nếu đường đi sai, hãy quyết định yêu cầu là một mạng hay một địa chỉ trước khi sửa bất cứ thứ gì. Yêu cầu một địa chỉ biện minh cho một tuyến host kèm chú thích và người phụ trách; dịch vụ có địa chỉ quay vòng cần định tuyến dựa trên tên miền hoặc một quyết định mạng con trung thực.
Xóa các mục không còn ánh xạ tới một đích thật và ghi lại những mục bạn giữ. Một /32 không giải thích ba tháng sau không thể phân biệt với lỗi, và người tiếp theo sẽ xóa nó mà không biết điều gì phụ thuộc vào nó.