DEC 21X4X driver and IP-Aliasing(?!) problem.

Jakob Sandgren jakob@southpole.se
Sun Jul 11 13:40:12 1999


I have encountered a very strange problem with IP-aliasing and the
D-Link DFE-500TX nic. This seems very strange to me since I guess that
the IP aliasing code does not involve the nic driver(?).

The problem has been verified with two DFE-500TX REV-E1 cards and the
following drivers:
tulip.c:v0.91e 5/27/99
tulip.c:v0.91 4/14/99
de4x5.c:V0.544 1999/5/8
(All with 2.2.9)
This was tested in a SMP-box. 

This has also been tested with 2.2.10-ac10 on a UP-box with
"tulip.c:v0.91 4/14/9".

* Everything works ok with the exact same setup, but with a 3c900 nic. *

The strangest(?) part of this problem is that ip-aliasing work when
accessing the (virtual) host from the local network. But it's
impossible to access the (virtual) host from other networks. Once or
twice have I received replyes to ping request, but that's it.

It looks more like a routing problem then a nic-driver problem. But
everything works fine with the 3c900 nic. 


Some additional information (exploit):

[root@echo log]# ifconfig eth0:0 212.37.15.17
[root@echo log]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:80:C8:F7:0F:DA  
          inet addr:212.37.15.19  Bcast:212.37.15.255
	  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21704 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14769 errors:0 dropped:0 overruns:0 carrier:0
          collisions:24 txqueuelen:100 
          Interrupt:9 Base address:0xdc80 

eth0:0    Link encap:Ethernet  HWaddr 00:80:C8:F7:0F:DA  
          inet addr:212.37.15.17  Bcast:212.37.15.255
	  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:9 Base address:0xdc80 

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

[root@echo log]# tcpdump -n -i  eth0 host 212.37.15.17
tcpdump: listening on eth0
19:35:12.056232 212.37.15.14 > 212.37.15.17: icmp: echo request
19:35:12.056259 212.37.15.17 > 212.37.15.14: icmp: echo reply
19:35:13.050520 212.37.15.14 > 212.37.15.17: icmp: echo request
19:35:13.050548 212.37.15.17 > 212.37.15.14: icmp: echo reply
19:35:14.050518 212.37.15.14 > 212.37.15.17: icmp: echo request
19:35:14.050540 212.37.15.17 > 212.37.15.14: icmp: echo reply
19:35:17.049072 arp who-has 212.37.15.17 tell 212.37.15.14
19:35:17.049105 arp reply 212.37.15.17 is-at 0:80:c8:f7:f:da
19:35:18.013666 130.240.192.145 > 212.37.15.17: icmp: echo request
19:35:19.002895 130.240.192.145 > 212.37.15.17: icmp: echo request
19:35:20.001946 130.240.192.145 > 212.37.15.17: icmp: echo request
19:35:21.003478 130.240.192.145 > 212.37.15.17: icmp: echo request

......
The tcpdump shows that the machine answers a ping from a machine on
the _same_ subnet. But when it receives a ping from a machine on a
different subnet, it's ignored.

Anyone who has an idea about what this problem?

/Jakob
--