Xử lý lỗi “ip_conntrack: table full, droping packet” trên Linux

1 Giới thiệu

ip_conntrack là một module mà iptable dùng để theo dõi các kết nối đến server.

ip_contrack sử dụng một bảng để quản lý và kích thước của bảng này được định nghĩa trong file ip_conntrack_max trên CentOS 5 và nf_conntrack_max trên CentOS 6.

Khi số lượng kết nối tăng cao sẽ nhận được thông báo “ip_conntrack: table full, dropping packet” trong file /var/log/messages.
Tức bảng này đã bị đầy, do đó các kết nối đến server sẽ bị iptable huỷ bỏ ( drop ).

2. Khắc phục lỗi

Ta có điểu chỉnh tăng kích thước của bảng lên tùy thuộc vào kích thước bộ nhớ ( RAM) trên server để khắc phục lỗi trên.

Giá trị mặc định được tính theo công thức

CONNTRACK_MAX = RAMSIZE (in bytes) / (16384 *(x / 32)) trong đó x là là số bit của hệ điều hành. Giá trị này không nhỏ hơn 128 và hệ thống có RAM lớn 1GB có giá trị là 65536.

CentOS 5

Kiểm tra giá trị ip_conntrack_max đang sử dụng
# cat /proc/sys/net/ipv4/ip_conntrack_max
Ví dụ thay đổi giá trị ip_conntrack_max thành 1131072
# echo 1131072 > /proc/sys/net/ipv4/ip_conntrack_max

Kiểm tra số lượng session hiện thời:
# wc -l /proc/net/ip_conntrack

CentOS 6

Kiểm tra giá trị ip_conntrack_max đang sử dụng
# sysctl net.nf_conntrack_max

Ví dụ thay đổi giá trị net.nf_conntrack_max thành 100000
# sysctl -w net.nf_conntrack_max = 100000

Thay đổi giá trị này vĩnh viễn bằng cách sửa file /etc/sysctl.conf thêm dòng:
net.nf_conntrack_max = 100000

Kiểm tra số lượng session hiện thời:
# wc -l /proc/net/nf_conntrack

Đánh giá bài viết
Was this article helpful?
Đánh giá
Đánh giá bài viết
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận