خادم لينكس هاك -- كيفية تحديد النطاق الترددي مع لينكس ، والتعاون التقني ، وiproute2!

أنا لم تذكر وظيفة سريعة على كيفية كتابة موازنة التحميل النصي (أو التحكم بعرض النطاق الترددي)؟
حسنا ، لقد وجدت اليوم آخر النصي باردا للحد من عرض النطاق الترددي ، واعتقد ان هذا واحد إذا كان أكثر تعقيدا ولكن إذا كنت في حاجة إليها ، قد يكون من المفيد إلى حد كبير.
هنا الرمز عبر Adamsinfo.com :
# Set some variables
#!/bin/bash
EXT_IFACE=”eth0″
INT_IFACE=”eth1″
TC=”tc”
UNITS=”kbit”
LINE=”10000″ #maximum ext link speed
LIMIT=”5000″ #maximum that we'll allow
# تعيين بعض المتغيرات لفئات "الفردية" التي سنستخدم لسرعة تحميل الشكل الداخلي ، أي تشكيل eth0
CLS1_RATE = "200" # أولوية عالية حركة الطبقة قد 200kbit
CLS2_RATE = "300" # الأولوية الطبقة المتوسطة قد 300kbit
CLS3_RATE = "4500" # السائبة الطبقة قد 4500kbit
# (سوف نضع تلك التي يمكن أن تقترض منه في وقت لاحق)
# تعيين بعض المتغيرات لفئات "الفردية" التي سنستخدم لتشكيل الداخلية سرعة التحميل ، أي تشكيل eth1
INT_CLS1_RATE = "1000" # الأولوية
INT_CLS2_RATE = "4000" # السائبة
# حذف qdiscs الحالية.
أي تنظيف
$ () qdisc ح دل ديف $ () INT_IFACE الجذرية
$ () qdisc ح دل ديف $ () EXT_IFACE الجذرية
# إرفاق qdiscs الجذرية.
نحن نستخدم HTB هنا ، وربط هذا qdisc إلى كل من الواجهات.
سنقوم تسميته "1:0"
$ (ح) qdisc إضافة ديف $ () INT_IFACE معالجة جذور 1:0 htb
$ (ح) qdisc إضافة ديف $ () EXT_IFACE معالجة جذور 1:0 htb
# إنشاء فصول الجذرية ، مع أقصى حدود المعرفة
# واحد لeth1
$ (ح) الطبقة إضافة ديف $ (INT_IFACE) 1:0 الوالد classid 1:1 htb معدل الحدية $ ()) $ (وحدات جعل له سقفا $ (() $ الحدية وحدات)
# واحد لeth0
$ (ح) الطبقة إضافة ديف $ (EXT_IFACE) 1:0 الوالد classid 1:1 htb معدل الحدية $ ()) $ (وحدات جعل له سقفا $ (() $ الحدية وحدات)
# إنشاء فئات الأطفال
# لدينا وهذه هي الواجهة الداخلية eth1
# إنشاء فئة التي كتب عليها "1:2" واعطائها المهلة المحددة أعلاه
$ (ح) الطبقة إضافة ديف $ (INT_IFACE) 1:1 الوالد classid 1:2 htb معدل INT_CLS1_RATE $ ()) $ (وحدات جعل له سقفا $ (() $ الحدية وحدات)
# إنشاء فئة التي كتب عليها "1:3" واعطائها المهلة المحددة أعلاه
$ فئة) (ح إضافة ديف $ 1:1) (INT_IFACE الوالد classid 1:3 htb معدل $ (INT_CLS2_RATE حدات)) $ ((INT_CLS2_RATE جعل له سقفا $ $ ()) وحدات
# EXT_IF (تحميل) الآن.
علينا أيضا أن مجموعة الفئات التي يمكن الاقتراض والإقراض.
# وهذه الطبقة هي مضمونة 200kbit ويمكن أن تنفجر حتى 5000kbit إذا كان متوفرا
$ (ح) الطبقة إضافة ديف $ (EXT_IFACE) 1:1 الوالد classid 1:2 htb معدل CLS1_RATE $ ()) $ (وحدات جعل له سقفا $ (() $ الحدية وحدات)
# وهذه الطبقة هي مضمونة 300kbit ويمكن أن تنفجر حتى 5000kbit - 200kbit = 4800kbit إذا كان متوفرا
$ (ح) الطبقة إضافة ديف $ (EXT_IFACE) 1:1 الوالد classid 1:3 htb معدل CLS2_RATE $ ()) $ (وحدات جعل له سقفا `صدى الحدية $ () -- $ (CLS1_RATE) | (قبل الميلاد` $ حدات)
# هذه الفئة يمكن أن يتم ضمان و4500kbit لا يمكن أن تنفجر في الماضي انها (5000kbit - 200kbit - 300kbit = 4500kbit).
# أي حتى لو كان لدينا حركة يذهب الجزء الأكبر مجنون ، والفئتين أعلاه لا تزال توفر مضمونة.
$ (ح) الطبقة إضافة ديف $ (EXT_IFACE) 1:1 الوالد classid 1:4 htb معدل CLS3_RATE $ ()) $ (وحدات جعل له سقفا `صدى الحدية $ () -- $ (CLS1_RATE) -- $ () CLS2_RATE | قبل الميلاد` $ (وحدات)
# إضافة pfifo.
أقرأ المزيد عن pfifo في مكان آخر ، انها خارج نطاق هذا howto.
ح $ () qdisc إضافة ديف INT_IFACE) $ (الوالد 1:2 معالجة أكثر من 12 : 10 الحد pfifo
$ (ح) qdisc إضافة ديف $ () INT_IFACE الوالد 1:3 معالجة 13 : pfifo لحد 10
$ (ح) qdisc إضافة ديف $ () EXT_IFACE الوالد 1:2 معالجة أكثر من 12 : 10 الحد pfifo
$ (ح) qdisc إضافة ديف $ () EXT_IFACE الوالد 1:3 معالجة 13 : pfifo لحد 10
$ (ح) qdisc إضافة ديف $ (EXT_IFACE) 1:4 التعامل مع الوالد (14) : pfifo لحد 10
# # # حرر مضيفا ان جميع الطبقات ، والآن إعداد بعض القواعد!
# # #
# INT_IFACE
# لاحظ 'التوقيت الصيفي' الاتجاه.
حركة المرور التي يخرج لنا والواجهة الداخلية لخدمتنا هو الخروج الملقم سرعة التحميل ، لذلك SOME_IMPORTANT_IP تم تخصيصها إلى فئة 1:2 للتحميل.
$ (ح) تصفية إضافة ديف $ () INT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية التوقيت الصيفي SOME_IMPORTANT_IP/32 flowid 1:2
$ (ح) تصفية إضافة ديف $ () INT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية التوقيت الصيفي SOME_OTHER_IMPORTANT_IP/32 flowid 1:2
# جميع خوادم أخرى سرعة التحميل يذهب إلى 1:3 -- لا يقل أهمية عن ما سبق اثنين
$ (ح) تصفية إضافة ديف $ () INT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية التوقيت الصيفي 0.0.0.0 / 0 flowid 1:3
# EXT_IFACE
# إعطاء الأولوية للطلبات دياناس
$ (ح) تصفية إضافة ديف $ () EXT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية سرك IMPORTANT_IP/32 المباراة الملكية الفكرية الرياضة 53 0xffff flowid 1:2
# سه المهم
$ (ح) تصفية إضافة ديف $) (EXT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية سرك IMPORTANT_IP/32 المباراة الملكية الفكرية الرياضة 22 0xffff flowid 1:2
# لدينا اكسيم خادم بروتوكول نقل البريد الإلكتروني من المهم جدا
$ (ح) تصفية إضافة ديف $ () EXT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية سرك 217.10.156.197/32 المباراة الملكية الفكرية الرياضة 25 0xffff flowid 1:3
# وبالجملة
$ (ح) تصفية إضافة ديف $ () EXT_IFACE الوالد 1:0 بروتوكول الملكية الفكرية prio 1 u32 المباراة الملكية الفكرية سرك 0.0.0.0 / 0 flowid 1:4



