LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Networking
User Name
Password
Linux - Networking This forum is for any issue related to networks or networking.
Routing, network cards, OSI, etc. Anything is fair game.

Notices


Reply
  Search this Thread
Old 02-11-2004, 12:58 PM   #1
dodger-newbie
LQ Newbie
 
Registered: Jan 2004
Location: Meath, Ireland
Distribution: Red Hat Linux 9 - 2.4.20
Posts: 8

Rep: Reputation: 0
Traffic Control (tc) in Red Hat 9


Hi,

I am a linux newbie and I have been trying to setup tc control in linux. I want to bandwidth manage traffic going out from my internal network to the external Internet. I have setup a Linux router to achieve this and I can access the Internet from my private internal LAN.

I have looked at a lot of docs regarding traffic control in Linux (including Linux 2.4 Advanced Routing How To) but I dont seem to be getting anywhere. Does anyone know any of any places where I can get help on this topic?

So far I have been playing around with following commands but I have yet to notice any bandwidth shaping on my internal network:

tc qdisc add dev eth0 root handle 1: htb default 12
tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
etc...

Any help is appriciated!

Thanks
Dodger
 
Old 02-11-2004, 01:12 PM   #2
fataldata
Member
 
Registered: Jun 2002
Location: Breckenridge, Colorado
Distribution: Ubuntu Hardy 8.04
Posts: 101

Rep: Reputation: 15
I found this script in the Adv-Routing Howto i think. It worked for me but only does traffic shaping on an interface not on a port. I think you may be able to alter it though. Simply change the variables for your UPLINK AND DOWNLINK speed and the interface you want to shape.

# Setup For Your Internet Connection At Home
#
#
# Set the following values to somewhat less than your actual download
# and uplink speed. In kilobitsv
DOWNLINK=630
UPLINK=620
DEV=eth0
TC=/sbin/tc
# 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

###### uplink

# install root CBQ

$TC qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit

# shape everything at $UPLINK speed - this prevents huge queues in your
# DSL modem which destroy latency:
# main class

$TC class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit \
allot 1500 prio 5 bounded isolated

# high prio class 1:10:

$TC class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit \
allot 1600 prio 1 avpkt 1000

# bulk and default class 1:20 - gets slightly less traffic,
# and a lower priority:

$TC class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit \
allot 1600 prio 2 avpkt 1000

# both get Stochastic Fairness:
$TC qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
$TC qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10

# start filters
# TOS Minimum Delay (ssh, NOT scp) in 1:10:
$TC filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
match ip tos 0x10 0xff flowid 1:10

# ICMP (ip protocol 1) in the interactive class 1:10 so we
# can do measurements & impress our friends:
$TC filter add dev $DEV parent 1:0 protocol ip prio 11 u32 \
match ip protocol 1 0xff flowid 1:10

# To speed up downloads while an upload is going on, put ACK packets in
# the interactive class:

$TC filter add dev $DEV parent 1: protocol ip prio 12 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u16 0x0000 0xffc0 at 2 \
match u8 0x10 0xff at 33 \
flowid 1:10

# rest is 'non-interactive' ie 'bulk' and ends up in 1:20

$TC filter add dev $DEV parent 1: protocol ip prio 13 u32 \
match ip dst 0.0.0.0/0 flowid 1:20

########## downlink #############
# slow downloads down to somewhat less than the real speed to prevent
# queuing at our ISP. Tune to see how high you can set it.
# ISPs tend to have *huge* queues to make sure big downloads are fast
#
# attach ingress policer:

$TC qdisc add dev $DEV handle ffff: ingress

# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast:

$TC filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
 
Old 02-11-2004, 01:33 PM   #3
dodger-newbie
LQ Newbie
 
Registered: Jan 2004
Location: Meath, Ireland
Distribution: Red Hat Linux 9 - 2.4.20
Posts: 8

Original Poster
Rep: Reputation: 0
Cool

Thanks Fataldata...I'll giv dat a try..

Thanks

Dodger
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
traffic control experiment bruj3w Linux - Networking 5 12-15-2007 03:44 AM
Is there are main hardware control pannel for Red Hat 9 StarfishRC Linux - Hardware 2 10-27-2003 05:28 PM
Red Hat 9 won't control PCMCIA right. Brakki Linux - Laptop and Netbook 0 10-20-2003 05:52 PM
Red Hat 9 control panel kentlee_ot Linux - Newbie 1 08-13-2003 08:06 AM
traffic control sunreflex4 Linux - Networking 1 03-23-2003 11:52 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Networking

All times are GMT -5. The time now is 11:50 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration