Thanks a lot, Bill! That was a great, compact lesson!

On Thu, Oct 18, 2012 at 1:50 PM, Bill Fenner <fen...@gmail.com> wrote:
> On Oct 18, 2012, at 7:00 AM, Ezequiel Garzón <garzon.luc...@gmail.com> wrote:
>
>> Thanks for your reply, Bill.
>>
>>> "ether proto \ip" is: <proto> <type> <id>
>>
>> In what sense is "proto" here a <type>. <type>s are described as
>> "qualifiers say what kind of thing the id name or  number  refers to.
>> Possible  types are host, net , port and portrange." Not only is
>> "proto" not given as an option, but it seems to me as if it belongs in
>> another category entirely.
>
> That part of the documentation is incomplete. "Proto" is just like "port" in 
> the sense that it is saying "look in this part of the packet".
>
>> This leads to the more central question of how to match "\ip" with
>> <id>. <id>s are defined in passing as "(name or number)". How can one
>> match conceptually "\ip" with an address?
>
> \ip is turned into 0x800 via an internal name -> number lookup.
>
>>
>> I'm sorry to insist on this open-ended issue. I know there must be
>> something off with my understanding, and would like to fix it if
>> possible!
>
> "Ether proto ip" says "look in the Ethernet header, in the proto field, for 
> the value 0x800".
>
> "Host host" says "look up host in /etc/hosts or in DNS, get an IP address for 
> it, and look for that IP address in the source or destination headers".
>
> You have to use "and" to join any "look here for this value and look there 
> for that value".
>
>   Bill
>
>>
>> Thanks again.
>>
>> Best regards,
>>
>> Ezequiel
>>
>> On Wed, Oct 17, 2012 at 4:49 PM, Bill Fenner <fen...@gmail.com> wrote:
>>> On Wed, Oct 17, 2012 at 3:59 AM, Ezequiel Garzón
>>> <garzon.luc...@gmail.com> wrote:
>>>> Greetings! I'm trying to understand tcpdump expressions a bit more,
>>>> and I'm confused about a basic example given in the pcap-filter man
>>>> pages. They first state:
>>>>
>>>> | The filter expression consists of one or more primitives. Primitives
>>>> usually consist of an id (name or number) preceded by one or more
>>>> qualifiers.
>>>>
>>>> In turn, these qualifiers are type, dir and proto. So far so good, but
>>>> further down we find this:
>>>>
>>>> |      ip host host
>>>> | which is equivalent to:
>>>> |      ether proto \ip and host host
>>>>
>>>> If I'm not mistaken, in the first case, ip and host are, respectively,
>>>> proto and type. What pattern does 'ether proto \ip' follow? Isn't
>>>> that, as a whole, a proto qualifier? If so, why isn't (a properly
>>>> escaped) 'ether proto \ip host host' legal (without the keyboard
>>>> 'and')?
>>>
>>> They're two separate primitives:
>>>
>>> "ether proto \ip" is: <proto> <type> <id>
>>>
>>> "host host" is <type> <id>
>>>
>>> Concatenating two primitives requires "and".
>>>
>>> (Don't get confused between "ether" being a <proto> and "proto" being
>>> a <type>: that doesn't make "proto" a <proto>.)
>>>
>>>  Bill
>> _______________________________________________
>> tcpdump-workers mailing list
>> tcpdump-workers@lists.tcpdump.org
>> https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to