SUSE LINUX Enterprise & openSUSE Community
มีนาคม 21, 2019, 12:59:54 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: การทำ QoS ง่ายๆ ด้วยโปรแกรม wondershaper บน Linux Router  (อ่าน 3193 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« เมื่อ: พฤษภาคม 27, 2011, 06:21:55 PM »


การทำ QoS ง่ายๆ ด้วยโปรแกรม wondershaper บน Linux Router

1. ติดตั้งโปรแกรม

โค๊ด:
zypper in wondershaper

2. กำหนดนโยบาย

ตัวอย่าง link download 5Mbps / upload 1Mbps

- ต้องการให้เครื่อง IP address 192.168.1.10 ใช้ความเร็วในการดาวน์โหลดไม่เกิน 3Mbps
- ต้องการให้เครื่อง IP address 192.168.1.100 ใช้ความเร็วในการดาวน์โหลดไม่เกิน 1Mbps
- ต้องการให้เครื่อง IP address 192.168.1.200 ใช้ความเร็วในการดาวน์โหลดไม่เกิน 4Mbps
- IP address นอกจากนี่ให้ใช้ความเร็วในการดาวน์โหลดไม่เกิน 3Mbps (192.168.1.0/24)

สร้างสคริปต์ qos

โค๊ด:
vi /usr/sbin/wshaper.htb

โค๊ด:
#!/bin/sh
#
# Wonder Shaper
# please read the README before filling out these values
#
# Set the following values to somewhat less than your actual download
# and uplink speed. In kilobits. Also set the device that is to be shaped.
#
# Source sysconfig file
# If you want this script to be run by ppp on connect, copy it to /etc/ppp/ip-up.d
# chmod 755 /etc/ppp/ip-up.d/wshaper.htb

if [ -f /etc/sysconfig/wondershaper ]; then
. /etc/sysconfig/wondershaper
fi

DOWNLINK="$WSHAPER_DOWNLINK"
UPLINK="$WSHAPER_UPLINK"
DEV="$WSHAPER_DEV"
export DOWNLINK UPLINK DEV

# low priority OUTGOING traffic - you can leave this blank if you want
# low priority source netmasks
NOPRIOHOSTSRC="$WSHAPER_NOPRIOHOSTSRC"

# low priority destination netmasks
NOPRIOHOSTDST="$WSHAPER_NOPRIOHOSTDST"

# low priority source ports
NOPRIOPORTSRC="$WSHAPER_NOPRIOPORTSRC"

# low priority destination ports
NOPRIOPORTDST="$WSHAPER_NOPRIOPORTDST"

# Check for QOS in the kernel
if tc -s qdisc ls dev lo > /dev/null 2>&1; then
        true
else
        echo "Your Kernel lacks QOS Support or you dont have the 'tc' tool installed" > /dev/stderr
        exit 1
fi

# Check for sysconfig settings
function checkconf {
if [ -z "$DEV" ]; then
        echo "Please set WSHAPER_DEV in /etc/sysconfig/wondershaper" > /dev/stderr
        exit 1
elif
        [ -z "$DOWNLINK" ]; then
        echo "Please set WSHAPER_DOWNLINK in /etc/sysconfig/wondershaper" > /dev/stderr
        exit 1
elif
        [ -z "$UPLINK" ];then
        echo "Please set WSHAPER_UPLINK in /etc/sysconfig/wondershaper" > /dev/stderr
        exit 1
fi
}

# start|stop|status

case "$@" in
start)
checkconf
;;
status)
checkconf
tc -s qdisc ls dev $DEV
tc -s class ls dev $DEV
exit 0
;;
stop)
        tc qdisc del dev $DEV root    > /dev/null 2>&1
tc qdisc del dev $DEV ingress > /dev/null 2>&1
  exit 0
esac

# clean existing down- and uplink qdiscs, hide errors
tc qdisc del dev $DEV root    2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null


#delete root qdisc (this will destroy all classes)
tc qdisc del dev $DEV root

#attach root qdisc and create the 100Mbps root class
tc qdisc add dev $DEV root handle 1: htb
tc class add dev $DEV parent 1:0 classid 1:10 htb rate 100Mbit

#create the 5Mbps class for the whole bandwidth
tc class add dev $DEV parent 1:10 classid 1:20 htb rate 5Mbit

#Terminal Server - 3072kbit
tc class add dev $DEV parent 1:20 classid 1:100 htb rate 3072Kbit ceil 3Mbit
tc qdisc add dev $DEV parent 1:100 sfq quantum 1514b perturb 15
tc filter add dev $DEV protocol ip parent 1:0 prio 5 u32 match ip dst 192.168.1.10 flowid 1:100

#Guest - 1024kbit
tc class add dev $DEV parent 1:20 classid 1:200 htb rate 1024Kbit ceil 1Mbit
tc qdisc add dev $DEV parent 1:200 sfq quantum 1514b perturb 15
tc filter add dev $DEV protocol ip parent 1:0 prio 5 u32 match ip dst 192.168.1.100 flowid 1:200

#Linux Desktop - 5120kbit
tc class add dev $DEV parent 1:20 classid 1:300 htb rate 5120Kbit ceil 4Mbit
tc qdisc add dev $DEV parent 1:300 sfq quantum 1514b perturb 15
tc filter add dev $DEV protocol ip parent 1:0 prio 5 u32 match ip dst 192.168.1.200 flowid 1:300

#All other IPs from this class - 3072kbit
tc class add dev $DEV parent 1:20 classid 1:400 htb rate 3072Kbit ceil 3Mbit
tc qdisc add dev $DEV parent 1:400 sfq quantum 1514b perturb 15
tc filter add dev $DEV protocol ip parent 1:0 prio 5 u32 match ip dst 192.168.1.0/24 flowid 1:400


คัดลอกไฟล์ /usr/sbin/wshaper.htb ไปยัง /etc/ppp/ip-up.d

โค๊ด:
cp /usr/sbin/wshaper.htb /etc/ppp/ip-up.d/

กำหนด permisssion เป็น 755

โค๊ด:
chmod 755 /etc/ppp/ip-up.d/wshaper.htb

3. ตั้งค่า Runlevel

โค๊ด:
chkconfig wondershaper on

4. สตาร์ท wondershaper

โค๊ด:
rcwondershaper start

5. ทดสอบ

- Speed test ที่เครื่อง 192.168.1.10

 

- Speed test ที่เครื่อง 192.168.1.100



- Speed test ที่เครื่อง 192.168.1.200



คู่มือที่เกี่ยวข้อง

http://www.susethailand.com/suseforum/index.php?topic=1030.0
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #1 เมื่อ: มิถุนายน 01, 2011, 06:33:15 PM »


How to Bandwidth Limit on openSUSE (Quality of Service)

http://blog.susethailand.com/?p=158
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.08 วินาที กับ 19 คำสั่ง (Pretty URLs adds 0.013s, 2q)