I have an Avaya 9650 IP Phone that leverages and IPSec VPN tunnel that it creates in order to connect to the internal devices at the far end and operate. The tunnel looks like it gets established as I can see successful completion of phase 1 and phase 2. What happens next has been frustrating me since yesterday. The udp-encap esp packets that flow from the phone "disappear in FreeBSD (the firewall I use at home). I have a very simple setup that allows all traffic originating in the network out.
I have also explicitly created two rules to log anything to and from the Avaya phone to see if I can understand what's going on.
At the same time I am running tcpdump to log any packets seen on the internal interface for the ethernet address of the avaya phone.
Note the two packets at the end are not logged in the firewall logs that I am collecting, the packets are clearly seen on the interface but do not appear to submitted to ipfw somehow and passed through the firewall to it's final destination. The next packet logged on the firewall is a packet originating from the remote side to "keep alive" the ipsec tunnel.
My question is, what am I doing wrong or not understanding that would allow these packets to be processed by ipfw and subsequently passed to the final destination? Any insight is greatly appreciated.
I upgraded this morning to FreeBSD release 9 just to make sure I was at the most recent release prior to asking for someone's time in regards to my delima.
Is it necessary to compile a custom kernel with crypto and IPSEC references if I simply want to pass those packets along untouched (beyond NAT'ing of course)?
Thank you.
Jim Barker
Code:
[root@barker /usr/src/sys/i386/conf]# ipfw -a list
00100 34 6104 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 deny ip from any to ::1
00500 0 0 deny ip from ::1 to any
00600 16 1024 allow ipv6-icmp from :: to ff02::/16
00700 0 0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 268 20000 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 0 0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000 0 0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
62000 0 0 allow log esp from any to any
62001 0 0 allow log ah from any to any
62002 0 0 allow log ipencap from any to any
63000 44 9572 allow log ip from 192.168.0.125 to any
64000 297 19230 allow log ip from any to 192.168.0.125
65000 127768 45220220 allow ip from any to any
65535 0 0 deny ip from any to any
I have also explicitly created two rules to log anything to and from the Avaya phone to see if I can understand what's going on.
Code:
Mar 15 11:41:43 barker kernel: ipfw: 64000 Accept UDP xxx.xxx.xxx.xxx:4500 192.168.0.125:4500 in via tun0
Mar 15 11:41:43 barker kernel: ipfw: 64000 Accept UDP xxx.xxx.xxx.xxx:4500 192.168.0.125:4500 out via dc0
Mar 15 11:42:03 barker kernel: ipfw: 64000 Accept UDP xxx.xxx.xxx.xxx:4500 192.168.0.125:4500 in via tun0
Code:
11:41:43.055334 IP remotevpn.com.sae-urn > 192.168.0.125.sae-urn: isakmp-nat-keep-alive
11:41:45.474035 IP 192.168.0.125.sae-urn > remotevpn.com.sae-urn: UDP-encap: ESP(spi=0x2adcbeb9,seq=0x16), length 372
11:41:50.869500 IP 192.168.0.125.sae-urn > remotevpn.com.sae-urn: UDP-encap: ESP(spi=0x2adcbeb9,seq=0x17), length 372
Note the two packets at the end are not logged in the firewall logs that I am collecting, the packets are clearly seen on the interface but do not appear to submitted to ipfw somehow and passed through the firewall to it's final destination. The next packet logged on the firewall is a packet originating from the remote side to "keep alive" the ipsec tunnel.
My question is, what am I doing wrong or not understanding that would allow these packets to be processed by ipfw and subsequently passed to the final destination? Any insight is greatly appreciated.
I upgraded this morning to FreeBSD release 9 just to make sure I was at the most recent release prior to asking for someone's time in regards to my delima.
Code:
FreeBSD barker.nixlike.com 9.0-STABLE FreeBSD 9.0-STABLE #3: Thu Mar 15 08:38:35 EDT 2012
[email]root@barker.nixlike.com[/email]:/usr/obj/usr/src/sys/barker i386
Is it necessary to compile a custom kernel with crypto and IPSEC references if I simply want to pass those packets along untouched (beyond NAT'ing of course)?
Thank you.
Jim Barker