[Click] packets not seen by click unless tcpdump running

Eddie Kohler kohler at CS.UCLA.EDU
Fri Oct 15 00:04:56 EDT 2004


Please try it with PROMISC and see if Click gets all the packets (as 
well as others).  Let us know...

E


On Oct 14, 2004, at 9:03 PM, Marcel Poisot wrote:

> I don't think PROMISC is my problem.  I really do just want packets 
> destined for my test machine, not everything else on the network.  My 
> second machine sends telnet SYN packets to the test box's IP address, 
> so the test box should be giving them to my click configuration even 
> with PROMISC=false.
>
> And it does give some of the packets, some of the time.  It seems 
> somewhat random as to how many of the three telnet SYN packets Click 
> sees, but usually its not all three.  However, with tcpdump 
> simultaneously running on the test machine, ALL (3) of the expected 
> telnet SYN packets (addressed for the test machine) enter the Click 
> configuration, every time.
>
> I added a Queue just after ToDevice, just in case, to no avail.
>
> I'm stymied.
>
>
> Marcel
>
>
> Eddie Kohler wrote:
>
>> Hi Marcel,
>> 1. Your first problem sounds like you didn't set FromDevice's PROMISC 
>> argument to true.  Without PROMISC true, the FromDevice is not acting 
>> as a sniffer; it's just reporting packets sent to *this* host.
>> 2. Queues maximize utilization.  You place a Queue anywhere you have 
>> a bursty input process, where you might need storage to absorb a 
>> burst.  For example, say you have a FromDevice that can generate up 
>> to 300 packets/sec, and a ToDevice that can send at most 250 
>> packets/sec.  Then you want to place a Queue in between, so that if 
>> the FromDevice generates a burst, no packets are dropped.  In 
>> concrete terms, you place it on the boundary between push elements 
>> and pull elements.
>> Eddie
>> On Oct 14, 2004, at 12:27 PM, Marcel Poisot wrote:
>>> I have the following configuration, run in User mode:
>>>
>>> FromDevice( eth0 ) -> ToDump( input.dump ) -> /* uninteresting stuff 
>>> */
>>>
>>> I have Iptables set to drop packets from INPUT, and accept all 
>>> packets
>>> from FORWARD and OUTPUT.  I do this because I just want to passively
>>> record packets right now, and I don't want the OS sending out RST or 
>>> any
>>> programs actually responding to packets.
>>>
>>> With this router running, I try to telnet to this machine from a 
>>> second
>>> machine, expecting input.dump to record the several SYN packets 
>>> issued
>>> by telnet trying to initiate the connection.  I have tcpdump running 
>>> on
>>> the second machine so I see the three SYN packets go out.
>>>
>>> However, input.dump only records the first SYN packet.  Sometimes I 
>>> see
>>> other traffic, such as ARP requests and NetBios broadcasts from other
>>> machines on the network.
>>>
>>> Strangely, if I run tcpdump at the same time as the click router, 
>>> then
>>> input.dump DOES record all the traffic I think it should be getting 
>>> (ie,
>>> the three SYN packets)!  What is going on here?  Why does the click
>>> router not receive traffic unless tcpdump is running?
>>>
>>>
>>>
>>> 2.
>>>
>>> What is the proper/required use of Queue?  Is it needed for Userland
>>> click configurations, or just Kernel mode?  Where in a configuration
>>> should I put them, and how many are needed?  (I really don't want any
>>> packets dropped).  Could this have anything to do with my problem 
>>> above?
>>>
>>>
>>> Thanks,
>>> Marcel
>>>
>>>
>>> _______________________________________________
>>> click mailing list
>>> click at amsterdam.lcs.mit.edu
>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list