gateway-ping-timeout trong NetworkManager thực sự chờ điều gì
Một lần kích hoạt từ nmcli qua thời gian chờ: một phản hồi hoặc hết thời gian sẽ kết thúc nó, và cả hai đều không chứng minh đường hầm hay ứng dụng đã sẵn sàng.
Bạn thấy connection.gateway-ping-timeout trong một thảo luận về chiếc laptop khởi động trước khi mạng dùng được, bạn tăng giá trị đó lên, và có gì đó thay đổi. Việc thay đổi có giúp ích vì lý do bạn nghĩ hay không là câu hỏi khác. Câu trả lời bắt đầu từ việc quá trình kích hoạt thực sự làm gì trong lúc bộ hẹn giờ đó chạy, và từ việc thời gian chờ có hai cách kết thúc.
Theo dõi một kết nối từ dòng lệnh và ý nghĩa trở nên cụ thể.
Theo dõi một lần kích hoạt
Hãy bắt đầu từ kết nối đã lưu chứ không phải giá trị mặc định toàn cục, vì đây là thuộc tính của từng kết nối. Chỉ thêm --show-secrets nếu bạn thực sự cần; bản thân thiết lập không phải là bí mật.
nmcli -f connection.id,connection.gateway-ping-timeout connection show
nmcli connection show "Wired connection 1" | grep gateway-ping
Khi thuộc tính bằng không, tức giá trị mặc định đã được ghi trong tài liệu, quá trình kích hoạt tiếp tục ngay khi việc gán địa chỉ xong. Đặt một giá trị dương và quá trình kích hoạt cấu hình IP sẽ chờ cho đến khi có phản hồi từ cổng hoặc hết thời gian.
Sau đó hạ rồi nâng lại kết nối trong khi quan sát luồng sự kiện. Thứ tự bạn thấy chính là công việc của thiết lập này: trạng thái thiết bị, gán địa chỉ, thời gian chờ, và cuối cùng là trạng thái đã kích hoạt mà các dịch vụ phụ thuộc thường được sắp xếp theo.
Thời gian chờ có hai cách kết thúc
Cả hai cách kết thúc đều quan trọng, nhưng hầu hết mọi người chỉ nhớ một. Phản hồi từ cổng kết thúc thời gian chờ sớm hơn, và hết thời gian cũng kết thúc nó, bất kể có thứ gì trả lời hay không. Thuộc tính này không đòi hỏi ping thành công trước khi quá trình kích hoạt hoàn tất.
Câu đó làm rõ nhiều nhầm lẫn về laptop ở khách sạn và hội nghị, nơi cổng chặn thường từ chối ICMP cho đến khi bạn đăng nhập. Kết nối vẫn được kích hoạt sau khi hết thời gian; nó chỉ làm vậy muộn hơn mức cần thiết, và mọi dịch vụ được sắp xếp sau kết nối đều chờ theo.
Đây cũng không phải kiểm tra sự sống. Không có gì trong mô tả bắt đầu ping cổng sau khi kết nối đã lên, và không có gì ngắt một hồ sơ đang hoạt động chỉ vì một lần ping sau đó thất bại. Nếu bạn cần phát hiện mất gói, việc đó thuộc về giao thức hoặc chủ sở hữu đường hầm, không thuộc về một thuộc tính chỉ chạy một lần khi kích hoạt.
Hai đối tượng, một thiết lập
Hồ sơ cơ sở có dây và hồ sơ VPN là hai đối tượng cấu hình riêng biệt, và đặt thuộc tính trên cái này không ảnh hưởng đến cái kia. Một hồ sơ VPN nêu tên kết nối cơ sở không thừa hưởng bất kỳ thiết lập kích hoạt nào của nó, đó là lý do giá trị bạn đã đổi có thể trông như không có tác dụng với thứ bạn đang theo dõi.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show "Office VPN" | grep gateway-ping
Đọc UUID chứ không phải tên. Tên bị trùng sau khi cài lại hoặc khôi phục hồ sơ, và hai kết nối có cùng tên hiển thị sẽ khiến bạn sửa nhầm tệp trong khi tệp thật vẫn không đổi.
Bản NetworkManager đã cài cũng quan trọng. Hành vi của plugin và cách một loại kết nối ánh xạ thuộc tính này vào các bước kích hoạt của nó khác nhau, nên hãy thử trên phiên bản bạn triển khai thay vì cho rằng bài viết tìm được áp dụng nguyên vẹn.
Điều thời gian chờ không thể chứng thực
Đây là phần tốn nhiều thời gian nhất. Phản hồi từ router cục bộ chỉ chứng minh rằng một máy chủ đã trả lời một lần dội ICMP trong lúc kích hoạt. Nó không chứng minh điểm cuối VPN phân giải được, danh tính của máy khách được chấp nhận, các tuyến riêng đã được cài, trình phân giải của văn phòng trả lời, hay ứng dụng bạn quan tâm sẽ hoạt động.
Đó là những phụ thuộc riêng với bằng chứng riêng. Một cổng có thể trả lời trong khi DNS thất bại, và một cổng có thể âm thầm bỏ ICMP theo chính sách trong khi mọi đường đi của ứng dụng đều hoạt động. Vì vậy đặt điều kiện trên thuộc tính này là phỏng đoán tầng nào đang trễ, không phải đo lường nó.
Nếu bạn đang chờ một dịch vụ phụ thuộc, hãy nêu nó cần gì. Địa chỉ được cấp được trả lời bằng việc gán địa chỉ. Đường hầm được trả lời bằng trạng thái của chính nó. Tên riêng được trả lời bằng một truy vấn. Ứng dụng được trả lời bằng ứng dụng, và không câu trả lời nào trong số đó đến từ một bộ hẹn giờ mang tên cổng.
Nếu bạn thay đổi, hãy ghi lại lý do
Ghi lại giá trị trước đó và lý do trước một thay đổi được phê duyệt, rồi đặt nó trên kết nối cụ thể chứ không phải mọi nơi. Thời gian chờ dài hơn sẽ dịch chuyển thời điểm kích hoạt cho mọi thứ được sắp xếp sau kết nối đó, điều có thể khiến một hệ thống chậm trông ổn và một hệ thống nhanh trông hỏng.
Một cái bẫy lịch sử đáng được nêu tên: một giá trị như thế đôi khi bị đổi để trình soạn thảo cũ chấp nhận hồ sơ. Nếu đó là câu chuyện thật, bạn có hai sự kiện, không phải một. Trình soạn thảo đã lưu, và chính sách mạng đang chạy đã thay đổi. Hãy sửa trình soạn thảo hoặc plugin và đặt bộ hẹn giờ trở lại.
Mã nguồn NetworkManager định nghĩa thuộc tính này là độ trễ của việc gán địa chỉ IP thành công cho đến khi có phản hồi từ cổng hoặc hết thời gian, với mặc định là không, và định nghĩa thiết lập kết nối là tài liệu tham chiếu cần đọc trước khi tin vào hành vi được kể lại.