Subject: kern/7480: IP severely broken
To: None <gnats-bugs@gnats.netbsd.org>
From: Martin Husemann <martin@rumolt.teuto.de>
List: netbsd-bugs
Date: 04/26/1999 15:23:54
>Number:         7480
>Category:       kern
>Synopsis:       ICMP errors with multiple interface at same local adress
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 26 15:20:01 1999
>Last-Modified:
>Originator:     Martin Husemann
>Organization:
>Release:        current as of April 27
>Environment:
	
System: NetBSD rumolt.teuto.de 1.4_ALPHA NetBSD 1.4_ALPHA (RUMOLT) #1: Wed Apr 7 07:27:08 MEST 1999 martin@hwart.teuto.de:/usr/src/sys-i4b/arch/i386/compile/RUMOLT i386

(sorry, I have to boot this old kernel to be able to deliver this PR - actual 
system running when the error happens is 1.4_BETA of today)

>Description:

I have this typical little network setup: a main router with an officialy
assigned IP number as the outer gateway. This router uses the same IP for 
multiple interfaces: the main internal ethernet network (we0) and several
point-to-point connections (in this case: multiple PPP dial up connections
via ISDN and a raw IP-over-HDLC ISDN connection to work).

Everything works fine as long as I only configure the main ethernet interface:

Script started on Mon Apr 26 23:59:05 1999
# ifconfig -a
ep0: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500
        address: 00:10:4b:24:be:a8
        media: Ethernet 10baseT
        status: active
we0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        address: 00:00:c0:11:48:2d
        media: Ethernet 10base5
        inet 212.8.203.81 netmask 0xfffffff8 broadcast 212.8.203.87
lo0: flags=8008<LOOPBACK,MULTICAST> mtu 32976
ipr0: flags=2810<POINTOPOINT,SIMPLEX,LINK1> mtu 1500
ipr1: flags=2810<POINTOPOINT,SIMPLEX,LINK1> mtu 1500
isp0: flags=810<POINTOPOINT,SIMPLEX> mtu 1500
isp1: flags=810<POINTOPOINT,SIMPLEX> mtu 1500
# ping -c 5 hwart
PING hwart.teuto.de (212.8.203.83): 56 data bytes
64 bytes from 212.8.203.83: icmp_seq=0 ttl=128 time=1.268 ms
64 bytes from 212.8.203.83: icmp_seq=1 ttl=128 time=1.344 ms
64 bytes from 212.8.203.83: icmp_seq=2 ttl=128 time=1.329 ms
64 bytes from 212.8.203.83: icmp_seq=3 ttl=128 time=1.333 ms
64 bytes from 212.8.203.83: icmp_seq=4 ttl=128 time=1.332 ms

----hwart.teuto.de PING Statistics----
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.268/1.321/1.344/0.030 ms
#
Script done on Mon Apr 26 23:59:20 1999

As soon as I go up to multiuser, configuring the remaining network interfaces,
the complete ethernet traffic on the main interface gets rejected with ICMP:
ttl exceeded in transit errors:

Script started on Tue Apr 27 00:00:36 1999
root has logged on ttyv0 from local.

[~] root@rumolt > ifconfig -a
ep0: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500
        address: 00:10:4b:24:be:a8
        media: Ethernet 10baseT
        status: active
we0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        address: 00:00:c0:11:48:2d
        media: Ethernet 10base5
        inet 212.8.203.81 netmask 0xfffffff8 broadcast 212.8.203.87
lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 32976
        inet 127.0.0.1 netmask 0xff000000 
ipr0: flags=2811<UP,POINTOPOINT,SIMPLEX,LINK1> mtu 1500
        inet 212.8.203.81 --> 192.168.110.42 netmask 0xffffffff 
ipr1: flags=2810<POINTOPOINT,SIMPLEX,LINK1> mtu 1500
isp0: flags=2810<POINTOPOINT,SIMPLEX,LINK1> mtu 1500
        inet 212.8.203.81 --> 212.8.192.1 netmask 0xffffffff 
isp1: flags=2810<POINTOPOINT,SIMPLEX,LINK1> mtu 1500
        inet 194.139.121.194 --> 194.139.121.193 netmask 0xffffffff 
[~] root@rumolt > ping -c 5 hwart
PING hwart.teuto.de (212.8.203.83): 56 data bytes
----hwart.teuto.de PING Statistics----
5 packets transmitted, 0 packets received, 100.0% packet loss
[~] root@rumolt >
Script done on Tue Apr 27 00:01:09 1999

>How-To-Repeat:

configure a point-to-point interface with the same local address as
an ethernet interface, try to ping a host on the ethernet.

>Fix:

N/A - sorry.
>Audit-Trail:
>Unformatted: