Prioritized Internet Sharing for Home Users?
precursor asks: "Like many of you, I share a house with a couple of other geeks. This is normally a hoot - until it comes time for bandwidth sharing on a single cable modem (it's hard to play games with a bunch of torrent junkies). What solutions have other Slashdot readers implemented for sharing or limiting certain types of bandwidth on a home network? We are especially interested in solutions that we could implement on an aging PC or on hardware that can be purchased on a budget."
Stuff at lartc.org, notable the wondershaper may serve as a basis for what you want.
link, http://qos.ittc.ku.edu/howto/index.html linux qos howto.
:). also some adsl modems have traffic shaping...
theres also several linux/bsd based easy to setup firewall/router distros.. some of them have to have qos support
world was created 5 seconds before this post as it is.
You can use Linux and QoS fair queueing to restrict bandwidth to the three (or however many) computers to 1/3 of the available bandwidth. easy.
:)
I just googled a bit and the latest stuff i can find is from 2001, but i know it can be done.
but i know its possible, so google it yourself.
Put IPCop on the aging machine and the set up priorities for different traffic.
What, me worry?
Take a look at pf, native to OpenBSD, but recently also ported to FreeBSD. (I use it on FreeBSD and it works like a charm.)
It's a great firewall and has traffic shaping options, too. Fairly thorough documentation, as well.
There's also a web interface to Azureus you can set up so when someone starts a game, they can limit your upload speed further (or altogether stop your uploads) if necessary. It's handy on ADSL connections, where upload speed is severely limited. I can get that episode of West Wing I missed while I sleep, and my roommate can pause it at 3am without knocking on my door.
When I had this problem, what I told my torrent junkie roomates was, "If I ever want to play a game and I have a bad ping I will unplug your connection, no questions asked. You need to take some responsibility for your bandwidth." He promptly went out and found Net Limiter to run on his desktop (god forbid anything stops his downloads) and we agreed that any time after 1:30 am or so was wide open for bandwidth whoring. Net Limiter allowed him to schedule the changes in bandwidth so he didn't have to stay up late to up his bandwidth manually.
-Steve
Learn more about queueing at the pf FAQ.
:) - Linux distro. The simplicity, if you've never experienced it before, can feel both constraining and liberating at the same time. Give it a try if you've got a spare box. It's hard to experiment without learning SOMETHING - and if you're here I'm sure you're into learning, right? So give it a whirl. If you're not sure what BSD to try, give this a read. If you just want to buy a router, learn from the recent Ask Slashdot - Home Routers w/ Decent QoS Performance?. Best of luck!
:)
See my previous post here for a pf.conf recipe to implement traffic shaping based on packet type. You could also prioritize via IP, require a ssh session to gain higher priorities for a specific IP (authpf), based on time of day, or any other number of factors.
THE guide to pf (packet filter) can be found here. pf will run on FreeBSD as well as, I believe, a few other open OSs. I think it's really the best. Almost any reader here could surely benefit from at least a partial working knowledge of packet filters ("firewalls") in general.
=======
EXTRA CREDIT
=======
Got a few connections you'd like to tie together into one? Read more about Address Pools and Load Balancing with pf.
Another Bandwidth management HOWTO for Linux systems (last revised in '03 - may be better for concepts than router config recipes)
bittorrent traffic shaping
A nice K5 article about packet filtering with OpenBSD firewalls
Prioritizing empty TCP ACKs with pf and ALTQ
Making the most out of a busy connection
Turn that old P5 and two network cards into an OpenBSD firewall and learn to setup your own router. You will learn a TON about TCP/IP, how to protect your internal network, and BSDs in general (they're pretty neat in the way that they don't have as much "cruft" as usually found in your typical - yeah, that works
If you're going to use OpenBSD (which I'd recommend for a firewall/NAT box), be sure to support the OS which strives for portability, standardization, correctness, proactive security and integrated cryptography by ordering a CD, T-shirt, book, or hacker bunker enhancing poster. OpenBSD supports binary emulation of most programs from SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS and HP-UX. Development is active and it won't let you down as a gatekeeper or internal server.
Puffy says "Stay off my computer!" and means it. I sleep well at night knowing "puffy" (the name of my box) is standing guard just behind my cable modem and in front of the 5+ computers my roommates and I are running inside. Has never let me down and doesn't get in my way. Keeps Freenet and torrents from introducing lag into my ssh sessions as well..... Good luck finding a solution to keeping your pipes clean
http://www.zelow.no/floppyfw/
This is just about the cheapest solution you could use. It only requires only a 386sx with two NICs, a 1.44MB floppy drive, and 12MByte of RAM, but scales quite well. I actually have it running on an Athlon 1800+ 256mb RAM box serving a medium sized computer lab. It's really easy to set up, but is missing a lot of important utilities since it's floppy based. A cd based distribution or full debian setup with trafic shapeing/prioritisation packages installed (tc/tcng or others) is probably a better idea if you have the hardware for it.
------ Take away the right to say fuck and you take away the right to say fuck the government.
A lot of the LiveCD router/firewall distros work on very modest hardware, have traffic shaping features, are easy to setup, and are free. Here are a few.
This router has QoS built in. Its great for making my VoIP calls while my friggen roommate torrents the world. I just give my computer priority over his and walla... you can also give priority via application, ports, etc.
Your best bet, for both simplicity, functionality, and price, is a Linksys wireless router running the Sveasoft firmware. The extremely popular Linksys WRT54G 802.11g wireless router runs Linux, allowing easy customization with enhanced features. For basic functionality, a Linksys WRT54G can be had for under $50. The best you can get is a Linksys WRT54GS v1.0, which has more memory as well as Speedbooster technology.
You then flash the firmware of the router using freely available, open-source firmware such as that made by Sveasoft. I enjoy the Sveasoft firmware, as it contains a wealth of features, is easy to setup, and has good documentation. I would suggest that you download the firmware from a free mirror rather than subscribe, as Sveasoft has been known to engage in predatory business practices that it is best not to support.
Once you install the Sveasoft firmware, you will gain a new "QoS" tab in the router's configuration that allows you to prioritize certain types of traffic, certain MAC addresses, the wireless connection, and based on Ethernet ports.
I setup the Sveasoft Alchemy pre-7a firmware on my Linksys WRT54GS on a 6600/768 cable connection I share with two geeky, gamer, bittorrent-loving roommates. Even when we're all fighting to achieve maximum upload and download speeds with bittorrent, web-browsing is fast and games have no lag. This solution dramatically outperformed my expectations, it cost less than $100, and took less than 15 minutes to setup.
The super-cheap wireless router from Linksys, the WRT54G (802.11g, 4 port switch, I've seen them for under $35 US) can do exactly this.
Throw on some custom firmware like Sveasoft's (There are opensource solutions too), and you can do real QoS on both the ethernet port, and TCP/IP port levels.
The linksys router is simply a super-cheap MIPS based Linux box running Busybox, with a wireless radio of course. So the routering/firewalling, and I assume QoS, is all done with iptables. You can configure iptables yourself of course, but by default you would want to configure the QoS via the web interface.
Linux with wondershaper
Have fun!
"Flyin' in just a sweet place,
Never been known to fail..."