I tried to make this email's title descriptive so someone might be able
to help, but I'm really not sure exactly what to call my problem because
I have no clue which aspect of my network setup might be causing the
problem. Hopefully I can describe things properly in this email.
I recently setup an old 300 mhz K6 computer to serve as a MASQ gateway
for the other computers in my house. This MASQ gateway is connected to
the Internet via a US Robotics ISA 56K modem. It's running RedHat 7.2 in
pretty much virgin condition, and is setup to forward packets using
iptables. This MASQ gateway also serves as the DHCP server for every
other computer on the network to ensure that they all get properly
auto-configured to take advantage of the Internet connection.
Right now, everything works beautifully. The MASQ gateway box is always
left on and is always connected to the Internet (it has its own phone
line). When I turn on any of the client computers in the house, they all
get auto-configured for the network with their own IP and can
immediately access the Internet.
My problem comes when I use my personal Slackware workstation. When I
turn it on, the ethernet card gets auto-configured by the DHCP server
and everything works fine. I can then proceed to access the Internet.
But while I'm using the Internet, there seems to be a major packet
queuing issue which is preventing me from doing more than one thing at a
time over the Internet connection. For example, if I'm downloading a 20
MB file from sourceforge.net, that single download takes up ALL of my
bandwidth and leaves me with none for anything else. While downloading
that file, I can't browse the web or check my email or start a download
on another file, everything just times out and fails. The bandwidth is
exclusively used for the file download and nothing else.
However this behaviour seems to affect only my Linux-based clients. When
I reboot my workstation into Windows XP (using the exact same hardware,
since it's the same computer), this packet queuing issue disappears.
While in Windows, I can be downloading 2 different files and still be
able to browse the web AND check my email all at the same time. The
bandwidth gets evenly distributed between all applications as needed. If
I'm downloading one file at 5 KB/s, then begin a second download, then
each download will get about 2.5 KB/s each. This is all through the
exact same gateway box as the Slackware workstation was using.
I would really like to be able to fix this problem since most of my work
is done under Linux and not Windows. I've tried everything I can think
of, but I just don't know where to begin to look for a solution. My MASQ
gateway used to be running Slackware 8.0 and ipchains, and I was getting
the same results. I thought that maybe changing over to RedHat 7.2 and
iptables would fix the problem, but it hasn't. It's also worth noting
that the same problem exists if I try to access the Internet directly
with the MASQ gateway box. While I'm downloading a file from the
Internet directly to the gateway box, then all bandwidth to the Internet
gets sucked up by that one download, leaving none for any of the client
computers (including Windows clients).
I did once manage to get 2 downloads going simultaneously on my
Slackware workstation, but the results were really weird. In Windows,
when I have 2 downloads going at the same time, each download gets half
the bandwidth in a very steady stream. But in Slackware, when I finally
accomplished the feat of getting 2 downloads going simultaneously, each
download would alternate between being stalled or downloading at full
bandwidth. For example, the first download would continue at 5 KB/s for
about 10 seconds, and then it would stall completely for the next 7
seconds. During that 7 seconds, the second download would proceed using
the full bandwidth, then it would stall and it would be the first
download's turn to get the full bandwidth again.
Can someone please help me figure out what's wrong with my network
setup? I REALLY need to be able to do multiple things on the Internet
simultaneously if I'm to work properly. It's bad enough I have to put up
with a horrible dial-up connection in the first place, but this makes it
unbearable :( I'll be eternally grateful if someone can help me fix this
problem.
Thanks in advance!
Frank Gore
(new list member)
P.S. for reference, here's a copy of my iptables initialization script:
modprobe ipt_MASQUERADE
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -P INPUT DROP
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT
iptables -A INPUT --protocol tcp --dport 443 -j ACCEPT
iptables -A INPUT --protocol tcp --dport 113 -j ACCEPT
iptables -A INPUT --protocol tcp --dport 21 -j ACCEPT
iptables -A INPUT --protocol tcp --dport 23 -j ACCEPT
and here's a copy of my dhcpd.conf:
default-lease-time 86400;
max-lease-time 2592000;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1, 209.226.175.223,
198.235.216.134;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.99;
}