IncludeAllNetworks trong hồ sơ IKEv2 trên Mac làm gì?
Khóa này giới hạn lưu lượng vào đường hầm với các ngoại lệ được nêu tên. Nó không phải tuyến mặc định, nó bỏ qua EnforceRoutes, và cổng phải chuyển tiếp những gì nó nhận.
Trong một hồ sơ IKEv2 gốc, khóa đáng chú ý không phải một ô đánh dấu mà là IncludeAllNetworks, và điều nó thay đổi là phạm vi những gì hệ thống được phép gửi ra ngoài đường hầm. Đặt nó thành 1 và macOS coi đường hầm là đường đi cho gần như toàn bộ lưu lượng IP, trừ một tập ngoại lệ do nó định nghĩa và bạn có thể mở rộng. Vì nó nằm trong từ điển hồ sơ chứ không phải trong menu, nó cũng không mang nghĩa mà hầu hết mọi người tưởng khi đọc cụm gửi toàn bộ lưu lượng.
Khóa này thay đổi gì bên trong ngăn xếp mạng
Không có nó, đường hầm hoạt động như một giao diện mạng có gắn tuyến. Một tuyến mặc định qua giao diện đó bắt phần lớn lưu lượng, và bất kỳ tuyến cụ thể hơn trên giao diện khác vẫn thắng cho tiền tố của nó. Đó là định tuyến bình thường, và đó là lý do chia đường hầm xảy ra gần như tình cờ.
Khi bật khóa, phạm vi không còn là một ưu tiên định tuyến mà trở thành chính sách về việc lưu lượng nào được phép ra ngoài qua bất cứ thứ gì khác đường hầm. Hệ thống vẫn cần tới mạng để giữ kết nối sống, nên chính sách đi kèm các ngoại lệ thay vì giả vờ chúng không tồn tại. Bật nó không bao giờ để máy hoàn toàn không có đường đi hoạt động. Bạn nhận được danh sách đường đi ngắn hơn bạn tưởng, và danh sách đó được ghi trong tài liệu.
Hệ quả thực tế là thêm một tuyến không còn giải thích được kết quả. Nếu một đích vẫn được tới trực tiếp, câu hỏi không phải tuyến nào thắng mà là liệu một ngoại lệ có bao nó không.
Các ngoại lệ là một phần của thiết lập
Apple ghi lại một số ngoại lệ bên cạnh khóa chính: mạng cục bộ, lưu lượng Apple Push Notification, dịch vụ di động và giao tiếp thiết bị. Mỗi cái có điều kiện nền tảng và phiên bản riêng, nên cùng một hồ sơ có thể hành xử khác nhau giữa các bản macOS.
Một số ngoại lệ đó là cố hữu. Lưu lượng cần để thiết lập và duy trì truy cập mạng, kể cả xử lý cổng chặn, phải được cho phép, nếu không máy có thể rơi vào trạng thái không kết nối được gì và cũng không sửa được.
Rồi đến những lựa chọn có chủ ý. Cho phép một máy in gia đình không phải cùng quyết định với cho phép một tiền tố tài nguyên công việc, và cả hai đều khác với việc để APNs truy cập được để thông báo tiếp tục đến. Hãy ghi lại bạn đã bật những cái nào, ngay trong hồ sơ, thay vì phát hiện sau này từ một báo cáo lỗi.
Vì sao nó không giống tuyến mặc định
Tuyến mặc định là một mục trong bảng định tuyến, và bảng định tuyến thua. Một tiền tố cụ thể hơn đánh bại nó, một kết nối trong phạm vi ứng dụng có thể bỏ qua nó, và một giao diện thứ hai với metric tốt hơn có thể tiếp quản mà không ai chạm vào cấu hình VPN.
Hướng dẫn định tuyến của Apple nêu rõ sự khác biệt: tuyến mặc định thông thường có thể bị các tuyến cụ thể hơn ghi đè, trong khi thiết lập phạm vi rộng hơn định nghĩa đường hầm phải chở lưu lượng nào và cái gì được tách ra khỏi đó. Một cái là ưu tiên, cái kia gần với một quy tắc hơn.
Sự khác biệt đó cũng thay đổi cách bạn chẩn đoán rò rỉ. Với tuyến mặc định bạn xem tuyến và metric. Với khóa phạm vi bạn xem bản sửa đổi hồ sơ, các ngoại lệ đã cài và hành vi theo phiên bản, vì bảng định tuyến nằm sau một quyết định được đưa ra trước đó.
EnforceRoutes là một nút khác
EnforceRoutes nghe như phiên bản nghiêm ngặt của cùng ý tưởng, và người ta xếp chồng cả hai với niềm tin nhiều khóa hơn nghĩa là phủ nhiều hơn. Apple ghi rõ rằng nó bị bỏ qua khi IncludeAllNetworks được bật, nên khóa thứ hai không mua được gì trong tổ hợp đó.
Hãy coi nó là lựa chọn thay thế cho các cấu hình không dùng phạm vi rộng hơn, không phải để gia cố. Nếu bạn không giải thích được mỗi khóa làm gì một mình, thêm cả hai chỉ khiến hồ sơ khó xem xét hơn.
Cổng và chủ hồ sơ phải thống nhất điều gì
Một thiết lập phía máy khách không thể buộc máy chủ chuyển tiếp lưu lượng mà nó chưa từng được cấu hình để chuyển. Cổng phải chấp nhận phiên, cấp địa chỉ, cung cấp đường về cho các tiền tố bạn định tới, và phục vụ DNS theo cách bạn chọn. Nếu nó chỉ định tuyến một tiền tố, phạm vi rộng phía máy khách tạo ra lưu lượng đến rồi chết. Một yêu cầu tới đích nằm ngoài phần cổng định tuyến chứng minh điều đó trong một phút.
Đường hầm do ứng dụng sở hữu lại là trường hợp riêng. Nhà cung cấp phải triển khai hoặc phơi ra hành vi được hỗ trợ; cài thêm một hồ sơ IKEv2 gốc không sửa một đường hầm mà ứng dụng khác đã quản lý, và một khóa IKEv2 không phải chỉ thị OpenVPN mà một máy khách khác sẽ đọc.
Về danh sách khóa hiện tại và điều kiện phiên bản, hãy đọc tài liệu tham chiếu payload IKEv2 của Apple thay vì một hồ sơ ai đó sao chép từ nhiều năm trước.
Chấp nhận bản sửa đổi hồ sơ như một tổng thể
Trước khi thay đổi một máy Mac được quản trị từ xa, hãy ghi ra các phiên bản macOS đích, lối ra internet dự kiến, các tiền tố riêng phải còn tới được, và mọi ngoại lệ bạn đang bật. Rồi giữ một đường phục hồi không phụ thuộc vào đường hầm bạn sắp sửa thay đổi.
Hãy thử các yêu cầu công khai mới, yêu cầu riêng, cả hai họ địa chỉ và phân giải tên, và kiểm tra bản sửa đổi đã cài thay vì tệp thiết kế. Nếu thứ gì đó vẫn đi trực tiếp, hãy quyết định xem đó là ngoại lệ đã ghi trong tài liệu, một ngữ cảnh kết nối khác, hay lỗi cấu hình thực sự, rồi đổi một trong ba thứ đó thay vì mở rộng các khóa không liên quan.