LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   NOOB - DNS latency on FC6 - seems to "hang" eth0 at random intervals? How to fix? (https://www.linuxquestions.org/questions/linux-newbie-8/noob-dns-latency-on-fc6-seems-to-hang-eth0-at-random-intervals-how-to-fix-512816/)

rylan76 12-22-2006 04:06 AM

NOOB - DNS latency on FC6 - seems to "hang" eth0 at random intervals? How to fix?
 
Hi guys

I have a problem with FC6 apparently as regards DNS queries. I've already disabled IPV6, but I get latencies of up to a minute when trying to do DNS lookups at random intervals. This times out most of my internet programs, interrupts any running downloads / uploads, and makes my system unavailable for minutes at a time on my LAN.

Strangest thing is that sometimes it works for up to half an hour or more straight, then suddenly for about a minute I have no access to the network.

My machine's ip is 169.254.255.20 and my router is 169.254.255.100.

Here's my /etc/sysconfig/network:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=StefanLinux
GATEWAYDEV=eth0
GATEWAY=169.254.255.100

host.conf:

order hosts,bind
multi on

resolv.conf:

nameserver 196.43.1.11
nameserver 196.25.1.11
option timeout:1

modprobe.conf lines to remove IPV6 stack:

alias ipv6 off
alias net-pf-10 off

ifconfig:

[root@StefanLinux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:E6:5D:F3:65
inet addr:169.254.255.20 Bcast:169.254.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:848 errors:0 dropped:0 overruns:0 frame:0
TX packets:856 errors:0 dropped:277 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:579256 (565.6 KiB) TX bytes:218654 (213.5 KiB)
Interrupt:177 Base address:0x9000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10977 (10.7 KiB) TX bytes:10977 (10.7 KiB)

I use FC6 2.6.18.1 under a custom kernel with CIFS filesystem support compiled in. My NIC is a

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)

(according to lspci). I download a driver in a file called

r1000_v1.05.tgz

from RealTek's website, compiled and installed this and is using it to interface to the NIC.

An interesting thing I noticed is that calling "route" in a terminal results in

[root@StefanLinux ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.255.0 * 255.255.255.0 U 0 0 0 eth0

(i. e. "route" does not return and freezez for up to a minute before finishing and showing the "gateway" line) while I am "hung" on DNS. If I am not, at that moment "hung" on DNS, it returns almost immediately:

[root@StefanLinux ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.255.0 * 255.255.255.0 U 0 0 0 eth0
default 169.254.255.100 0.0.0.0 UG 0 0 0 eth0
[root@StefanLinux ~]#

However, running "route -n" at any time, returns immediately, regardless of whether I have a DNS "hang" at that moment or not:

[root@StefanLinux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.255.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 169.254.255.100 0.0.0.0 UG 0 0 0 eth0
[root@StefanLinux ~]#

The only way I have found to "un-hang" eth0 while this DNS thing is manifesting is by completely upping and downing the interface:

route del default
/sbin/ifconfig eth0 down

and then

/sbin/ifconfig eth0 169.254.255.20 netmask 255.255.255.0 broadcast 169.254.255.255 up

route add default gw 169.254.255.100 netmask 0.0.0.0 eth0

but I have to do the above over and over and over (up to five times a minute or more) to get a continuity in my box's LAN connection. And then it works only for a few seconds at most, before "hanging" again. Any people browsing pages over the LAN served by my FC6 box of course have extreme problems as, from a browser's perspective, it seems to lock up for minutes at a time on HTTP requests... I can't download large files, or upload large files, etc. etc. Distressing.

Anybody in here got a clue how I can get my FC6 machine NOT to apparently make these minute-long DNS queries? The craziest thing is that now, if my internet connection is off (I, for example, switch off the router) NOTHING works on my FC6 machine as regards the LAN. It can't even ping other machines on my LAN.

ANY idea as to how to fix this will certainly help a LOT!

Thanks

JimBass 12-22-2006 07:10 AM

Sounds to me like the driver didn't compile/install correctly.

When you issue the command /sbin/ifconfig eth0 down of course everything will stop. You are shutting off the eth0 interface, so it won't ping, you can't view anything on any remote computer, etc. That isn't crazy, it is the standard result of the ifdown command.

I'm not a FC6 user, but on Debian the command is ifdown eth0, not eth0 ifdown. Before anything else, try doing the /sbin/ifconfig and route add commands, then do ifdown eth0 and ifup eth0 as root.

The habit of installing drivers from the manufacturers website is a windows thing. If this fails, I'd remove the module you downloaded for this device, and just allow FC6 to autodetect it. Unless it came out very very recently, chances are good it will detect and install a workable driver.

And for what its worth, I think your problem isn't just DNS, it is the entire connectivity issue. DNS queries by default timeout after 2 or 3 seconds, certainly not a full minute. All your network traffic is hung in some way.

Peace,
JimBass

rylan76 12-22-2006 08:00 AM

Issue probably FIXED
 
Hi Jim

Thank you for replying!

I managed to mitigate the problem to a certain extent by putting the following at the tail-end of rc.local:

echo 93886080 > /proc/sys/net/core/wmem_max
echo 93886080 > /proc/sys/net/core/rmem_max
echo 93886080 > /proc/sys/net/core/wmem_default
echo 93886080 > /proc/sys/net/core/rmem_default

echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_sack
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

and then rebooting. (Could have put them in directly, of course.)

This was after I discovered that a running ping gave this error message during an "outage" as I was experiencing it:

ping: sendmsg: No buffer space available

So I increased the above /proc entries and it seems up to now to be working fine!

Thank you very much for your reply anyway.

Kind regards,

JimBass 12-22-2006 12:29 PM

Cool, good work on the solution. I strongly suggest you submit that to the cracksmokers that wrote your driver/module. Unless you compiled most of your software yourself, and used very uncommon patches, you shouldn't have seen the results you did. I'd just email them with things like your kernel, distro, and version of gcc, and then link them to this thread with your solution.

Peace,
JimBass

Tinkster 12-22-2006 12:34 PM

Please post your thread in only one forum. Posting a single thread in the most relevant forum will make it easier for members to help you and will keep the discussion in one place. This thread is being closed because it is a duplicate.

http://www.linuxquestions.org/questi...d.php?t=512723

Don't you think 4 threads for one topic is excessive, especially after 2 years
of membership at LQ?


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