kern/121642: When using IPSec,
tcpdump shows non-decapsulated packets on gif interface
Alexander Zagrebin
alexz at visp.ru
Wed Mar 12 11:50:01 UTC 2008
>Number: 121642
>Category: kern
>Synopsis: When using IPSec, tcpdump shows non-decapsulated packets on gif interface
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Mar 12 11:50:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Alexander Zagrebin
>Release: 7.0-RELEASE
>Organization:
>Environment:
FreeBSD hostname 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Thu Mar 6 14:32:06 MSK 2008 alex at hostname:/usr/src/sys/i386/compile/KERNEL i386
>Description:
I'm using ipsec-protected tunnel between 2 hosts.
The first one (HostA) is running 6.3-RELEASE and second one (HostB) - 7.0-RELEASE.
The network topology:
------- public network -------
| |
| |
A.A.A.A B.B.B.B
Host A Host B
6.3-RELEASE 7.0-RELEASE
192.168.0.2 192.168.1.1
| |
| |
private private
net 192.168.0.0/24 net 192.168.1.0/24
After creating the tunnel using gif interfaces without IPSec, I can successfully
ping host 192.168.0.10 from 192.168.1.2.
tcpdump on gif interfaces shows:
HostA# tcpdump -ni gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 96 bytes
21:21:20.861465 IP 192.168.1.2 > 192.168.0.10: ICMP echo request, id 512, seq 49921, length 40
21:21:20.862060 IP 192.168.0.10 > 192.168.1.2: ICMP echo reply, id 512, seq 49921, length 40
HostB# tcpdump -ni gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 96 bytes
21:21:25.012390 IP 192.168.1.2 > 192.168.0.10: ICMP echo request, id 512, seq 49921, length 40
21:21:25.014457 IP 192.168.0.10 > 192.168.1.2: ICMP echo reply, id 512, seq 49921, length 40
All right.
Now I'm starting IPSec.
ipsec.conf on HostA:
spdadd B.B.B.B/32 A.A.A.A/32 ipencap
-P in ipsec esp/tunnel/B.B.B.B-A.A.A.A/require;
spdadd A.A.A.A/32 B.B.B.B/32 ipencap
-P out ipsec esp/tunnel/A.A.A.A-B.B.B.B/require;
ipsec.conf on HostB:
spdadd A.A.A.A/32 B.B.B.B/32 ipencap
-P in ipsec esp/tunnel/A.A.A.A-B.B.B.B/require;
spdadd B.B.B.B/32 A.A.A.A/32 ipencap
-P out ipsec esp/tunnel/B.B.B.B-A.A.A.A/require;
Pinging 192.168.0.10 from 192.168.1.2 is successful again, but
tcpdump shows:
HostA# tcpdump -ni gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 96 bytes
21:24:12.429778 IP 192.168.1.2 > 192.168.0.10: ICMP echo request, id 512, seq 51969, length 40
21:24:12.430246 IP 192.168.0.10 > 192.168.1.2: ICMP echo reply, id 512, seq 51969, length 40
HostB# tcpdump -ni gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 96 bytes
21:24:16.577374 IP 192.168.1.2 > 192.168.0.10: ICMP echo request, id 512, seq 51969, length 40
21:24:16.580876 IP 10.2.222.2 > 10.255.255.2: IP 192.168.0.10 > 192.168.1.2:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ICMP echo reply, id 512, seq 51969, length 40 (ipip-proto-4)
Oops!
tcpdump shows non-decapsulated packets, but tunnel works fine.
>How-To-Repeat:
See above
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list