Điểm:0

ICMP TTL vượt quá số lần trả lời với IP đích từ bộ định tuyến NAT

lá cờ gh

Tôi đang chơi với nftables và quan sát hành vi kỳ lạ mà tôi không thể giải thích được.

Tôi có ba máy ảo, nguồn, bộ định tuyếnđiểm đến. Tất cả đều chạy Oracle EL 8.5 mới nhất và được cấu hình thông qua nft.

  • nguồn có giao diện mạng duy nhất enp0s8 với IP 10.111.111.1 trong /24 mạng con.
  • bộ định tuyến có hai giao diện mạng: enp0s8 với IP 10.111.111.2 trong /24 mạng con và enp0s9 với IP 10.100.100.2 trong /24 mạng con.
  • điểm đến có giao diện mạng duy nhất enp0s8 với IP 10.100.100.1 trong /24 mạng con.

Mục tiêu của tôi là có điểm đến ẩn từ nguồn đứng sau NAT, với IP 10.200.200.1. Điều tôi đã làm:

  1. Đã bật định tuyến IP trên bộ định tuyến.
  2. Đã chặn truy cập trực tiếp từ 10.111.111.0/24 đến 10.100.100.0/24 trên bộ định tuyến.
  3. Đã thêm tuyến tĩnh 10.200.200.0/24 qua 10.111.111.2 (bộ định tuyến) trên nguồn.
  4. Đã cấu hình NAT trên bộ định tuyến như sau:
        định tuyến trước chuỗi {
                gõ nat hook prerouting ưu tiên dstnat; chính sách chấp nhận;
                iifname "enp0s8" ip Daddr 10.200.200.1 dnat thành 10.100.100.1
        }

        chuyển tiếp chuỗi {
                gõ nat hook postrouting ưu tiên srcnat; chính sách chấp nhận;
                ip saddr 10.100.100.1 oifname "enp0s8" chuyển sang 10.200.200.1
        }

Mọi thứ hoạt động như mong đợi, điểm đến có thể truy cập từ nguồn chỉ là 10.200.200.1 chứ không phải 10.100.100.1 (chắc chắn, tôi biết làm việc dưới quyền root là không tốt, đó chỉ là máy ảo thử nghiệm):

[root@source ~]# ping 10.100.100.1
PING 10.100.100.1 (10.100.100.1) 56(84) byte dữ liệu.
^C
--- Thống kê ping 10.100.100.1 ---
Truyền 15 gói, nhận 0 gói, mất gói 100%, thời gian 14320ms

[root@source ~]# ping 10.200.200.1
PING 10.200.200.1 (10.200.200.1) 56(84) byte dữ liệu.
64 byte từ 10.200.200.1: icmp_seq=1 ttl=63 time=0,554 ms
64 byte từ 10.200.200.1: icmp_seq=2 ttl=63 time=1,80 ms
64 byte từ 10.200.200.1: icmp_seq=3 ttl=63 time=1,84 ms
^C
--- Thống kê ping 10.200.200.1 ---
Truyền 3 gói, nhận 3 gói, mất gói 0%, thời gian 2043ms
rtt tối thiểu/trung bình/tối đa/mdev = 0,554/1,397/1,836/0,598 ms

Nhưng khi tôi thực hiện theo dõi hoặc gửi ping với TTL=1, thư trả lời có IP 10.200.200.1, thay vì bộ định tuyếnIP của 10.111.111.2:

[root@source ~]# theo dõi 10.200.200.1
theo dõi tới 10.200.200.1 (10.200.200.1), tối đa 30 bước nhảy, gói 60 byte
 1 10.200.200.1 (10.200.200.1) 0,752 mili giây 0,679 mili giây 0,984 mili giây
 2 10.200.200.1 (10.200.200.1) 1.181 mili giây 1.130 mili giây 1.070 mili giây
[root@source ~]# ping 10.200.200.1 -c 1 -t 1
PING 10.200.200.1 (10.200.200.1) 56(84) byte dữ liệu.
Từ 10.200.200.1 icmp_seq=1 Đã vượt quá thời gian tồn tại

--- Thống kê ping 10.200.200.1 ---
Đã truyền 1 gói, nhận 0, lỗi +1, mất gói 100%, thời gian 0ms

Nếu tôi làm tương tự với bất kỳ địa chỉ nào khác trong mạng con 10.200.200.0/24, các câu trả lời có IP chính xác:

[root@source ~]# ping 10.200.200.2 -c 1 -t 1
PING 10.200.200.2 (10.200.200.2) 56(84) byte dữ liệu.
Từ 10.111.111.2 icmp_seq=1 Đã vượt quá thời gian tồn tại

--- Thống kê ping 10.200.200.2 ---
Đã truyền 1 gói, nhận 0, lỗi +1, mất gói 100%, thời gian 0ms

Ai đó có thể vui lòng làm rõ lý do tại sao trong trường hợp đầu tiên ICMP TTL vượt quá trả lời có IP của đích cuối cùng và trong trường hợp thứ hai, nó có IP của bộ định tuyến không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.