Điểm:1

Làm cách nào để làm mới thời gian chờ phần tử đã đặt trong nftables?

lá cờ us

Làm cách nào để làm mới giá trị hết thời gian chờ/hết hạn của phần tử đã đặt bằng nft trước khi nó hết hạn?

Việc thêm một phần tử hiện có vào tập hợp không đặt lại giá trị hết thời gian chờ/hết hạn:

nft thêm phần tử ip mytable myset { 10.10.10.1 hết thời gian 60 giây }
#đợi 10s
nft add element ip mytable myset { 10.10.10.1 timeout 60s hết hạn 60s }
đặt danh sách nft ip mytable myset

Với iptables/ipset, tôi có thể làm mới thời gian chờ bằng cách thêm các phần tử hiện có:

ipset thêm myset 10.10.10.1 hết thời gian chờ 60
#đợi 10s
ipset thêm myset 10.10.10.1 -thời gian chờ tồn tại 60
danh sách ipset myset
Điểm:2
lá cờ cl
A.B

Trong khi thay thế quy tắc nguyên tử được ghi lại:

Thay thế quy tắc nguyên tử

Bạn có thể dùng -f tùy chọn để cập nhật nguyên tử bộ quy tắc của bạn:

%nft-f tập tin

nó không được ghi lại rõ ràng cho thành phần thay thế, nhưng đó thực sự chỉ là một trường hợp thay thế quy tắc. Người ta có thể xóa và thêm lại phần tử trong một giao dịch nguyên tử được giới thiệu với -f: điều này sẽ thay thế mục cũ hơn bằng mục mới hơn và thời gian hết hạn được cập nhật của nó mà không bao giờ làm mất phần tử tạm thời.

Vì vậy, thay vì làm như sau, điều này sẽ không phải là nguyên tử vì giữa hai lần gọi nft, phần tử sẽ tạm thời không tồn tại và các quy tắc tùy thuộc vào bộ này sẽ tạm thời không khớp:

# nft xóa phần tử ip mytable myset '{ 10.10.10.1 }'
# nft add element ip mytable myset '{ 10.10.10.1 hết thời gian 60 giây hết hạn 60 giây }'

điều này nên được thực hiện bằng cách sử dụng -f và một tệp đầu vào (- đứng tiêu chuẩn được tính là tệp đầu vào hợp lệ):

# nft -f - <<'EOF'
xóa phần tử ip mytable myset { 10.10.10.1 }
thêm phần tử ip mytable myset { 10.10.10.1 hết thời gian 60 giây }
EOF

nơi phần tử sẽ không bao giờ ngừng tồn tại bởi vì nó là một sự thay đổi nguyên tử.

Như thường lệ với điều này nft xây dựng, nếu một người muốn thực hiện việc này một cách bình thường, mà không cần biết phần tử đã tồn tại hay chưa và không chạm vào các phần tử khác, thì nên thêm, xóa và thêm lại phần tử đó, bởi vì trong khi thêm phần tử hiện có không phải là lỗi, việc xóa một yếu tố bị thiếu sẽ là một lỗi:

# nft -f - <<'EOF'
thêm phần tử ip mytable myset { 10.10.10.1 }
xóa phần tử ip mytable myset { 10.10.10.1 }
thêm phần tử ip mytable myset { 10.10.10.1 hết thời gian 60 giây }
EOF

Nó vẫn là một giao dịch nguyên tử duy nhất.


Ghi chú bổ sung

  • từ đường dẫn gói

    Khi thực hiện việc này từ đường dẫn gói, có sự khác biệt giữa thêm @myset sẽ chỉ đặt thời gian chờ khi tạo phần tử mới, nhưng sẽ không cập nhật thời gian chờ của phần tử đã tồn tại, cho phép phần tử đó hết thời gian chờ trong toàn bộ thời gian sau đó và cập nhật @myset cái nào đặt thời gian chờ trong mọi trường hợp.

  • cập nhật quy tắc nguyên tử không giới hạn ở các phần tử nhưng có thể được sử dụng ở mọi cấp độ

    Ví dụ: điều tương tự có thể được thực hiện ở cấp độ đã đặt nếu có một yếu tố duy nhất cần quan tâm:

    # nft -f - <<'EOF'
    thêm bộ ip mytable myset { gõ ipv4_addr; cờ hết thời gian chờ; }
    xóa bộ ip mytable myset
    thêm bộ ip mytable myset {
        gõ ipv4_addr
        cờ hết thời gian chờ
        các phần tử = { 127.0.0.1 hết thời gian 1 phút }
    }
    EOF
    

    Trên thực tế, ví dụ trên có thể sẽ thất bại vì có thể có một quy tắc tham chiếu đến tập hợp, vì vậy không được phép xóa nó ngay cả trong khi giao dịch (thay vào đó, người ta có thể viết lại toàn bộ bảng, với thêm bảng ip mytable, xóa bảng ip mytable, thêm bảng ip mytable {...). Nếu tập hợp được biết là tồn tại trước đó, hãy xóa nó trước khi thêm lại phần tử đơn lẻ là đủ:

    # nft -f - <<'EOF'
    flush set ip mytable myset
    thêm phần tử ip mytable myset { 127.0.0.1 hết thời gian 1 phút }
    EOF
    

Tất nhiên một tập tin thực tế có thể được sử dụng thay vì - <<'EOF'...EOF.

Đă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.