<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Bandwidth Limiting HOWTO with linux, tc and iproute2</title>
	<atom:link href="http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/</link>
	<description>Adam Palmer MBCS CITP, Linux, PHP Programmer, MySQL Developer, Embedded Hardware, Security Consultant</description>
	<lastBuildDate>Mon, 15 Mar 2010 13:13:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Wilson</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-383</link>
		<dc:creator>Wilson</dc:creator>
		<pubDate>Sun, 19 Apr 2009 01:41:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-383</guid>
		<description>I installed the script on a debian router but, it doesn&#039;t seem to work. Users can still download and upload to the max speed. I don&#039;t know what&#039;s wrong. I see some packets go through the class when I run tc -s -d class ls dev eth1 but, don&#039;t see any traffic control.

Don&#039;t know what&#039;s wrong.</description>
		<content:encoded><![CDATA[<p>I installed the script on a debian router but, it doesn&#8217;t seem to work. Users can still download and upload to the max speed. I don&#8217;t know what&#8217;s wrong. I see some packets go through the class when I run tc -s -d class ls dev eth1 but, don&#8217;t see any traffic control.</p>
<p>Don&#8217;t know what&#8217;s wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-381</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Fri, 17 Apr 2009 16:31:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-381</guid>
		<description>Hi Adam,

  I hope you can help me.. I have created a PopTop VPN server on a version of Linux - Debian Lenny. 

   I have many ppp connections at one time and I need to bandwidth shape them. The problem lies with to solutions... Either Bandwidth shape each ppp (so, ppp0 - 50kbps) and secure each ppp use to there own tunnel, (therefore - vpnUSER001 - ppp0, vpnUSER002 - ppp1 and so on) I don&#039;t know whether this is possible tho. or create each bandwidth shape for the ip within each ppp for every one so then they can get any ppp tunnel and have there own bandwidth shape. 

   If you could help me that would be great. If you have any other possible solutions could you please tell me. If you know a solution please give me some code to work off as I have not been long working in the world of &#039;&#039;tc&#039;&#039; and &#039;&#039;iproute2&#039;&#039;.

Thank you for you time!

Dan</description>
		<content:encoded><![CDATA[<p>Hi Adam,</p>
<p>  I hope you can help me.. I have created a PopTop VPN server on a version of Linux &#8211; Debian Lenny. </p>
<p>   I have many ppp connections at one time and I need to bandwidth shape them. The problem lies with to solutions&#8230; Either Bandwidth shape each ppp (so, ppp0 &#8211; 50kbps) and secure each ppp use to there own tunnel, (therefore &#8211; vpnUSER001 &#8211; ppp0, vpnUSER002 &#8211; ppp1 and so on) I don&#8217;t know whether this is possible tho. or create each bandwidth shape for the ip within each ppp for every one so then they can get any ppp tunnel and have there own bandwidth shape. </p>
<p>   If you could help me that would be great. If you have any other possible solutions could you please tell me. If you know a solution please give me some code to work off as I have not been long working in the world of &#8221;tc&#8221; and &#8221;iproute2&#8221;.</p>
<p>Thank you for you time!</p>
<p>Dan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Extending tc and iproute2, Linux routing, split access, multiple uplinks, multiple isps, iptables, masquerading, tc, iproute2 &#124; Adam's Tech Talk, Linux HOWTOs &#38; Discussion</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-49</link>
		<dc:creator>Extending tc and iproute2, Linux routing, split access, multiple uplinks, multiple isps, iptables, masquerading, tc, iproute2 &#124; Adam's Tech Talk, Linux HOWTOs &#38; Discussion</dc:creator>
		<pubDate>Sun, 05 Oct 2008 00:20:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-49</guid>
		<description>[...] Talk, Linux HOWTOs &amp; Discussion on APNIC Box - Linux on a Mikrotik 532a, Part 1Adam Palmer on Bandwidth Limiting HOWTO with linux, tc and iproute2Jose Colon on Bandwidth Limiting HOWTO with linux, tc and iproute2viraz on NetCat tutorial for Linux [...]</description>
		<content:encoded><![CDATA[<p>[...] Talk, Linux HOWTOs &amp; Discussion on APNIC Box &#8211; Linux on a Mikrotik 532a, Part 1Adam Palmer on Bandwidth Limiting HOWTO with linux, tc and iproute2Jose Colon on Bandwidth Limiting HOWTO with linux, tc and iproute2viraz on NetCat tutorial for Linux [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Palmer</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-36</link>
		<dc:creator>Adam Palmer</dc:creator>
		<pubDate>Mon, 29 Sep 2008 13:25:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-36</guid>
		<description>Thanks very much for this Jose - I&#039;ve blanked out the exim server now! This took me a bit of fiddling and time to put together because TC is indeed pretty cryptic. Glad you found it helpful.</description>
		<content:encoded><![CDATA[<p>Thanks very much for this Jose &#8211; I&#8217;ve blanked out the exim server now! This took me a bit of fiddling and time to put together because TC is indeed pretty cryptic. Glad you found it helpful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose Colon</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-35</link>
		<dc:creator>Jose Colon</dc:creator>
		<pubDate>Mon, 29 Sep 2008 13:14:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-35</guid>
		<description>Thanks for this valuable info given how cryptic tc can be to Linux outsiders!  One note: I don&#039;t know if that&#039;s the real IP to your exim server but if it is, maybe you forgot to replace it with something like IMPORTANT_MAIL_SERVER. Just a heads up!</description>
		<content:encoded><![CDATA[<p>Thanks for this valuable info given how cryptic tc can be to Linux outsiders!  One note: I don&#8217;t know if that&#8217;s the real IP to your exim server but if it is, maybe you forgot to replace it with something like IMPORTANT_MAIL_SERVER. Just a heads up!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Palmer</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-28</link>
		<dc:creator>Adam Palmer</dc:creator>
		<pubDate>Thu, 25 Sep 2008 18:03:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-28</guid>
		<description>Anytime. Do let me know if that second script doesn&#039;t work as I haven&#039;t tested it yet. If not, I&#039;ll set up a test locally here and get back with something!</description>
		<content:encoded><![CDATA[<p>Anytime. Do let me know if that second script doesn&#8217;t work as I haven&#8217;t tested it yet. If not, I&#8217;ll set up a test locally here and get back with something!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fred</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-27</link>
		<dc:creator>Fred</dc:creator>
		<pubDate>Thu, 25 Sep 2008 16:10:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-27</guid>
		<description>Thanks Adam for posting this, it&#039;ll be very useful (if it works).</description>
		<content:encoded><![CDATA[<p>Thanks Adam for posting this, it&#8217;ll be very useful (if it works).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mario</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-26</link>
		<dc:creator>mario</dc:creator>
		<pubDate>Thu, 25 Sep 2008 12:16:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-26</guid>
		<description>Thanks Adam, I&#039;ll give it a try today...

We have the luxury of &quot;pulling a cowboy move&quot; because we can access the blades remotely if we hose our networking. 

I&#039;ll let you know how it works under stress.

cheers
-mario</description>
		<content:encoded><![CDATA[<p>Thanks Adam, I&#8217;ll give it a try today&#8230;</p>
<p>We have the luxury of &#8220;pulling a cowboy move&#8221; because we can access the blades remotely if we hose our networking. </p>
<p>I&#8217;ll let you know how it works under stress.</p>
<p>cheers<br />
-mario</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Palmer</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-25</link>
		<dc:creator>Adam Palmer</dc:creator>
		<pubDate>Thu, 25 Sep 2008 10:37:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-25</guid>
		<description>Mario,

I haven&#039;t tested this. Give this a go:

# As a note, it&#039;s pretty easy to break your networking by throttling traffic to a stage where it is so congested, you can not log in to clear entries. Either test this out on a development server first, or if that isn&#039;t possible, before you run your script, set something like: &quot;sleep 10; tc qdisc del dev eth0 root &amp;&quot; which will sleep for 10 seconds and then delete your qdiscs. That way if you lock yourself out, it should automatically clear after 10 seconds.

# Set some variables
#!/bin/bash
EXT_IFACE=&quot;eth0&quot;
TC=&quot;tc&quot;
UNITS=&quot;kbit&quot;
LINE=&quot;10000&quot; #maximum ext link speed
LIMIT=&quot;5&quot; #maximum that we&#039;ll allow

# Set some variables for individual &quot;classes&quot; that we&#039;ll use to shape internal upload speed, i.e. shaping eth0
CLS1_RATE=&quot;5&quot; # High Priority traffic class has 200kbit

# Delete current qdiscs. i.e. clean up
${TC} qdisc del dev ${EXT_IFACE} root

# Attach root qdiscs. We are using HTB here, and attaching this qdisc to both interfaces. We&#039;ll label it &quot;1:0&quot;
${TC} qdisc add dev ${EXT_IFACE} root handle 1:0 htb

# Create root classes, with the maximum limits defined
# One for eth0
${TC} class add dev ${EXT_IFACE} parent 1:0 classid 1:1 htb rate ${LIMIT}${UNITS} ceil ${LIMIT}${UNITS}

# Create child classes

# EXT_IF (upload) now. We also set which classes can borrow and lend.
# This class is guaranteed 200kbit and can burst up to 5000kbit if available
${TC} class add dev ${EXT_IFACE} parent 1:1 classid 1:2 htb rate ${CLS1_RATE}${UNITS} ceil ${LIMIT}${UNITS}

# Add pfifo. Read more about pfifo elsewhere, it&#039;s outside the scope of this howto.
${TC} qdisc add dev ${EXT_IFACE} parent 1:2 handle 12: pfifo limit 10

### Done adding all the classes, now set up some rules! ###
# EXT_IFACE

${TC} filter add dev ${EXT_IFACE} parent 1:0 protocol ip prio 1 u32 match ip src 0.0.0.0/0 flowid 1:2</description>
		<content:encoded><![CDATA[<p>Mario,</p>
<p>I haven&#8217;t tested this. Give this a go:</p>
<p># As a note, it&#8217;s pretty easy to break your networking by throttling traffic to a stage where it is so congested, you can not log in to clear entries. Either test this out on a development server first, or if that isn&#8217;t possible, before you run your script, set something like: &#8220;sleep 10; tc qdisc del dev eth0 root &#038;&#8221; which will sleep for 10 seconds and then delete your qdiscs. That way if you lock yourself out, it should automatically clear after 10 seconds.</p>
<p># Set some variables<br />
#!/bin/bash<br />
EXT_IFACE=&#8221;eth0&#8243;<br />
TC=&#8221;tc&#8221;<br />
UNITS=&#8221;kbit&#8221;<br />
LINE=&#8221;10000&#8243; #maximum ext link speed<br />
LIMIT=&#8221;5&#8243; #maximum that we&#8217;ll allow</p>
<p># Set some variables for individual &#8220;classes&#8221; that we&#8217;ll use to shape internal upload speed, i.e. shaping eth0<br />
CLS1_RATE=&#8221;5&#8243; # High Priority traffic class has 200kbit</p>
<p># Delete current qdiscs. i.e. clean up<br />
${TC} qdisc del dev ${EXT_IFACE} root</p>
<p># Attach root qdiscs. We are using HTB here, and attaching this qdisc to both interfaces. We&#8217;ll label it &#8220;1:0&#8243;<br />
${TC} qdisc add dev ${EXT_IFACE} root handle 1:0 htb</p>
<p># Create root classes, with the maximum limits defined<br />
# One for eth0<br />
${TC} class add dev ${EXT_IFACE} parent 1:0 classid 1:1 htb rate ${LIMIT}${UNITS} ceil ${LIMIT}${UNITS}</p>
<p># Create child classes</p>
<p># EXT_IF (upload) now. We also set which classes can borrow and lend.<br />
# This class is guaranteed 200kbit and can burst up to 5000kbit if available<br />
${TC} class add dev ${EXT_IFACE} parent 1:1 classid 1:2 htb rate ${CLS1_RATE}${UNITS} ceil ${LIMIT}${UNITS}</p>
<p># Add pfifo. Read more about pfifo elsewhere, it&#8217;s outside the scope of this howto.<br />
${TC} qdisc add dev ${EXT_IFACE} parent 1:2 handle 12: pfifo limit 10</p>
<p>### Done adding all the classes, now set up some rules! ###<br />
# EXT_IFACE</p>
<p>${TC} filter add dev ${EXT_IFACE} parent 1:0 protocol ip prio 1 u32 match ip src 0.0.0.0/0 flowid 1:2</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mario</title>
		<link>http://www.adamsinfo.com/bandwith-limiting-with-linux-tc-and-iproute2/comment-page-1/#comment-24</link>
		<dc:creator>mario</dc:creator>
		<pubDate>Thu, 25 Sep 2008 10:08:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.adamsinfo.com/?p=15#comment-24</guid>
		<description>Hi Adam,

I have a similar requirement at the datacentre. The only difference is that I need to limit only the eth0 interface outbound speed and throttle it to between 3-5kbps. The eth1 interface needs to stay at gig speed for back end communication.

Do you happen to have a one nic throttling version of this script handy?

thanks
-mario</description>
		<content:encoded><![CDATA[<p>Hi Adam,</p>
<p>I have a similar requirement at the datacentre. The only difference is that I need to limit only the eth0 interface outbound speed and throttle it to between 3-5kbps. The eth1 interface needs to stay at gig speed for back end communication.</p>
<p>Do you happen to have a one nic throttling version of this script handy?</p>
<p>thanks<br />
-mario</p>
]]></content:encoded>
	</item>
</channel>
</rss>
