[comp.protocols.tcp-ip] subnets/routers/bridges/redirects bug?

J.Crowcroft@CS.UCL.AC.UK (Jon Crowcroft) (07/22/89)

has anyone seen the following problem, and if so (or they understand
it), can they explain it better...?


Configuration:

src            dst a
 |                |
------------------------------- subnet ~b
        |                |
       subnet          MAC        
      routing        Bridge
       sun C             |
        |                |
------------------------------- subnet b
                | 
              dst b


error 1:
We got the subnet mask wrong on some src hosts

They routed to all subnets *except* b, via 
sun C, which has the *SAME* ethernet address on
both interfaces!! (by default, now changed).

- The bridge forwarded their packets so the sun saw them on both
interfaces. (bridge should prob. have kept local traffic local, but it
saw the ethernet address in its farside port list, so assumed it wasnt
local - i.e.bridge should check both for non-existence in local port as
well as existence in farside port before forwarding, maybe?)

- Interface on b receiving them causes IP on sunC to send icmp redirects
(didnt see where it was redirecting to, but suspect the same suns
interface on subnet ~b).

- Hosts on ~b get routing entries installed, *for every host* on subnet
 ~b, even though if running real routing 

- Major disaster (and prob a bug):

They subsequently (prob because they confuse redirect information when
their subnet mask is wrong) 
route *broadcast* packets to sunC - i.e. put IP broadcast in Ethernet
unicast packets directed to subnet router, which...

- Correctly drops them...

Hence, all services that rely on broadcast (for instance locating YP
servers) die the bad death.

so do the subnets/ethernets because they are flooded all the time with
redirects

(this was not restricted to suns - dec/hp and other YP clients were
just as bad).

p.s. our 3 fixes - 
0) fix subnet masks
i) turn off redirect in subnet router,
ii) turn off one erthernet interface in subnet router

other people's fixes:
0) never use the same physical address on multiple IP interfaces.
i) never send an IP broadcast to a router as it isnt going to route it
anyway.
ii) dont use broadcast for locating important clients, use
multicasts.

anyone agree/disagree with findings?

jon