Tuyến tách L2TP trên Mac: vì sao địa chỉ máy chủ không hoạt động
setadditionalroutes cần cặp mạng và mặt nạ, thay thế toàn bộ danh sách và đòi hỏi tên dịch vụ chính xác. Kiểm tra bảng trước khi đổ lỗi cho cổng.
VPN kết nối, thanh menu hiển thị, và một máy chủ nội bộ vẫn hết thời gian chờ. Trong tình huống đó có ba nguyên nhân khả dĩ, và cái nào áp dụng tùy thuộc vào cách đường hầm được cấu hình. Hoặc lệnh tuyến dùng địa chỉ máy chủ ở nơi cần địa chỉ mạng, hoặc chính hồ sơ cài đặt tuyến mặc định nuốt mất quyết định, hoặc máy khách là đường hầm PPP cần một móc thay vì khóa hồ sơ. Hãy kiểm tra theo thứ tự đó, vì loại trừ cái đầu tiên là rẻ nhất.
Đích là địa chỉ mạng, mặt nạ mô tả tiền tố
networksetup -setadditionalroutes nhận bộ ba đích, mặt nạ mạng con và cổng. Lệnh gửi một mạng con nội bộ qua đường hầm trông như sau:
sudo networksetup -setadditionalroutes "VPN (L2TP)" 192.168.1.0 255.255.255.0 10.2.0.0
Chú ý đích là gì: địa chỉ mạng, không phải địa chỉ của máy chủ bạn đang cố truy cập. Trong trường hợp sinh ra bài viết này, lệnh giống hệt với 192.168.1.20 ở vị trí đó không làm được gì hữu ích, và thay bằng 192.168.1.0 thì hoạt động ngay. Cùng mặt nạ, cùng cổng, một con số khác. Đó là toàn bộ sự cố ở dạng thu nhỏ.
Lý do là số học, không phải chính sách. Địa chỉ máy chủ ghép với mặt nạ /24 không mô tả 192.168.1.0/24; nó mô tả thứ mà bảng định tuyến không thể giữ hữu ích, nên mục bị từ chối hoặc bỏ qua và đường hầm cuối cùng chở ít hơn bạn dự định.
Khi muốn đúng một máy chủ, hãy dùng địa chỉ máy chủ với mặt nạ 255.255.255.255. Chính các cặp hỗn hợp là nơi sai, không phải việc dùng địa chỉ máy chủ như vậy. Một /32 dựng từ một địa chỉ là tuyến hợp lệ; một /24 dựng từ một địa chỉ là lỗi.
Lệnh thay thế danh sách, và tên là nguyên văn
Hai hành vi khiến người ta bất ngờ ở lần thử đầu. Lệnh đặt toàn bộ danh sách tuyến bổ sung thay vì thêm vào, nên một lệnh thêm một tiền tố sẽ âm thầm xóa những cái khác đã có trước đó. Hãy dựng toàn bộ tập trong một lần gọi.
Tên dịch vụ cũng không phải nhãn bạn tự nghĩ ra. Hãy đọc nó từ công cụ và sao chép chính xác, kể cả hậu tố loại:
networksetup -listallnetworkservices
Một tên khác đi một ký tự không tạo ra lỗi đáng đọc cũng không tạo ra tuyến. Sao chép và dán là cách đúng ở đây, không phải gõ lại từ trí nhớ.
Khi hồ sơ đòi tuyến mặc định
Các tuyến tách thua tuyến mặc định với mọi đích mà chúng không bao phủ rõ ràng, và một hồ sơ L2TP cấu hình cho đường hầm đầy đủ sẽ cài đúng điều đó. Nếu hồ sơ nói mọi thứ đi qua đường hầm, danh sách tuyến bổ sung thay đổi rất ít. Mục của bạn không sai; nó chỉ không liên quan đến những đích mà nó không bao giờ nêu tên. Việc kiểm soát điều này thường nằm ở thiết lập gửi toàn bộ lưu lượng của hồ sơ, không phải ở lệnh tuyến nào.
Hãy quyết định mô hình nào bạn thật sự muốn trước khi sửa thêm mục. Đường hầm đầy đủ có ngoại lệ là cấu hình khác với đường hầm tách có tiền tố cụ thể, và trộn hai thứ lại tạo ra bảng mà không ai đoán được.
Nếu tổ chức yêu cầu đường hầm đầy đủ, hãy ngừng cố tách nó cục bộ và mang yêu cầu đến người sở hữu chính sách. Tuyến thêm cục bộ trái với điều đó rồi cũng sẽ bị gỡ ở lần cập nhật hồ sơ tiếp theo.
Đường hầm PPP cần một móc thay vì khóa
Với đường hầm dựa trên PPP, defaultroute là khóa hồ sơ tạo tuyến mặc định; bỏ nó đi thì máy khách thôi đòi mọi đích. Sau đó các tuyến được thêm sau khi giao diện xuất hiện, thường từ /etc/ppp/ip-up:
#!/bin/sh
/sbin/route add -net 192.168.1.0 -interface ppp0
Giữ tập lệnh thuộc sở hữu root và có thể thực thi, và thêm chốt bảo vệ trên tên giao diện khi máy có nhiều hơn một hồ sơ đường hầm. Một móc chạy cho mọi liên kết PPP và giả định một tên thiết bị là lỗi nhỏ có tuổi thọ dài.
Xác minh việc tách bằng ba yêu cầu
Ghi lại bảng khi đang kết nối và ghi chú giao diện nào phục vụ đường hầm. Sau đó kiểm tra đích cụ thể thay vì tin trạng thái thoát của lệnh đã tạo ra nó. Mã thoát cho biết công cụ có chấp nhận đối số hay không, không cho biết lưu lượng có đi đúng đường bạn định.
Kết thúc bằng ba yêu cầu chứng minh việc tách: một máy chủ nội bộ theo địa chỉ, một tên nội bộ qua trình phân giải nội bộ, và một trang công khai vẫn nên dùng kết nối cục bộ. Nếu trang công khai giờ cũng đi qua đường hầm, việc tách chưa từng xảy ra, bất kể danh sách tuyến nói gì.
Kết nối lại một lần nữa và lặp lại yêu cầu nội bộ, vì các tuyến thêm bằng tay có thể sống lâu hơn giao diện đã làm chúng hợp lệ và âm thầm biến lưu lượng thành hố đen sau khi đường hầm sập.