[Click] Arp replies getting dropped

Yogesh Mundada yhm at cc.gatech.edu
Wed Jun 17 03:19:13 EDT 2009


Hi,

Thanks for the suggestion. I investigated the problem further using
ToHostSniffers and EtherSwitch elements. Here is my current click
config:
node2 (10.1.1.7) <-> (10.1.1.29, eth4) node0 (10.1.1.31, eth5)
<->(10.1.1.3) node3
------------------------
q2 :: Queue;
q3 :: Queue;

s :: EtherSwitch;

q2 -> ToDevice(eth4);
q3 -> ToDevice(eth5);

FromDevice(eth4) -> Print("From eth4") -> T0 :: Tee -> [0]s[0] -> q2;
FromDevice(eth5) -> Print("From eth5") -> T1 :: Tee -> [1]s[1] -> q3;

T0[1] -> ToHostSniffers;
T1[1] -> ToHostSniffers;
-------------------------

Now I see weird behaviour
1. With the above setup and ping from node3 to node2, arp queries
travel to node2. But arp replies from node2 never reach back to node3.
In the dmesg output, I see "From Eth5" messages but no "From Eth4"
messages.

2. If I start "tcpdump -i eth4",
   a. arp reply reaches to node3.
   b. node3 starts to send ICMP requests. node2 replies with ICMP
replies. But these ICMP replies never reach till node3. tcpdump output
on eth4 does not show anything more.
   c.  After the arp table entry times out on node3, it once again
querries for mac address, and successfully recieves arp reply.
   d. This cycle continues as long as I have tcpdump running on eth4.
If I terminate it then no arp replies reach to node3 and hence it does
not send ICMP requests.

Any ideas?

-Yogesh

On Tue, Jun 16, 2009 at 10:53 PM, Cliff Frey<cliff at meraki.com> wrote:
>
>> 1. Is my configuration wrong or does some internal switch connecting
>> node0 and node3 in Emulab, drops the packets?
>
> My guess is that an internal switch is keeping a mac address table.  And the
> fact that you are not overwriting the MAC address is confusing the switch
> somehow, or the switch already has a different mapping for the ethernet
> source address you are using.
>
>>
>> 2. I tried using tcpdump -i eth5. It did not work as click hijacks
>> packets. If I use Tee and ToHost element, would I be able to capture
>> packets using tcpdump? What is the preferred way?
>
> Look at the ToHostSniffers element.  You can use it with a Tee() to enable
> tcpdump to work.
>
> Cliff
>



More information about the click mailing list