Rather Annoying Network Hiccup

I recently upgraded from Red Hat 5.2 to Mandrake 6.0 on my dual-boot system.  Here's my problem:  The NE2000 compliant NIC that works fine in Windows and worked like a charm in Red Hat won't do a thing in Mandrake.

I'm on a peer-to-peer network with another computer, and the other box proxies out the internet connection, my machine is assigned the IP of 192.168.1.1 and the other one is 192.168.1.2

Here's what happens in Linux:
- ping 127.0.0.1 (localhost) works fine
- ping 192.168.1.1 works fine
- ping 192.168.1.2 locks, have to Ctrl-C to stop it.  Does not do a "Timeout" or anything.

route displays my routing table, the first 3 lines, then locks like ping does.

route -n works fine, but includes some information about 192.168.1.0 which I haven't done anything to, I haven't even entered anything on that IP.

I've turned off every startup service but network, ypbind, and inet.  No Samba, no nfs, etc.

Any Suggestions?  This has happened the same way even after reinstalling Mandrake 3 times.

Thanks
Hatton
LVL 2
kc5sigAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

rwenzlaCommented:
First comment, IP addresses that end in zeros, refer to  networks.  192.168.1.0 is a route for your local class C network, 192.168.1.1 through 192.168.1.254 (.255 is the broadcast address that sends packets to ALL those addresses.)

Second, the fact that 'route -n' works, but 'route' doesn't, means the box can't find the Domain Name Server (DNS).  By default, 'route' tries to fill in human-readable names in the routing table.  It needs the DNS for this.

It sounds like you don't have a default route installed to your gateway. Check the output of the 'route -n' command.  The last line should be something like:

0.0.0.0     192.168.1.2     0.0.0.0  UG  0  0  eth0

The first 0.0.0.0 is IP shorthand for the default route.
This is where packets go when they match no other rule.          
The second set of IP numbers is the address of the gateway for this route.  It your case it should be the IP address of your 'other' box.  The 0.0.0.0 is a netmask that holds NO bits of the IP fixed, therefore it matches ALL packets have filtered down this far.  The UG means this entry is Up and is a Gateway.  Two zeros are the metric and ref of the route (only used for advanced dynamic routing).  The last entry is the device that these packets need to go to.

My bet is that Mandrake, has made your loopback network, 'lo' the default route.

Your last line will look like this:

0.0.0.0   0.0.0.0   0.0.0.0  UG  0  0  lo

To fix this, enter the following 2 commands

route del -net 0.0.0.0 netmask 0.0.0.0
route add default gateway 192.168.1.2

Hope this helps
Bob
 
0
kc5sigAuthor Commented:
Updated output of the route -n command:

I tried to do that and here's the results:

192.168.1.1  0.0.0.0  255.255.255.255 UH
192.168.1.0  0.0.0.0  255.255.255.0   U
127.0.0.0    0.0.0.0  255.0.0.0       U
0.0.0.0    192.168.1.254  0.0.0.0     UG

It's still not working.

Thanks!
Hatton
0
rwenzlaCommented:
There are no interfaces (eth0, ppp0, lo) shown.  Did you omit them or did 'route -n'?

While you're at it, let's see the output of the 'ifconfig' command.

0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

rwenzlaCommented:
Also, where did the 192.168.1.254 come from?  Since all default packets are being routed to an IP address that doesn't exist (by your description), it would cause the exact behavior you describe.  
0
kc5sigAuthor Commented:
I omitted them (oops).  Here's a revised output of route -n (it changed slightly as I was messing with it) as well as the output of ifconfig:

192.168.1.1  0.0.0.0  255.255.255.255  UH  0  0  0  eth0
192.168.1.0  192.168.1.1  255.255.255.0  UG  0  0  0  eth0
192.168.1.0  0.0.0.0  255.255.255.0  U  0  0  0  eth0
127.0.0.0  0.0.0.0  255.0.0.0  u  0  0  0  lo
0.0.0.0  192.168.254  0.0.0.0  UG  0  0  0  eth0

The other machine is running a proxy server/DNS server (it's my wife's windows box, and the setup dates back to when her computer was more powerful than mine, but that's another interesting story)

Here's ifconfig: (modified to fit the screen a bit better)

eth0  Link endcap:Ehternet HWaddr 00:00:B4:87:37:97 inet addr:192.168.1.1 Bcast 192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX Packets:0 errors:0 dropped:0 overruns:0 frame:0
TX Packets:0 errors:1 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100
Interrupt:10 Base Address:0x2a0

lo  Link endcap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1
RX Packets:20 errors:0 dropped:0 overruns:0 frame:0
TX Packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0


Now something that I just noticed is that 127.0.0.1 is nowhere to be found on my routing table... hmmm... berry interesting.  

Thanks again, if you need anything else, let me know!

Hatton
0
Barn_OwlCommented:
Where did 192.168.1.254 come from? This ip should be the ip of your defualt gateway. You can also edit your /etc/hosts for the local ip numbers( might speed tings up a little) :)
0
kc5sigAuthor Commented:
That's what it's saying my default gateway is.  Mandrake put that number in, and it was the same one that was in my routing table for Red Hat when it was working.

I've never had the other machine anywhere but in my DNS lookup.  It's just a windows box running a proxy server program, and has no other server software running on it.

Hatton
0
rwenzlaCommented:
Ah. By your description of the system, your default gateway should be 192.168.1.2.   Maybe Redhat refered to the proxy server by name,(thus using the DNS lookup to bypass the faulty enty in your routing table).  From what you described, there is simply no 192.168.1.254 on your net to get those packets.  And you're sending all the default packets  (internet traffic) there.

The first line in the table is redundant.  There is no need to route packets to the local host.  The second seems strange too.  You're gatwaying all the packets destined for the local net (192.168.1.0 refers to your entire ethernet) through your self.  There is no need to gatway packets on a local net, only between 2 nets (like your eth0 and the proxy servers ppp net).

You don't need a line for 127.0.0.1, its handled by the 127.0.0.0 route (whole 'lo' net again)

Try changing the default route to 192.168.1.2.  That will get the internet packets to the windows box.
0
jlamorieCommented:
The default gateway is actually, your own box.  The route table is a consecutive list of rules, and the top lines create a strange loop back.

192.168.1.1  0.0.0.0      255.255.255.255  UH  0  0  0  eth0
192.168.1.0  192.168.1.1  255.255.255.0    UG  0  0  0  eth0
192.168.1.0  0.0.0.0      255.255.255.0    U   0  0  0  eth0

In order to get to x.1.1 there is no gateway. (line 1)
In order to get to x.1.0 the gateway is x.1.1 (line 2)
Which pretty much means, the entire things is going in circles.

Possibly.

But if you want to just start using your other box for browsing the web, but not packet forwarding, then just remove ALL the default routes.  At least to start with, when you try the pings.
0
rwenzlaCommented:
I agree that the top lines look strange, but disagree with jlamorie's analysys  

The first rule says: if there's an outgoing packet for the specific host .1.1, send it out eth0 (but .1.1 is this machine, right? Packets to .1.1 will never get to the routing table.  If you have lights on your NIC, do they flash when you ping your own IP?  Mine don't.).  This may be a problem, but when I add the following routes to my machine
(.1.1):

192.168.1.1  0.0.0.0      255.255.255.255 UH 0 0 0 eth0
192.168.1.0  192.168.1.1  255.255.255.0   UG 0 0 0 eth0

ping .1.2 still works.

The second rule says, if there's a packet for anyone on the 192.168.1.XX network, send it TO the gateway machine at interface .1.1 (this machine).  If .1.1 applies it's routing table to a packet for .1.2, it gets sent to .1.1 again.  A gateway, is defined as a path between 2 networks.  What it's meant for, is to send packets to a machine with several interfaces (the GW) and let that machine's routing table figure out which interface it should go to.  

The last line could causing a problem too, it says "Send all other packets to the Gateway at 192.168.1.254.  But there is no ..254 on your network, unless you're running ip aliasing (a single physical interface with more than 1 IP address) for the eth0 interface as part of your proxy, but you didn't say that.

I think your routing table needs to be:

192.168.1.2  0.0.0.0    255.255.255.255  UH  0 0 0 eth0
(this sets up a static path to the firewall/proxy machine)
192.168.1.0  0.0.0.0    255.255.255.0    U   0 0 0 eth0
(this says send all local packets to the ethernet)
127.0.0.0    0.0.0.0    255.0.0.0        U   0 0 0 lo
(send all packets for the loopback to the loopback)
0.0.0.0      192.168.1.2  0.0.0.0        UG  0 0 0 eth0
(send all other packets to the gateway at 192.168.1.2 via eth0, and let it handle them using it's routing table)

0
kc5sigAuthor Commented:
Sorry, jlamorie, that didn't work.  I've upped the point value of the question for two reasons:

1) This problem is a bit more difficult than I thought, and
2) This problem just got a bit more complicated.

I will explain.

I have been manually messing with the routing tables all this time, and nothing has worked to any avail.  While on the phone with a friend, I thought to mention it to him, and he said that it might be that the driver itself is actually corrupted for the NIC.  That was his only possible explanation.

So now we go down a slightly different path.  His suggestion was to remove and reinstall the 'ne' module which controls the NIC in Linux.
Either that or see if the jumper settings for the card are causing a conflict somewhere else in the system.  I don't know if this is the case or not since everything is working fine in Windows using the same IO Bases and IRQ addresses.

Here's what I wondering.

-- Where can I find the NIC module on the 'net?  I am running Linux Mandrake ver 6.0, kernel 2.76.  The card is a NE 2000 compliant card that has a PNP option that I have disabled.  I have manually set the card to IRQ 10 IO Base 0x2A0.
-- How do I uninstall the "bad" module and install the "good" one I download?  Also, having no internet access from the Linux side, can I save this to a floppy in Windows and then load it in Linux?

Thank you so much for all your help!  Hopefully we can get this puppy going!

Hatton
0
Barn_OwlCommented:
Well you don't ecaxtly install modules. You compile them when you build a kernel. If you have the kernel source installed go to /usr/src/linux and do a make dep modules modules_install as root. This will compile and install your modules
0
rwenzlaCommented:
No, you do install modules.  At least since the 2.0.0 kernel came out.  The modules are in /lib/modules/2.x.x (fill in current kernel version).  They are installed with the command "insmod" or "modprobe".  Modprobe is superior since it finds the modules dependancies, and will autoprobe hardware where posible.  You do have to select that the module be built at compile time, but if you are using a stock kernel, the list of "supported hardware" for your distribution is pretty much the list of modules they built when they made the kernel.  Modules are removed from a running kernel with "rmmod".  At any case, a boot will reload all modules.  They are not perminently added to the kernel.

You have the option of compiling the modules into the kernel, but that wastes memory, esp for items that dont receive constant use.

Check that kernel number again.  It doesn't make sense.  Kernel versions are numbered w/3 digits.  Odd second digits refer to "development" kernels and are not guarenteed to be stable.  Even second digits are "production" kernels.  The latest "production" kernel (as of a few weeks ago) is 2.2.15.

If you think your ne.o file is corrupt, check ftp.redhat.com.  They should have an image of their install disk there.  ne.o is part of the kernel, they shouldn't have changed it.  I believ RH and Mandrake are both built against glibc, so it should work.

Is your network card a PCI network card?  If so, don;t specify the io or irq.  It can be autoprobed, and you may be overriding the correct settings.

The output of your "ifconfig" looks like you have the ethernet card running right.  Are you using a hub with activity lights?  What happens when you try a ping to the other local machine?

Also, do an "ifconfig", ping for a few seconds, then do another "iconfig".  Compare the packet counts.  Lets see where those packets are going.
0
Barn_OwlCommented:
Rwenzla, went in to more detail. but that is what i meant by not exactly.
0
kc5sigAuthor Commented:
Actually, the answer is (d) None of the Above.  After getting rather ticked at the whole situation, I decided to step back and try a few things... the first of which was to drop the IRQ and IO Base to see if there was a conflict somewhere.

Something else I did was to pull the "Netware Yes" sticker off to reveal... the real manufacturer of the card!  Realtek 8019AS...

Something nobody told me was that having the card set to an IRQ of 10 and an IO Base of 0X2A0 could cause a problem.  Windows "works around" an unseen conflict with the AGP video card on the IRQ, and the IO Base of 02A0 was too low for Linuix to propperly use, apparently.

I checked on Realtek's website... searched, and voila, found a card diagnostic program.  It verified the card as good and even let me play with the configuration a bit.

Here's a note to *anyone* using this kind of card.  It is *not* true PNP, it is software controllable.  If you want to use it in a PNP mode, set it up as such going into "Ultra Paranboid No Network Capabilities Dos Mode" and running the setup.

As far as the routing table issue, it wasn't one.  I reinstalled Linux (I think I'm a master at installing it now... this made install #35 this month) and the default setup worked perfectly!

So now what do I do for the points?  You all have been wonderful help on this!

Hatton
0
Barn_OwlCommented:
1> New information for me , Never thought to check the I/O.
2> Give your self the points. :)
0
ianBCommented:
Hi,

I am answering this question so it can be saved as a PAQ for the benefit of others. I have refunded the points you used for the question.

Ian
Community Support @ Experts Exchange
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Linux Networking

From novice to tech pro — start learning today.