I'm trying to set up an L2TP over IPSec remote access VPN on an ASA 5505 (8.2(5)). I'm able to authenticate and a connection is established. I am not, however, able to access resources on the internal network or access the internet. Furthermore, the ASA is not able to ping connected clients. On the connected client I can ping the ASA's external IP. When I do that, I even see the encrypted and decrypted packet count go up on the ASA (via *show crypto ipsec sa*). I've tried doing a few things with NAT and with the routes, but just can't get it working. My internal network is 10.3.3.0/24 and my VPN pool is 192.168.3.0/24. Below I've copied the relevant portions of the config. <pre><code> object-group service Internet-udp udp description UDP Standard Internet Services port-object eq domain port-object eq ntp object-group service Internet-tcp tcp description TCP Standard Internet Services port-object eq www port-object eq https port-object eq smtp port-object eq 465 port-object eq pop3 port-object eq 995 port-object eq ftp port-object eq ftp-data port-object eq domain port-object eq ssh port-object eq 993 object-group network Internal-Subnet object-group network obj-vpnpool access-list inside-in remark -=[Access Lists for Outgoing Packets from Inside interface]=- access-list inside-in extended permit udp 10.3.3.0 255.255.255.0 any object-group Internet-udp access-list inside-in extended permit tcp 10.3.3.0 255.255.255.0 any object-group Internet-tcp access-list inside-in extended permit icmp 10.3.3.0 255.255.255.0 any access-list outside-in remark -=[Access Lists for Incoming Packets on OUTSIDE interface]=- access-list outside-in extended permit icmp any any echo-reply access-list DefaultRAGroup_splitTunnelAcl standard permit 10.3.3.0 255.255.255.0 access-list DefaultRAGroup_splitTunnelAcl standard permit 192.168.3.96 255.255.255.224 access-list inside_nat0_outbound extended permit ip 10.3.3.0 255.255.255.0 192.168.3.0 255.255.255.0 ip local pool VPNPool 192.168.3.100-192.168.3.120 mask 255.255.255.0 nat (inside) 0 access-list inside_nat0_outbound nat (inside) 1 10.3.3.0 255.255.255.0 access-group inside-in in interface inside access-group outside-in in interface outside route outside 0.0.0.0 0.0.0.0 **.**.**.** 1 group-policy DefaultRAGroup internal group-policy DefaultRAGroup attributes dns-server value **.**.**.** **.**.**.** vpn-tunnel-protocol l2tp-ipsec split-tunnel-policy tunnelspecified split-tunnel-network-list value DefaultRAGroup_splitTunnelAcl crypto ipsec transform-set ESP-AES-256-MD5 esp-aes-256 esp-md5-hmac crypto ipsec transform-set ESP-DES-SHA esp-des esp-sha-hmac crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac crypto ipsec transform-set ESP-DES-MD5 esp-des esp-md5-hmac crypto ipsec transform-set ESP-AES-192-MD5 esp-aes-192 esp-md5-hmac crypto ipsec transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac crypto ipsec transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac crypto ipsec transform-set ESP-AES-128-SHA esp-aes esp-sha-hmac crypto ipsec transform-set ESP-AES-192-SHA esp-aes-192 esp-sha-hmac crypto ipsec transform-set ESP-AES-128-MD5 esp-aes esp-md5-hmac crypto ipsec transform-set TRANS_ESP_3DES_SHA esp-3des esp-sha-hmac crypto ipsec transform-set TRANS_ESP_3DES_SHA mode transport crypto ipsec security-association lifetime seconds 28800 crypto ipsec security-association lifetime kilobytes 4608000 crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set transform-set TRANS_ESP_3DES_SHA ESP-AES-128-SHA ESP-AES-128-MD5 ESP-AES-192-SHA ESP-AES-192-MD5 ESP-AES-256-SHA ESP-AES-256-MD5 ESP-3DES-SHA ESP-3DES-MD5 ESP-DES-SHA ESP-DES-MD5 crypto map outside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP crypto map outside_map interface outside crypto isakmp enable outside crypto isakmp policy 10 authentication pre-share encryption 3des hash sha group 2 lifetime 86400 </code> </pre> **Update** I took @Ron's suggest and learned how the packet tracer works. Here are some things I found Issuing *packet-tracer input inside icmp 10.3.3.100 8 0 192.168.3.100* I get <pre> <code> Phase: 1 Type: ROUTE-LOOKUP Subtype: input Result: ALLOW Config: Additional Information: in 192.168.3.100 255.255.255.255 outside Phase: 2 Type: ACCESS-LIST Subtype: log Result: ALLOW Config: access-group inside-in in interface inside access-list inside-in extended permit icmp 10.3.3.0 255.255.255.0 any Additional Information: Phase: 3 Type: IP-OPTIONS Subtype: Result: ALLOW Config: Additional Information: Phase: 4 Type: INSPECT Subtype: np-inspect Result: ALLOW Config: Additional Information: Phase: 5 Type: NAT-EXEMPT Subtype: Result: ALLOW Config: match ip inside 10.3.3.0 255.255.255.0 outside 192.168.3.0 255.255.255.0 NAT exempt translate_hits = 16, untranslate_hits = 2 Additional Information: Phase: 6 Type: NAT Subtype: Result: ALLOW Config: nat (inside) 1 10.3.3.0 255.255.255.0 match ip inside 10.3.3.0 255.255.255.0 outside any dynamic translation to pool 1 (**.**.**.** [Interface PAT]) translate_hits = 21582, untranslate_hits = 2392 Additional Information: Phase: 7 Type: NAT Subtype: host-limits Result: ALLOW Config: nat (inside) 1 10.3.3.0 255.255.255.0 match ip inside 10.3.3.0 255.255.255.0 inside any dynamic translation to pool 1 (No matching global) translate_hits = 0, untranslate_hits = 0 Additional Information: Phase: 8 Type: HOST-LIMIT Subtype: Result: ALLOW Config: Additional Information: Phase: 9 Type: L2TP-PPP Subtype: Result: ALLOW Config: Additional Information: Phase: 10 Type: PPP Subtype: Result: ALLOW Config: Additional Information: Phase: 11 Type: FLOW-CREATION Subtype: Result: ALLOW Config: Additional Information: New flow created with id 23037, packet dispatched to next module Result: input-interface: inside input-status: up input-line-status: up output-interface: outside output-status: up output-line-status: up Action: allow </code> </pre> Phase 6 shows a NAT translation. I then check the echo-reply with *packet-tracer input outside icmp 192.168.3.100 0 0 10.3.3.100* and got <pre> <code> Phase: 1 Type: ROUTE-LOOKUP Subtype: input Result: ALLOW Config: Additional Information: in 10.3.3.0 255.255.255.0 inside Phase: 2 Type: ACCESS-LIST Subtype: log Result: ALLOW Config: access-group outside-in in interface outside access-list outside-in extended permit icmp any any echo-reply Additional Information: Phase: 3 Type: IP-OPTIONS Subtype: Result: ALLOW Config: Additional Information: Phase: 4 Type: CP-PUNT Subtype: Result: ALLOW Config: Additional Information: Phase: 5 Type: L2TP-PPP Subtype: Result: ALLOW Config: Additional Information: Phase: 6 Type: INSPECT Subtype: np-inspect Result: ALLOW Config: Additional Information: Phase: 7 Type: VPN Subtype: ipsec-tunnel-flow Result: ALLOW Config: Additional Information: Phase: 8 Type: NAT-EXEMPT Subtype: rpf-check Result: ALLOW Config: Additional Information: Phase: 9 Type: HOST-LIMIT Subtype: Result: ALLOW Config: Additional Information: Phase: 10 Type: NAT Subtype: rpf-check Result: ALLOW Config: nat (inside) 1 10.3.3.0 255.255.255.0 match ip inside 10.3.3.0 255.255.255.0 outside any dynamic translation to pool 1 (**.**.**.** [Interface PAT]) translate_hits = 21589, untranslate_hits = 2392 Additional Information: Phase: 11 Type: FLOW-CREATION Subtype: Result: ALLOW Config: Additional Information: New flow created with id 23079, packet dispatched to next module Result: input-interface: outside input-status: up input-line-status: up output-interface: inside output-status: up output-line-status: up Action: allow </code> </pre> Phase 8 show nat-exempt but Phase 10 shows a nat translation. That would be problematic. **Another update** Currently *show vpn-sessiondb detail remote filter protocol L2TPOverIPSec* returns while a client is connected. On the other hand *show vpn-sessiondb detail remote filter protocol L2TPOverIPSecOverNatT* shows the connected client. While trying to do things on the client, the Bytes Rx and Pkts Rx increase. Bytes Tx and Pkts Tx do not increase (Pkts Tx stays at 17). Pkts Tx Drop and Pkts Rx Drop are both 0. If I ping 192.168.3.100 (the vpn client), then Pkts Tx increases for each ping.