Tài liệu hướng dẫn thiết lập Phiên bản NAT yêu cầu bạn phải tắt Kiểm tra nguồn/đích trên Phiên bản NAT để phiên bản đó hoạt động. Từ https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck
Mỗi phiên bản EC2 thực hiện kiểm tra nguồn/đích theo mặc định. Cái này
có nghĩa là thể hiện phải là nguồn hoặc đích của bất kỳ
lưu lượng mà nó gửi hoặc nhận. Tuy nhiên, một phiên bản NAT phải có khả năng
gửi và nhận lưu lượng khi nguồn hoặc đích không phải là chính nó.
Do đó, bạn phải tắt kiểm tra nguồn/đích trên NAT
ví dụ.
Về mặt khái niệm, điều đó có ý nghĩa. Nhưng điều tôi tò mò là điều đó thực sự được thực thi như thế nào. Sự hiểu biết không phải là chuyên gia của tôi về NAT là các gói được gửi bởi nút NAT sẽ trông giống như chúng đến từ chính nút NAT, với Địa chỉ IP của nó là nguồn.
Vì vậy, điều duy nhất tôi có thể nghĩ đến là kiểm tra nguồn lưu lượng truy cập, với sơ đồ trong đó AWS đang xem xét giá trị TTL và biết hệ điều hành cho từng phiên bản và nếu đó không phải là TTL bắt đầu mặc định, thì gói sẽ bị từ chối (mà sẽ không phải là một cách tiếp cận mới để chặn NAT). Trên đường đi/SNAT, nó sẽ có giá trị bắt đầu - 1 và trên đường vào/DNAT, nó sẽ nhỏ hơn một giá trị TTL nhận được từ gói từ cổng Internet (có thể trùng khớp nếu người gửi có TTL bắt đầu cao hơn và số bước nhảy vừa phải).
Tuy nhiên, để kiểm tra đích lưu lượng truy cập, làm cách nào để biết rằng một gói đến phiên bản NAT, sẽ có IP công khai của phiên bản đó, không có đích (cuối cùng) của phiên bản NAT đó? Thực tế là phiên bản NAT sẽ cố gắng chuyển tiếp gói sau khi nhận được nó có vẻ là thứ yếu. Có phải nó đang thực hiện một số kết hợp trạng thái phát hiện TTL khi gửi đi để biết rằng một cổng tạm thời trên phiên bản NAT là để nhận phản hồi cho kết nối NAT-ed? Hay là điểm đến đang kiểm tra chỉ có đối với khả năng của NAT để nhận các gói trên mạng con riêng (nơi kiểm tra địa chỉ IP đích dễ dàng)?