رفع مشکل nf_conntrack: table full, dropping packet
نحوه رفع مشکل nf_conntrack: table full, dropping packet :
شاید برای شما هم پیش آید که زمان دسترسی به سرور مجازی با مشکلات زیر موجه شوید :
1- دسترسی نداشنن به سرور مجازی در زمانی که بارگذاری سرور مجازی به صورت غیر طبیعی کم شده
2- مشاهده packet loss بسیار روی سرور مجازی
3- دسترسی نداستن به یک و یا کلیه IP های سرور مجازی
4- ایجاد اختلال در دسترسی به سرور مجازی از راه SSH
برای بررسی کردن این مشکل اول باید دستور زیر را در SSH برای بررسی کردن خطاهای سرور مجازی وارد کنید :
در سیستم عامل هاس لینوکس قسمتی با عنوان 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
حالا برای مطمئن شدن از اینکه مشکل برطرف شده، دوباره مراحله های 1 و 2 را اجرا کنید.
در شرایط طبیعی عدد مرتبط با packet ها فعلی باید نسبت به ظرفیت nf_conntrack فاصله ی متاسبی باشد.
خروجی زیر را در وضعیت زیر گزارش میکند :
net.nf_conntrack_max = 32280
net.netfilter.nf_conntrack_count = 21068
مواردی که باید به آن ها توجه کنید :
1- اگر دستورهای بالا اجرا نشد، از /sbin/ در اول دستورهای بالا استفاده کنید.
2- اگر امکان افزایش ظرفیت بدون ریسک وجود دارد با اینکه ممکن است در بعضی از شرایط و تنظیمات افزایش این
مقدار موجب بروز مشکلات غیر قابل پیشبینی میشود که در این صورت برای
رفع مشکل nf_conntrack: table full, dropping packet باید یا مدیر سرور مجازی صحبت کنید.