Bạn đã dựng đường hầm lên, bộ hẹn giờ tái tạo khóa đang đếm ngược, và cả hai chiều vẫn đọc ra không gói tin. Không có gì trong cặp số đó nói rằng đối tác đã từ chối đường hầm của bạn: một CHILD SA đã cài đặt với bộ đếm rỗng là trạng thái bình thường của một liên kết mà chưa có gì khớp với nó. Công việc là chứng minh rằng lẽ ra phải có một gói tin khớp, rồi tìm điểm mà nó rời khỏi đường đi mà các bộ chọn mô tả. Hãy làm một lần, theo thứ tự, và giữ nguyên yêu cầu giữa các lần chạy.

Bộ đếm bằng không thực sự chứng minh điều gì

CHILD SA là một cặp bộ chọn cộng với các khóa và SPI mã hóa lưu lượng nằm trong các dải đó. Cài đặt nó chỉ có nghĩa là hai đối tác đã đồng ý về các dải đó và các khóa được suy ra; nhân sẽ giữ nó hàng giờ mà không có một gói tin nào đến. Vì vậy câu hỏi không bao giờ là đường hầm có tồn tại hay không, mà là liệu có gói tin nào bài kiểm tra của bạn gửi đi rơi vào các dải mà hai đối tác đã thương lượng hay không. Nếu không có gói nào, bộ đếm vẫn bằng không và liên kết hết hạn mà không được dùng khi kết thúc vòng đời của nó.

Sự phân biệt đó thay đổi thứ bạn kiểm tra trước. Một đề xuất bị từ chối, một lỗi xác thực hay một IKE SA đang chết đều xuất hiện trong nhật ký hoặc trong danh sách SA, chứ không phải dưới dạng số không im lặng. Một đường hầm thương lượng sạch rồi sau đó nằm im lại chỉ vào việc khớp, định tuyến hoặc nguồn gốc của lưu lượng kiểm tra.

Gửi một luồng mà bạn có thể mô tả trước khi gửi

Chọn một đích trong mạng con được bảo vệ và mở một kết nối mới tới đó; một trang bạn tải cách đây một giờ có thể được phục vụ từ bộ nhớ đệm, và phản hồi từ bộ nhớ đệm không bao giờ chạm vào đường hầm. Sau đó ghi lại bốn giá trị khi yêu cầu vẫn còn là giả định: địa chỉ nguồn mà ứng dụng sẽ gắn, đích, họ địa chỉ và tên hoặc cặp bộ chọn của SA con bạn đang theo dõi. Bản ghi đó chính là thứ biến một bộ đếm phẳng thành một khẳng định có thể kiểm chứng.

Địa chỉ nguồn là giá trị mà người ta hay bỏ qua, và nó là thứ phá hỏng bài kiểm tra thường xuyên nhất. Một máy tính xách tay có địa chỉ có dây, địa chỉ Wi-Fi và địa chỉ đường hầm có thể gắn bất kỳ địa chỉ nào trong số đó tùy theo việc tra cứu tuyến, và chỉ một địa chỉ có thể nằm trong dải đã thương lượng. Hãy dùng một công cụ cho phép ghim nguồn, chẳng hạn ping -I 10.1.0.5 10.2.0.9 hoặc curl --interface 10.1.0.5, để gói tin không thể lặng lẽ chọn một địa chỉ khác. Khi lần chạy có ghim làm bộ đếm nhúc nhích còn lần chạy không ghim thì không, bạn đã tìm ra vấn đề định tuyến chứ không phải vấn đề IPsec.

Đọc những con số nào, và chúng nằm ở đâu

Trên Linux, ip -s xfrm state in ra từng liên kết với một dòng lifetime current: mà tổng byte và tổng gói tin thuộc riêng về SA đó, tiếp theo là dòng stats: cho số lần phát lại và số lỗi. Trên một đối tác strongSwan, swanctl --list-sas in một dòng in và một dòng out cho mỗi SA con đã cài đặt, mỗi dòng kết thúc bằng số byte và số gói tin; các công cụ stroke cũ gọi cùng cặp đó là bytes_i và bytes_o. Hãy đọc hai chiều riêng rẽ, vì chiều đứng yên chính là phát hiện. Cộng chúng lại sẽ che giấu đúng sự bất đối xứng mà bạn đang tìm.

Cả hai góc nhìn đều theo từng liên kết, nên một lần tái tạo khóa cài một cặp SPI mới và đường cơ sở của bạn trở về không mà không có gì hỏng. Hãy ghi lại SPI bạn đang theo dõi trước khi bộ hẹn giờ tái tạo khóa kích hoạt, nếu không bạn sẽ so một SA mới với một con số cũ. Nếu chiều ra tăng trong khi chiều vào vẫn phẳng, bộ chọn đã khớp nhưng phản hồi không bao giờ trở về, điều này chuyển cuộc điều tra sang việc chuyển tiếp của đối tác và chính sách riêng của nó. Tài liệu cấu hình IKEv2 của strongSwan bao quát vòng đời của SA con và thời điểm tái tạo khóa đằng sau những con số đó.

Điểm quan sát là một biến riêng so với nguồn gốc của gói tin. Một bộ xử lý giảm tải phần cứng có thể tăng bộ đếm của liên kết trong khi bắt gói bằng phần mềm trên giao diện không hiện gì, bởi gói đã giảm tải bỏ qua móc mà việc bắt gói ngồi trên đó, và chiều vào cũng có thể lệch đi theo cách tương tự. Khi hai bên không đồng ý với nhau, hãy dùng bộ đếm để trả lời có gì đã khớp hay chưa và dùng bản bắt gói để trả lời gói tin trông thế nào.

Tuyến đường, bộ chọn và nơi gói tin sinh ra

So sánh ba thứ cạnh nhau: tuyến mà nhân chọn cho đích của bạn, chính sách đưa lưu lượng vào đường hầm, và cặp bộ chọn mà SA con đã thương lượng. ip route get 10.2.0.9 from 10.1.0.5 nêu tên giao diện và nguồn mà nhân sẽ dùng, thường không phải cặp mà bạn giả định. ip xfrm policy hiển thị các mẫu và bộ chọn đã cài đặt cục bộ, trong khi swanctl --list-sas hiển thị những gì đối tác đã đồng ý. Một lần tra cứu đưa gói tin ra ngoài qua giao diện vật lý không bao giờ đến được chính sách, nên bộ đếm không thể nhúc nhích.

Sự không khớp đến dưới vài dạng trông giống hệt nhau khi nhìn từ bộ đếm. Một đích IPv6 nằm ngoài bộ chọn IPv4, một địa chỉ nguồn từ mạng con sai và một chính sách hẹp hơn SA con đều tạo ra cùng một số không. Hãy sửa nguyên nhân hẹp nhất trước, vì mở rộng bộ chọn chỉ để dịch một con số sẽ thay đổi thứ mà đường hầm bảo vệ.

Rồi đến nguồn gốc của gói tin, cái bẫy mà một cổng vào giăng cho chính người vận hành nó. Lưu lượng do cổng tự tạo ra được đối chiếu với chính sách đầu ra, còn gói tin nó chuyển tiếp cho một khách hàng được đối chiếu với chính sách chuyển tiếp, nên một lệnh ping từ chiếc hộp có thể thành công trên một đường mà không khách hàng nào từng đi.

Một thay đổi có thể hoàn tác và một báo cáo chịu được việc rà soát

Chỉ thay đổi một yếu tố, lặp lại yêu cầu y hệt và đọc đúng những bộ đếm đó. Xóa mọi quy tắc tường lửa hay thay toàn bộ bộ chọn cùng lúc sẽ làm một con số nhúc nhích và phá hủy bằng chứng đã cho bạn biết vì sao. Nếu lần chạy thứ hai vẫn hiện số không, bạn đã loại bỏ một giả thuyết thay vì phí mất cả buổi chiều.

Hãy viết phát hiện theo dạng người khác có thể tái tạo: tên SA con, các dải được chấp nhận, nguồn bạn đã ghim, đích bạn đã kiểm tra, chiều vẫn bằng không và SPI bạn đang đọc. Câu đó tách một liên kết không ai dùng khỏi một ứng dụng từ xa đã nhận lưu lượng và từ chối nó. Hãy hoàn tác thay đổi khi nó không làm bộ đếm nhúc nhích, và giữ lại bản ghi; người tiếp theo bắt đầu từ chỗ bạn dừng. Không có gì trong đường hầm phải dựng lại cho tất cả những việc này, và đó chính là ý nghĩa của việc kiểm tra khớp trước khi chạm vào cấu hình.

Bài viết liên quan