tcpdump - tun/tap virtual interfaces

Dambielle Yannick yannick.dambielle at free.fr
Sun Sep 28 15:57:40 PDT 2003


Sorry for the mistakes (again)... need to sleep :/
Bellow are the right results with the right ip address...

# route add 10.0.10.1 10.0.10.2

results are :

# route get 10.0.10.1
     route to: 10.0.10.1
 destination: 10.0.10.1
    gateway: 10.0.10.2
    interface: tap0

 # route get 10.0.10.2
     route to: 10.0.10.2
 destination: 10.0.10.2
    interface: tap0

 # ping 10.0.10.1
# tcpdump -i lo0 <-- nothing
# tcpdump -i tap0
 blablabla.... icmp: echo request
 blablabla.... icmp: echo reply

 # ping 10.0.10.2
# tcpdump -i lo0 <-- nothing
# tcpdump -i tap0
 blablabla.... icmp: echo request
 blablabla.... icmp: echo reply


Yannick

----- Original Message ----- 
From: "Dambielle Yannick" <yannick.dambielle at free.fr>
To: "Robert Watson" <rwatson at freebsd.org>; "Giovanni P. Tirloni"
<gpt at tirloni.org>
Cc: <freebsd-net at freebsd.org>
Sent: Monday, September 29, 2003 12:34 AM
Subject: Re: tcpdump - tun/tap virtual interfaces


> Hello,
> Thank you very much for the details. I think I'm starting to understand
the
> subject better.
> Well, I've did all again from the beggining and now I have the same
results
> has you had. It works.
> 10.0.10.1 is routed via lo0, and 10.0.10.2 is routed via tap0.
> Icmp requests and replies could be seen with tcpdump on lo0 for 10.0.10.1,
> but for 10.0.10.2, the request were passing trough tap0 while the replies
> took lo0 (??).
> I don't know, if what I'm going to say is the right method for having both
> replies and requests passing through the same interface, so please, give
me
> a better one.
>
> I did the following trick :
>
> # route add 10.0.10.1 10.0.10.2
>
> and the result is :
>
> # route get 10.0.10.1
>     route to: 10.0.10.1
> destination: 10.0.0.1
>    gateway: 10.0.0.1
>    interface: tap0
>
> # route get 10.0.10.2
>     route to: 10.0.10.2
> destination: 10.0.0.2
>    interface: tap0
>
> # ping 10.0.0.1
> # tcpdump -i lo0 <-- nothing
> # tcpdump -i tap0
> blablabla.... icmp: echo request
> blablabla.... icmp: echo reply
>
> # ping 10.0.0.2
> # tcpdump -i lo0 <-- nothing
> # tcpdump -i tap0
> blablabla.... icmp: echo request
> blablabla.... icmp: echo reply
>
> Now I can go back to my jails and my little project :)
>
> Yannick
>
> ----- Original Message ----- 
> From: "Robert Watson" <rwatson at freebsd.org>
> To: "Giovanni P. Tirloni" <gpt at tirloni.org>
> Cc: <freebsd-net at freebsd.org>
> Sent: Sunday, September 28, 2003 8:05 PM
> Subject: Re: tcpdump - tun/tap virtual interfaces
>
>
> >
> > On Sun, 28 Sep 2003, Giovanni P. Tirloni wrote:
> >
> > > * Robert Watson (rwatson at freebsd.org) wrote:
> > >
> > > > Do you see anything when you ping the broadcast address or other
> foreign
> > > > address of the tap interface?  Packets delivered to local IP
addresses
> > > > generally don't go out an interface.
> > >
> > >  About Ethernet frames not going out to the wire and being sent to the
> > >  loopback..
> > >
> > >  The check seems to happen at line 291 in if_ethersubr.c and then it
> > >  uses the if_simloop() function to copy the packet to the loopback
> > >  interface. Is that right?
> > >
> > >  The rcvif interface is set to the hardware device, how is this used
in
> > >  this case? What kind of checks are done to the rcvif usually?
> > >
> > >  I haven't received my copy of Steven's Volume 2 yet so if it's
> > >  explained there (as I hope) I will sit in my corner and wait to for
it
> > >  patiently :)
> >
> > Ethernet loopback does occur, and BPF will pick those up.  However, the
> > loopback you're seeing is actually happening at the IP layer, as a
result
> > of routing rather than link layer behavior:
> >
> > 10                 link#6             UC          1        0   tap0
> > 10.0.10.1          00:bd:18:a1:11:00  UHLW        0       26    lo0
> >
> > Local IP addresses have their packets routed to them over lo0, so the
> > packets being looked for can be found by doing tcpdump on lo0:
> >
> > test1# tcpdump -eni lo0 &
> > [2] 511
> > tcpdump: listening on lo0
> > test1# Sep 28 14:03:07 test1 kernel: lo0: promiscuous mode enabled
> >
> > test1# ping -c 1 10.0.10.1
> > PING 10.0.10.1 (10.0.10.1): 56 data bytes
> > 64 bytes from 10.0.10.1: icmp_seq=0 ttl=64 time=0.073 ms
> >
> > --- 10.0.10.1 ping statistics ---
> > 1 packets transmitted, 1 packets received, 0% packet loss
> > round-trip min/avg/max/stddev = 0.073/0.073/0.073/0.000 ms
> > test1# 14:03:12.713690 AF 2 84: 10.0.10.1 > 10.0.10.1: icmp: echo
request
> > 14:03:12.713724 AF 2 84: 10.0.10.1 > 10.0.10.1: icmp: echo reply
> >
> > Route command output appended below.
> >
> > Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
> > robert at fledge.watson.org      Network Associates Laboratories
> >
> > route get 10.0.10.1
> >    route to: 10.0.10.1
> > destination: 10.0.10.1
> >   interface: lo0
> >       flags: <UP,HOST,DONE,LLINFO,WASCLONED,LOCAL>
> >  recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu
> > expire
> >        0         0         0         0         0         0      1500
> > 0
> > test1# route get 10.0.10.2
> >    route to: 10.0.10.2
> > destination: 10.0.0.0
> >        mask: 255.0.0.0
> >   interface: tap0
> >       flags: <UP,DONE,CLONING>
> >  recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu
> > expire
> >        0         0         0         0         0         0      1500
> > -100
> >
> >
> > _______________________________________________
> > freebsd-net at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-net
> > To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
> >
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>



More information about the freebsd-net mailing list