ARP dient dazu adressen der schicht 3 auf die schicht 2 abzubilden.
wenn du nun einen L3-Switch, a.k.a. Router, hast der als koppelelement deine netzsegmente untereinander und mit dem rest der welt verbindet, kommt es im fall von ARP poisoning darauf an wie diese kiste mit frames umgeht:
wenn beispielsweise dein L3 switch strikt nach dem schichtenmodell arbeitet, ist es mittels ARP poisoning immernoch möglich den treffic umzuleiten:
ein host ein deinem internen netz möchte daten an einen anderen host (z.B. zum Gateway) in deinem internen netz versenden. da die IP bekannt ist, aber der link nicht IP basiert ist, sondern beispielsweise Ethernet spricht, muss nun die zieladresse auf der link schicht in erfahrung gebracht werden ... steht die nicht als gültiger eintrag im lokalen ARP cache oder ist statisch konfiguriert, wird ARP durchgeführt... mittels ARP poisoning wird eine falsche adresse geliefert... die nun auf der link schicht versendeten daten haben als ziel nicht die MAC des ziel hosts, sondern die MAC die der angreifer eingebracht hat.
der L3 switch sieht das eingehende frame, und betrachtet die zieladresse. da es nicht seine eigene ist, leitet er das frame weiter zum switching des betreffenden vlans.
das ziel wird entweder im MAC cache gefunden, und das frame an den gelisteten port gegeben, oder per broadcast an alle dem vlan zugehörigen ports gesendet und erreicht wenig später den host des angreifers ...
ein nicht strikt das schichtenmodell befolgender L3 switch wird vermutlich entdecken, dass das beinhaltete protokoll IP ist, und dass die ziel adresse ausserhalb des LANs liegt ... jedoch könnte solches verhalten zu anderen problemen führen. die trennung der schichten ist wichtig um kompatiblität und interoperabilität zu gewährleisten, daher ist derartiges verhalten eines L3 Switches vermutlich auf explizite konfiguration zurück zu führen...