Máy khách của bạn có thể ping địa chỉ của cổng trong khi mọi tài nguyên phía sau nó vẫn không thể truy cập. Cặp quan sát đó mô tả một máy chủ đang nói chuyện với bạn và một bộ định tuyến không định tuyến, tức là hai vai trò khác nhau trên cùng một máy. Chuyển tiếp là công tắc giữa chúng.

Hai vai trò độc lập, và hai họ địa chỉ cũng vậy.

Trả lời trên địa chỉ của chính nó không chứng minh gì

Khi một gói tin được gửi đến chính cổng, ngăn xếp cục bộ tiêu thụ nó và không có quyết định chuyển tiếp nào diễn ra. Đó là lý do một ping thành công đến địa chỉ đường hầm hoặc giao diện quản trị cho bạn biết daemon còn sống và đường hầm đã lên, nhưng không nói gì về lưu lượng dành cho mạng phía sau hộp. Nhân chỉ xem xét đường chuyển tiếp của nó đối với các gói không được gửi đến chính nó.

Hãy đọc yêu cầu như một vai trò, không phải một cài đặt: máy chủ này phải chuyển gói giữa hai giao diện. Một máy tính xách tay chỉ cần đến một mạng từ xa không bao giờ đảm nhận vai trò đó, còn điểm cuối site-to-site thì luôn đảm nhận. Đọc yêu cầu theo cách đó giải thích vì sao một cấu hình máy khách đang hoạt động lại thất bại khi chuyển sang cổng.

Câu đó cũng áp dụng cho tường lửa phía trước quyết định chuyển tiếp, vốn có chính sách riêng về những gì được phép chuyển tiếp.

Kiểm tra từng họ địa chỉ riêng biệt

Chuyển tiếp IPv4 là một công tắc, còn chuyển tiếp IPv6 là một công tắc khác với hành vi riêng trên từng giao diện. Bật cái thứ nhất không nói gì về cái thứ hai, và một máy khách hai ngăn xếp có thể đến được nửa mạng trong khi phần còn lại vẫn tối. Vì vậy hai máy khách thuộc các họ khác nhau có thể không đồng ý về cùng một cổng. Hỏi máy khách đang lỗi đã dùng họ nào trước khi sửa bất kỳ cài đặt nào. Xác nhận cả hai trước khi kết luận thiết kế định tuyến là sai.

sysctl net.ipv4.ip_forward
sysctl -a --pattern 'net.ipv6.conf.(all|default).forwarding'
nft list ruleset | head -n 40

Trên nhiều bản phân phối, giá trị bạn đọc lúc chạy đã được một dịch vụ hoặc tệp cấu hình đặt vào đó, nên một thay đổi thực hiện bằng lệnh một lần có thể biến mất khi khởi động lại. Tìm tệp sở hữu cài đặt trước khi sửa giá trị lúc chạy.

Chuyển tiếp là một trong bốn yêu cầu

Một luồng được chuyển tiếp hoạt động cần bốn thứ cùng lúc: máy khách phải biết đích nằm sau đường hầm, cổng phải có tuyến đi tiếp, các phản hồi phải có đường quay về, và tường lửa phải cho phép lưu lượng. Việc dịch nguồn thuộc về thiết kế đó như một tùy chọn chứ không phải quy tắc, vì một mạng định tuyến riêng với các đường đối xứng không cần đến nó còn mạng bất đối xứng thường cần. Mỗi một trong bốn thứ đều thất bại độc lập, nên sửa một thứ hiếm khi làm triệu chứng dịch chuyển. Viết cả bốn thứ ra trước khi thay đổi bất kỳ thứ nào.

Các nền tảng đám mây thêm một cân nhắc thứ năm. Một số áp đặt kiểm tra nguồn và đích trên các phiên bản, khiến các gói đã được chuyển tiếp bị bỏ bất kể nhân của máy khách được cấu hình thế nào. Tài liệu mạng của chính nền tảng là thẩm quyền ở đó, không phải kết quả của sysctl bên trong VM.

Kiểm tra từ máy khách, không phải từ cổng

Một bài kiểm tra chạy trong chính shell của cổng không đi qua bất kỳ phần nào của đường chuyển tiếp mà bạn vừa bật. Hãy tạo lưu lượng từ máy khách đang gặp vấn đề, và xác nhận rằng nó đến được một thứ gì đó phía sau cổng chứ không phải chính cổng. Đó là bài kiểm tra duy nhất thực hành vai trò mà bạn đã thay đổi.

Giữ các quy tắc lắng nghe và quy tắc chuyển tiếp tách biệt trong đầu và trong nhật ký thay đổi. Việc mở cổng VPN cho phép máy khách vào dịch vụ; nó không cấp cho họ gì trên mạng phía sau, và hai thứ trông giống hệt nhau trong một danh sách tường lửa đã lớn lên qua nhiều năm.

Nếu các gói đến và dịch vụ từ chối người dùng, bạn đã vượt qua phần mạng. Hãy tiếp tục với việc cấp quyền ứng dụng thay vì mở rộng lại chính sách chuyển tiếp.

Bài viết liên quan