Arp Table and Routing

Richard B. Johnson (root@analogic.com)
Fri, 17 Jan 1997 08:49:42 -0500 (EST)


Alexey,

I made the change you advised for entering a proxy-arp entry into
the arp table. It does not return an error anymore. However, it doesn't
add any arp entry either!

Now, when the ppp link connects, I get TWO entries in the routing table
for the remote host, "40.100". One has a strange metric value of 32767.

With the latest version of software, this is the output from 'netstat -rn`
Linux Version 2.1.21

Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
204.178.40.100 0.0.0.0 255.255.255.255 U 0 0 0 ppp0
204.178.40.100 0.0.0.0 255.255.255.255 U 32767 0 0 ppp0
204.178.47.0 204.178.40.100 255.255.255.0 UG 1 0 0 ppp0
204.178.40.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
0.0.0.0 204.178.40.1 0.0.0.0 UG 1 0 0 eth0

The route via ppp to the remote host "40.100" somehow got added twice and
there is a strange metric value on the second one. I can't remove any routes
anymore, either with 'route` or doing ioctl() calls. Any routes seem
permanent. Even if the proxy-arp worked like it used to, without being able
to remove routes, I would have to reboot the machine after the ppp link
disconnects. This is not good.

This software does not route packets either, even though it "looks" as though
it should. I can only connect host-to-host.

Proxy-arp entries have also been added okay in the arp cache although I had
to use a 255.255.255.255 mask to prevent an error.

However they don't appear in the arp-cache???? Also the "flags" entry used
to be 0xe and 0x2e for proxy-arp. The arp-table shows 0xc which is not
defined for proxy-arp flags??? Nothing is hard-coded in the software, the
header files are used to resolve these flags.

IP address HW type Flags HW address Mask Device
204.178.40.224 0x1 0x2 08:00:00:12:35:99 * eth0
204.178.40.210 0x1 0x2 08:00:00:85:63:33 * eth0
204.178.41.21 0x1 0x2 00:A0:24:D0:69:40 * eth0
204.178.41.79 0x1 0x2 00:A0:24:3C:C5:2E * eth0
204.178.40.236 0x0 0x8c 00:00:00:00:00:00 * *
204.178.40.100 0x1 0xc 08:00:00:30:91:73 * eth0

I recompiled ppp with no effect except some warning errors I never had before.

Now, I CAN ping any remote host from my local network. However, I CAN NOT
ping any local network host except the server, from my remote network.

-----------------------------------

This is how it should look! This has been working for several years. The
last time it was compiled was in September of last year. It was compiled
to add a new SCSI driver, this version is quite old.

The software on this machine is:

Linux quark 2.0.16 #3 Wed Sep 4 09:07:27 EDT 1996 i486

Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
204.178.40.100 0.0.0.0 255.255.255.255 UH 0 0 2 ppp0
204.178.47.0 204.178.40.100 255.255.255.0 UG 1 0 1 ppp0
204.178.40.0 0.0.0.0 255.255.248.0 U 0 0 10 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 4 lo
0.0.0.0 204.178.40.1 0.0.0.0 UG 1 0 0 eth0

"40.100" is my remote ppp-connected host.
"47.0" is my remote network that uses "40.100" as a gateway.
"40.0" is my local network.
"40.1" is my switch to the internet "Cisco".

The mask for the local network is correct, and the mask for the remote network
is correct.

The arp-cache entries for a correctly working system are:

IP address HW type Flags HW address Mask Device
204.178.40.210 0x1 0x2 08:00:00:85:63:33 * eth0
204.178.41.21 0x1 0x2 00:A0:24:D0:69:40 * eth0
204.178.40.143 0x1 0x2 08:00:20:0C:FE:0F * eth0
204.178.41.79 0x1 0x2 00:A0:24:3C:C5:2E * eth0
204.178.47.13 0x1 0x2e 08:00:00:30:91:73 * eth0
204.178.40.100 0x1 0xe 08:00:00:30:91:73 * eth0
204.178.47.17 0x1 0x2e 08:00:00:30:91:73 * eth0
204.178.47.12 0x1 0x2e 08:00:00:30:91:73 * eth0

The "47.12" is a remote node that is being proxy-arped as are "47.27" and
"47.31". This has been working well for a long time.

Cheers,
Dick Johnson
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Richard B. Johnson
Project Engineer
Analogic Corporation
Voice : (508) 977-3000 ext. 3754
Fax : (508) 532-6097
Modem : (508) 977-6870
Ftp : ftp@boneserver.analogic.com
Email : rjohnson@analogic.com, johnson@analogic.com
Penguin : Linux version 2.1.21 on an i586 machine (66.15 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-