gif(4) and bpf(4)

Nickolay Kritsky Nickolay.Kritsky at astra-sw.com
Wed Jan 26 02:12:26 PST 2005


Please do the following:

ping -r -S 192.168.1.1 192.168.4.13 >/dev/null 2>&1 &
netstat -I gif0 -w 1
and see if any packets are counted. If you are using IPSec, maybe your packets are encrypted before they go to gif. See this article:
http://groups-beta.google.com/group/sol.lists.freebsd.net/browse_frm/thread/de878d5a36d383f1/ffa608ca991d0c3c?q=tcpdump+gif+freebsd&_done=%2Fgroups%3Fq%3Dtcpdump+gif+freebsd%26&_doneTitle=Back+to+Search&&d#ffa608ca991d0c3c

Can you post your IPSec policy (with sensitive info removed, of course).

(Google rulez :-) )

Nick

-----Original Message-----
From: Jeremie Le Hen [mailto:jeremie at le-hen.org]
Sent: Tuesday, January 25, 2005 7:09 PM
To: Jeremie Le Hen; freebsd-net at freebsd.org
Subject: Re: gif(4) and bpf(4)


> Interesting. It seems gif isn't passing anything back at all. Can you verify
> that the routes for the addresses you're pinging traverse gif0? I'd
> probably also try csjp@'s bpfstat tool to get a closer look at what's
> going on in bpf.

Yes they are (network on the other side of the tunnel is 192.168.4.0/24) :
%%%
  yoda:tools# netstat -rnf inet
  Routing tables
  
  Internet:
  Destination        Gateway            Flags    Refs      Use  Netif Expire
  default            <hidden gw>        UGSc       24 17513460    ep0
  <hidden net>/24    link#4             UC          1        0    ep0
  <hidden ip>        127.0.0.1          UGHS        0       70    lo0
  <hidden gw>        00:07:cb:0e:2e:70  UHLW       25        0    ep0   1188
  127.0.0.1          127.0.0.1          UH          3   816372    lo0
  192.168.0          link#2             UC          1        0   sis1
  192.168.0.4        00:a0:cc:da:9f:62  UHLW        2     2188   sis1    625
  192.168.1          link#1             UC          6        0   sis0
  192.168.1.1        00:09:5b:1a:48:94  UHLW        1    31599    lo0
  192.168.1.2        00:09:5b:1a:4f:4d  UHLW        0      752   sis0   1199
  192.168.1.25       00:04:23:89:e5:84  UHLW        0      562   sis0    353
  192.168.1.53       00:04:23:89:e5:84  UHLW        2   167625   sis0   1156
  192.168.1.222      00:04:23:89:e5:84  UHLW        2  7601091   sis0    262
  192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWb       0       15   sis0
  192.168.4          192.168.4.13       UGSc        0   691911   gif0
  192.168.4.13       192.168.1.1        UH          3     6949   gif0
%%%

I got bpfstat on csjp@'s FreeBSD webpage, but it is designed to work
with devfs.  Running RELENG_4, it just does not compile :-(.

> Also try assigning a local address to an instance of gif on the affected
> system and pinging a destination through it using the -r and -S options
> whilst running tcpdump to be sure.

Here is it, with the interface configuration :

%%%
  yoda:sys# ifconfig gif0
  gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
          tunnel inet <hidden ip> --> <hidden peer ip>
          inet6 fe80::209:5bff:fe1a:4894%gif0 prefixlen 64 scopeid 0xa 
          inet 192.168.1.1 --> 192.168.4.13 netmask 0xffffff00 

  yoda:sys# ping -r -S 192.168.1.1 192.168.4.13 >/dev/null 2>&1 &
  [1] 63095

  yoda:sys# /usr/local/sbin/tcpdump -c 2 -ni ep0 'esp'
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  listening on ep0, link-type EN10MB (Ethernet), capture size 96 bytes
  17:06:09.008978 IP 82.233.239.98 > 82.66.245.132: ESP(spi=0x0f5d2cbd,seq=0x3a9)
  17:06:09.046998 IP 82.66.245.132 > 82.233.239.98: ESP(spi=0x00439e94,seq=0x3a9)
  2 packets captured
  106 packets received by filter
  0 packets dropped by kernel

  yoda:sys# /usr/local/sbin/tcpdump -y null -c 2 -ni gif0 'esp'
  tcpdump: data link type null
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  listening on gif0, link-type NULL (BSD loopback), capture size 96 bytes
  ^C
  0 packets captured
  0 packets received by filter
  0 packets dropped by kernel
%%%

> Can you post the revision(s) of the source files? e.g.:
> 	src/sys/net/if_gif.c
> 	src/sys/netinet/in_gif.c
> 	src/sys/netinet6/in6_gif.c
> ...and uname -a?

I already looked on CVSweb, but I saw no relevant commit log.

%%%
  yoda:sys# ident net/if_gif.c netinet/in_gif.c netinet6/in6_gif.c 
  net/if_gif.c:
       $FreeBSD: src/sys/net/if_gif.c,v 1.4.2.15 2002/11/08 16:57:13 ume Exp $
       $KAME: if_gif.c,v 1.87 2001/10/19 08:50:27 itojun Exp $
  
  netinet/in_gif.c:
       $FreeBSD: src/sys/netinet/in_gif.c,v 1.5.2.11 2003/01/23 21:06:45 sam Exp $
       $KAME: in_gif.c,v 1.54 2001/05/14 14:02:16 itojun Exp $
  
  netinet6/in6_gif.c:
       $FreeBSD: src/sys/netinet6/in6_gif.c,v 1.2.2.7 2003/01/23 21:06:47 sam Exp $
       $KAME: in6_gif.c,v 1.49 2001/05/14 14:02:17 itojun Exp $
  yoda:sys# uname -a 
  FreeBSD yoda.tataz.chchile.org 4.10-STABLE FreeBSD 4.10-STABLE #44: Wed Jul  7 03:35:21 CEST 2004     root at yoda.tataz.chchile.org:/usr/src/sys/compile/YODA  i386
%%%

> Hope this helps,

I hope too ;-).
Many thanks,
Regards,
-- 
Jeremie Le Hen
jeremie at le-hen.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