مشاوره رایگان :

رفع مشکل nf_conntrack: table full, dropping packet

رفع مشکل nf_conntrack: table full, dropping packet

رفع مشکل nf_conntrack: table full, dropping packet

نحوه رفع مشکل nf_conntrack: table full, dropping packet :

شاید برای شما هم پیش آید که زمان دسترسی به سرور مجازی با مشکلات زیر موجه شوید :

۱- دسترسی نداشنن به سرور مجازی در زمانی که بارگذاری سرور مجازی به صورت غیر طبیعی کم شده

۲-  مشاهده packet loss بسیار روی سرور مجازی

۳- دسترسی نداستن به یک و یا کلیه IP های سرور مجازی

۴- ایجاد اختلال در دسترسی به سرور مجازی از راه SSH

برای بررسی کردن این مشکل اول باید دستور زیر را در SSH برای بررسی کردن خطاهای سرور مجازی وارد کنید :

tail -f /var/log/messages
اگر در نتیجه خطاهای زیر را که مدام تکرار میشوند را مشاهده کردید به این معنا میباشد که
ظرفیت nf_conntrack پر شده و باید آن را بروز رسانی کنید.
May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet. May 22 02:25:35 cp12-122 kernel: nf_conntrack: table full, dropping packet.
تعریف nf_conntrack :

در سیستم عامل هاس لینوکس قسمتی با عنوان Netfilter که اکثرا با اسم iptables آن را میشناسند، وجود دارد

که بوسیله بخشی از هسته سیستم عامل با اسم nf_conntrack برای بررسی کردن تراکنش های شبکه و اعمال کردن

role های مربوطه میکند.

این خطا اکثرا در هنگام بروز ترافیک سنگین مثل حمله های DOS و DDOS رخ میدهد.

برای بروز کردن ظرفیت nf_conntrack و برطرف کردن این مشکل دستور زیر را در سرور مجازی وارد کرده تا

ظرفیت پیش فرض nf_conntrack تعیین شود.

sysctl -a|grep -i nf_conntrack_max

اکنون با وارد کردن دستور زیر اعداد packet های فعلی که به سوی سرور مجازی میباشد را مشاهده کنید :

sysctl net.netfilter.nf_conntrack_count

اگر که هر دو عدد نزدیک به یکدیگر بودند با packet های فعلی بیشتر از ظرفیت را مشاهده کردید، باید برای

بروز کردن ظرفیت آن اقدام کنید.

با استفاده از دستور زیر ظرفیت nf_conntrack را به عددی که به آن معرفی میکنید افزایش میدهد.

sysctl -w net.netfilter.nf_conntrack_max=66500

حالا برای مطمئن شدن از اینکه مشکل برطرف شده، دوباره مراحله های ۱ و ۲ را اجرا کنید.

در شرایط طبیعی عدد مرتبط با packet ها فعلی باید نسبت به ظرفیت nf_conntrack فاصله ی متاسبی باشد.

خروجی زیر را در وضعیت زیر گزارش میکند :

net.nf_conntrack_max = 32280
net.netfilter.nf_conntrack_count = 21068

مواردی که باید به آن ها توجه کنید :

۱- اگر دستورهای بالا اجرا نشد، از  /sbin/ در اول دستورهای بالا استفاده کنید.

۲- اگر امکان افزایش ظرفیت بدون ریسک وجود دارد با اینکه ممکن است در بعضی از شرایط و تنظیمات افزایش این

مقدار موجب بروز مشکلات غیر قابل پیشبینی میشود که در این صورت برای

رفع مشکل nf_conntrack: table full, dropping packet باید یا مدیر سرور مجازی صحبت کنید.

|