Bandwidth Manager Troubleshooting
قسمت مدیریت پهنای باند کار نمی کند !
- ابتدا به قسمت Active Leaves List رفته و ببنید که در مقدار Recv Rate و Send Rate به درستی نشان داده می شود یا خیر
- ۱. در صورتی که هیچ کاربرای در آن لیست وجود نداشته باشد یعنی پهنای باندی برای کاربران ست نشده است
- ۱. چک کنید درخت پهنای باند ساخته شده است !!!
- ۲. شارژ آن کاربر را چک نمایید. و قست BW آن را بررسی کنید
- ۲. در صورتی کاربران لیست شده اند ولی مقدار دریافت و ارسال آن صفر است
- ۱. قسمت Interface List را چک نمایید آیا مقدار Hostname به درستی ست شده است ؟ Interface Name چه طور ؟ آیا Hostname که انتخاب نموده اید را در سرور IBSng تعریف نموده اید ؟(/etc/hosts) آیا دو سرور را به هم Trust کرده اید ؟ اگر جواب هر کدام از این سوال ها خیر است راهنمای تنظیمات پهنای باند را مجدد مطالعه نمایید و طبق دستور عمل تنظیمات را انجام دهید
- ۲. آیا این سرور مدیریت پهنای باند در مسیر عبور کاربران قرار دارد ؟ با دستور tcpdump می توانید از عبور داده ها از Hostname و Interface مورد نظر مطمئن شوید. در غیر این صورت با مدیر شبکه خود مشورت کنید.
- ۳. IP یک کاربر که میزان دریافت و ارسال آن صفر است و مطمئن هستید هم اکنون در حال استفاده از اینترنت می باشد را از لیست انتخاب کنید و دستور iptables را با option های زیر اجرای کنید :
#iptables -t mangle -nL Chain PREROUTING (policy ACCEPT) target prot opt source destination IBSng_PREROUTING all -- 0.0.0.0/0 0.0.0.0/0
Chain INPUT (policy ACCEPT) target prot opt source destination
Chain FORWARD (policy ACCEPT) target prot opt source destination
Chain OUTPUT (policy ACCEPT) target prot opt source destination
Chain POSTROUTING (policy ACCEPT) target prot opt source destination IBSng_POSTROUTING all -- 0.0.0.0/0 0.0.0.0/0
Chain IBSng_POSTROUTING (1 references) target prot opt source destination MARK all -- 0.0.0.0/0 192.168.1.10 MARK xset 0x286d/0xffffffff
Chain IBSng_PREROUTING (1 references) target prot opt source destination MARK all -- 192.168.1.10 0.0.0.0/0 MARK xset 0x286c/0xffffffff
توجه: IBSng_POSTROUTING برای کنترل دریافت داده و IBSng_PREROUTING برای کنترل ارسال داده ها می باشد
این خروجی نشان می دهد که برنامه بر روی این IP نشانه ای گذاشته است تا آن را توسط برنامه مدیرت پهنای باند شناسایی کند
برای اینکه مطمئن شویم که آیا برنامه مدیریت پهنای باند بر روی این نشانه محدودیت اعمال کرده است دستور زیر را وارد کنید :
tc filter show dev eth0 | grep 0x286d filter parent 1: protocol ip pref 1 fw handle 0x286d classid 1:188
دقت کنید در اینجا eth0 به عنوان Interface ورودی دیتا است. همانطور که نتیجه نشان می دهد یک فیلتر برای این نشانه در برنامه مدیرت پهنای باند ساخته شده است. برای اینکه مطمئن شوید این نشانه عضو کلاسی است که شما در وب تعیین کرده اید دستور زیر را وارد کنید :
tc class show dev eth0 | grep 1:188 class htb 1:188 parent 1:13 prio 1 rate 512000bit ceil 512000bit burst 1599b cburst 1599b
و این کلاس مطابق برگی است که در IBSng تعریف شده است (REC-512k) با حداقل (rate) به میزان ۲۵۶ و حداکثر (ceil) به میزان ۲۵۶
- ۳. اگر تمام مراحل بالا درست است و باز هم bandwidth manager به صورت غیر منطقی عمل می کند، چک کردن off بودن tso option در کارت شبکه به شما کمک خواهد کرد:
ethtool -k <interface name>
به عنوان مثال:
# ethtool -k eth0
Offload parameters for eth0: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp segmentation offload: on udp fragmentation offload: off generic segmentation offload: on
در صورت on بودن این option به صورت زیر عمل نمایید:
ethtool -K <interface name> tso off
این command را در ect/rc.local/ وارد نموده، سرور را restart کنید. در صورتی که مشکلی ایجاد شود، این کارت شبکه برای اعمال bandwidth manager مناسب نیست و باید تعویض گردد.