Do you by any chance have boxes running Windows with broadcom NICs and
are using their teaming software?

On Thu, Aug 13, 2009 at 7:58 AM, Stuart Kendrick<[email protected]> wrote:
> Ahh.  I've been staring at a lot of ARP frames these last few days.  But I
> hadn't thought through this.
>
> I see three classes of ARP gleaning, all of them rely on the entry already
> existing in Solaris' cache, per your point.
>
> (1) Remote station emits a gratuitous broadcast ARP:  Solaris updates its
> cache
> (2) Remote station emits a gratuitous unicast ARP:    Solaris updates its
> cache
> (3) Remote station emits an ARP Request for the Solaris box's address:
>  Solaris
>    responds *and* uses the information in the ARP Request to update its
> cache
>
> #3 is where I'm encountering confused machines:  the source IP address in
> these ARP Requests is accurate, but the source MAC address is not.
>
> And I can see how failover schemes might use any or all of these techniques
> to propagate a change in their IP address <==> MAC address mappings.  Dang.
>  I don't see a way to harden against this, at the host level, not without
> getting into static ARP mappings, which looks like a swamp to me.
>
> Thanx for the explanation,
>
> --sk
>
> Peter Memishian wrote:
>>
>>  > Is there a way to disable ARP gleaning under Solaris?
>>
>> Solaris will not track the ARP mappings for random on-link hosts -- the IP
>> address will need to already be in its cache for some reason.  My guess
>> would be that the Solaris box was already communicating with 10.1.2.9 and
>> then got the bogus ARP packet from 10.1.2.3 and dutifully updated its
>> cache with the bogus information.  There's really nothing Solaris can do
>> about this case -- it is core to many failover technologies that Solaris
>> updates its ARP cache in this situation.
>>
>>  > I have broken end-stations which emit confused ARP responses, mixing up
>> their  > MAC addresses with other end-stations' IP addresses.
>>  >  > e.g.
>>  > Sender MAC address:  00:11:22:33:44:55  (correct)
>>  > Sender IP address:   10.1.2.9 (INCORRECT)
>>  > Target MAC address:  00:aa:bb:cc:dd:ee
>>  > Target IP address:   10.1.2.20
>>  >  > In this case, the sender's actual IP address is, say, 10.1.2.3,
>> *NOT* 10.1.2.9.  >   10.1.2.9 in fact belongs to a legitimate end-station.
>>  But not this one.  > Solaris gleans the IP address / MAC address mapping
>> from watching this traffic,  > updates its ARP cache with this incorrect
>> entry ... and then starts addressing  > frames to 10.1.2.9 using MAC address
>> 00:11:22:33:44:55 ... and this of course  > doesn't work too well.
>>  >  > I have a number of these confused boxes, and I am gradually hunting
>> them down.  > In the meantime, I'm wanting to harden my Solaris boxes
>> against gleaning these  > addresses.  Actually, even once I've cleaned up my
>> confused end-stations, I'd  > like to harden Solaris against this kind of
>> experience ... this smells like a  > classic man-in-the-middle vulnerability
>> to me.  If Solaris wants a MAC address,  > let it ARP for it ... I don't
>> want it trying to save a little work by gleaning.
>>
> _______________________________________________
> networking-discuss mailing list
> [email protected]
>
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to