05-11-2019 06:29 AM
Experts,
I am looking for some assistance with configuring/troubleshooting IOS to do AnyConnect remote access, allowing remote users to access local resources, as well as traverse other L2L tunnels on the 1921.
What is not working:
I am not able to get remote users connected to the hub 1921 via AnyConnect to be able to access internal resources, or resources over a L2L tunnel to an ASA5520.
What is working:
What I believe is correct:
Possible issues:
I can't find anymore configuration examples to follow for this.
This was the guide I used to get this partially setup: https://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/200533-AnyConnect-Configure-Basic-SSLVPN-for-I.html#anc13
Lastly, this router is a hub for other ASAs to dynamically connect to. Since the ASA5500 series doesn't do VTIs, I had to create a policy based dynamic map on this 1921 to avoid creating a bunch of individual L2Ls. It works, I've already tested that a 5505 could connect and traffic flowed. I kept the ASA5520 being used for this testing static for more clarity.
Can anyone offer more guidance?
Our topology:
Config:
Cisco 2941 HUB Router
Current configuration : 21224 bytes ! ! Last configuration change at 10:03:23 EDT Fri May 10 2019 by [REDACTED] ! version 15.7 service tcp-keepalives-in service tcp-keepalives-out service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname [REDACTED] ! boot-start-marker boot system flash:c1900-universalk9-mz.SPA.157-3.M3.bin boot system flash:c1900-universalk9-mz.SPA.154-3.M2.bin boot-end-marker ! ! logging buffered 4096 enable secret 5 [REDACTED] ! aaa new-model ! ! aaa authentication login default local aaa authentication login local_access local aaa authentication login AAA_ANYCONNECT local aaa authorization exec default local ! ! ! ! ! ! aaa session-id common clock timezone EST -5 0 clock summer-time EDT recurring ! ! ! ! ! ! ! ! ! ! ip dhcp pool DHCP-POOL_INTERNAL network 172.20.48.0 255.255.255.0 domain-name [REDACTED] default-router 172.20.48.254 dns-server 192.168.0.1 172.20.0.6 8.8.8.8 ! ! ! no ip bootp server ip domain lookup source-interface GigabitEthernet0/0 ip domain name [REDACTED] ip name-server 192.168.0.1 ip name-server 192.168.0.2 ip name-server 172.20.0.6 ip cef no ipv6 cef ! ! flow record nbar-appmon match ipv4 source address match ipv4 destination address match application name collect interface output collect counter bytes collect counter packets collect timestamp absolute first collect timestamp absolute last ! ! flow monitor application-mon cache timeout active 60 record nbar-appmon ! parameter-map type inspect global max-incomplete low 18000 max-incomplete high 20000 nbar-classify multilink bundle-name authenticated ! cts logging verbose ! crypto pki trustpoint selfsigned enrollment selfsigned revocation-check crl ! crypto pki trustpoint test_trustpoint_config_created_for_sdm subject-name e=sdmtest@sdmtest.com revocation-check crl ! crypto pki trustpoint [REDACTED] enrollment terminal usage ike usage ssl-server usage ssl-client fqdn [REDACTED] subject-name [REDACTED] revocation-check crl ! ! crypto pki certificate chain selfsigned crypto pki certificate chain test_trustpoint_config_created_for_sdm crypto pki certificate chain [REDACTED] certificate [REDACTED] quit certificate ca [REDACTED] quit license udi pid CISCO1921/K9 sn [REDACTED] ! ! ! redundancy ! crypto ikev2 proposal IKEV2-PROPOSAL_1 encryption aes-cbc-256 integrity sha512 group 24 crypto ikev2 proposal IKEV2-PROPOSAL_2 encryption aes-cbc-256 integrity sha256 group 24 ! crypto ikev2 policy IKEV2-POLICY proposal IKEV2-PROPOSAL_1 proposal IKEV2-PROPOSAL_2 ! ! crypto ikev2 profile IKEV2-PROFILE_S2S_ASA5520 match identity remote address [REDACTED] identity local key-id ASA5520 authentication remote pre-share key [REDACTED] authentication local pre-share key [REDACTED] ! crypto ikev2 profile IKEV2-PROFILE_S2S_DYNAMIC description ** Allows dynamic tunnels ** match identity remote any authentication remote pre-share key [REDACTED] authentication local pre-share key [REDACTED] ! no crypto ikev2 http-url cert ! ! ! class-map match-any CM_VOICE match ip dscp ef class-map type inspect match-any INTERNAL_DOMAIN_FILTER match protocol msnmsgr match protocol ymsgr class-map type inspect match-all CLASSMAP_INSPECTION-VPN-IN match access-group name ACL_VPN-IN class-map type inspect match-any CLASSMAP_INSPECTION-OUTBOUND match protocol tcp match protocol udp match protocol icmp match protocol dns match protocol http match protocol https ! policy-map type inspect POLICYMAP_INSPECTION-OUTBOUND class type inspect CLASSMAP_INSPECTION-OUTBOUND inspect class class-default drop log policy-map PM_QOS class CM_VOICE priority class class-default fair-queue policy-map PM_OUTSIDE_OUTBOUND class class-default shape average 12000000 service-policy PM_QOS policy-map type inspect POLICYMAP_INSPECTION-VPN-IN class type inspect CLASSMAP_INSPECTION-VPN-IN inspect class class-default drop ! zone security INTERNET zone security INSIDE zone-pair security ZP_INSIDE-to-OUTSIDE source INSIDE destination INTERNET service-policy type inspect POLICYMAP_INSPECTION-OUTBOUND zone-pair security ZP_OUTSIDE-to-INSIDE source INTERNET destination INSIDE ! ! crypto vpn anyconnect usbflash0:/webvpn/anyconnect-win-4.4.00243-webdeploy-k9.pkg sequence 1 ! crypto isakmp policy 1 ! crypto isakmp policy 2 encr aes 256 hash sha256 group 2 ! ! crypto ipsec transform-set TRANSFORMSET-IPSEC_S2S-ASA esp-aes 256 esp-sha-hmac mode tunnel crypto ipsec transform-set TRANSFORMSET-IPSEC_S2S-DYNAMIC esp-aes 256 esp-sha-hmac mode tunnel ! ! ! crypto dynamic-map CRYPTOMAP-DYNAMIC_S2S-DYNAMIC 1 description ** DYNAMIC TUNNELS ** set transform-set TRANSFORMSET-IPSEC_S2S-DYNAMIC set pfs group24 set ikev2-profile IKEV2-PROFILE_S2S_DYNAMIC ! ! crypto map CRYPTOMAP_OUTSITE 1 ipsec-isakmp set peer [REDACTED] set transform-set TRANSFORMSET-IPSEC_S2S-ASA set pfs group24 set ikev2-profile IKEV2-PROFILE_S2S_ASA5520 match address ACL_CRYPTOMAP-S2S-ASA crypto map CRYPTOMAP_OUTSITE 65001 ipsec-isakmp dynamic CRYPTOMAP-DYNAMIC_S2S-DYNAMIC ! ! ! ! ! interface Loopback0 ip address 172.20.55.254 255.255.255.255 ! interface Embedded-Service-Engine0/0 no ip address shutdown ! interface GigabitEthernet0/0 description **Inside Interface** mtu 1400 ip address 172.20.48.254 255.255.255.0 ip nat inside ip virtual-reassembly in zone-member security INSIDE duplex auto speed auto ! interface GigabitEthernet0/1 description ** OUTSIDE INTERNET ** ip address dhcp no ip proxy-arp ip nat outside ip virtual-reassembly in zone-member security INTERNET duplex auto speed auto no cdp enable crypto map CRYPTOMAP_OUTSITE ! interface Virtual-Template1 ip unnumbered Loopback0 zone-member security INSIDE ! ip local pool ADDRESSPOOL_ANYCONNECT 172.20.52.1 172.20.52.6 ip forward-protocol nd ! ip http server ip http upload enable path flash: ip http upload overwrite ip http access-class 23 ip http authentication local ip http secure-server ip http secure-trustpoint [REDACTED] ! ip tftp source-interface Loopback0 ip nat inside source route-map ROUTEMAP_NAT interface GigabitEthernet0/1 overload ip route 0.0.0.0 0.0.0.0 dhcp ip ssh source-interface GigabitEthernet0/0 ip ssh version 2 ip scp server enable ! ip access-list standard ACL_ANYCONNECT-SPLITTUNNEL permit 172.20.0.0 0.0.63.255 permit 10.1.0.0 0.0.7.255 permit 192.168.0.0 0.0.7.255 ! ip access-list extended ACL_CRYPTOMAP-S2S-ASA permit ip 172.20.48.0 0.0.7.255 192.168.0.0 0.0.7.255 permit ip 172.20.48.0 0.0.7.255 10.1.0.0 0.0.7.255 permit ip 172.20.48.0 0.0.7.255 172.20.32.0 0.0.7.255 ip access-list extended ACL_NAT deny ip 172.20.48.0 0.0.7.255 172.20.0.0 0.0.63.255 deny ip 172.20.48.0 0.0.7.255 192.168.0.0 0.0.7.255 deny ip 172.20.48.0 0.0.7.255 10.1.0.0 0.0.7.255 permit ip 172.20.48.0 0.0.0.255 any ip access-list extended ACL_VPN-IN permit esp any any permit udp any any eq isakmp ! ! route-map ROUTEMAP_NAT permit 10 match ip address ACL_NAT match interface GigabitEthernet0/1 ! ! access-list 23 permit 172.20.0.0 0.0.63.255 access-list 23 permit 192.168.0.0 0.0.7.255 access-list 23 permit 10.1.0.0 0.0.7.255 ! ! ! control-plane ! ! vstack ! line con 0 session-timeout 60 exec-timeout 60 0 session-disconnect-warning 300 logging synchronous login authentication local_access line aux 0 line 2 no activation-character no exec transport preferred none transport output pad telnet rlogin lapb-ta mop udptn v120 ssh stopbits 1 line vty 0 4 session-timeout 60 access-class 23 in exec-timeout 60 0 privilege level 15 session-disconnect-warning 300 logging synchronous login authentication local_access transport input telnet ssh line vty 5 15 session-timeout 60 session-disconnect-warning 300 logging synchronous transport input none ! scheduler allocate 20000 1000 ntp server 192.168.3.5 source GigabitEthernet0/0 ! ! webvpn gateway WEBVPN-GATEWAY_ANYCONNECT ip interface GigabitEthernet0/1 port 1025 ssl trustpoint [REDACTED] inservice dtls port 1025 ! webvpn context WEBVPN-CONTEXT_ANYCONNECT aaa authentication list AAA_ANYCONNECT gateway WEBVPN-GATEWAY_ANYCONNECT ! ssl authenticate verify all inservice ! policy group GROUPPOLICY_ANYCONNECT-SPLIT functions svc-enabled svc address-pool "ADDRESSPOOL_ANYCONNECT" netmask 255.255.255.248 svc keep-client-installed svc split include acl ACL_ANYCONNECT-SPLITTUNNEL svc dns-server primary 192.168.0.1 svc dns-server secondary 192.168.0.2 ! policy group GROUPPOLICY-ANYCONNECT-FULL functions svc-enabled svc address-pool "ADDRESSPOOL_ANYCONNECT" netmask 255.255.255.248 svc dns-server primary 192.168.0.1 svc dns-server secondary 192.168.0.2 default-group-policy GROUPPOLICY_ANYCONNECT-SPLIT ! end
Solved! Go to Solution.
05-11-2019 10:31 AM
Hello,
the subnet you included in the ACL, 172.20.52.0/18, includes all hosts in the range 172.20.0.1 - 172.20.63.254, which includes the entire inside network.
To be on the safe side, and to avoid making mistakes with access lists, I would always use an IP address range that is completely different from the local LAN (your NAT inside). So instead of 172.120.x.x, use something in the 10.x.x.x or 192.168.x.x range for the address pools...
05-11-2019 09:15 AM
Hello,
your local address pool (172.20.52.1 172.20.52.6) and your inside network appear to be in the same subnet that is included in the split ACL. Try to make the changes in bold:
ip access-list standard ACL_ANYCONNECT-SPLITTUNNEL
permit 172.20.52.0 0.0.0.255
permit 10.1.0.0 0.0.7.255
permit 192.168.0.0 0.0.7.255
webvpn context WEBVPN-CONTEXT_ANYCONNECT
aaa authentication list AAA_ANYCONNECT
gateway WEBVPN-GATEWAY_ANYCONNECT
ssl authenticate verify all
inservice
policy group GROUPPOLICY_ANYCONNECT-SPLIT
functions svc-enabled
svc address-pool "ADDRESSPOOL_ANYCONNECT" netmask 255.255.255.0
svc keep-client-installed
svc split include acl ACL_ANYCONNECT-SPLITTUNNEL
svc dns-server primary 192.168.0.1
svc dns-server secondary 192.168.0.2
virtual-template 1
default-group-policy GROUPPOLICY_ANYCONNECT-SPLIT
05-11-2019 10:13 AM - edited 05-11-2019 10:22 AM
Georg,
Thanks for reviewing my issue.
I believe the inside network should be 172.20.48.0/24.
interface GigabitEthernet0/0 description **Inside Interface** mtu 1400 ip address 172.20.48.254 255.255.255.0 ip nat inside ip virtual-reassembly in zone-member security INSIDE duplex auto speed auto
ip dhcp pool DHCP-POOL_INTERNAL network 172.20.48.0 255.255.255.0 domain-name [REDACTED] default-router 172.20.48.254 dns-server 192.168.0.1 172.20.0.6 8.8.8.8
There are four other sites (each site is assigned a /20) which is why I used a /18 in the split tunnel ACL.
I could break that out and only include the blocks for the other sites and the local block (172.20.48.0/24) if you think that should be tested.
Am I missing something else?
I'll start testing those changes once I get back to the device.
05-11-2019 10:20 AM
Here's something else that's weird:
The remote client can ping the 1921's loopback interface (Loopback 0, 172.20.55.254), which is included in the current split tunnel ACL
ip access-list standard ACL_ANYCONNECT-SPLITTUNNEL permit 172.20.0.0 0.0.63.255 (loopback is in here, works) permit 10.1.0.0 0.0.7.255 permit 192.168.0.0 0.0.7.255 (doesn't work)
Remote clients can ping this guy:
interface Loopback0 ip address 172.20.55.254 255.255.255.255
05-11-2019 10:31 AM
Hello,
the subnet you included in the ACL, 172.20.52.0/18, includes all hosts in the range 172.20.0.1 - 172.20.63.254, which includes the entire inside network.
To be on the safe side, and to avoid making mistakes with access lists, I would always use an IP address range that is completely different from the local LAN (your NAT inside). So instead of 172.120.x.x, use something in the 10.x.x.x or 192.168.x.x range for the address pools...
05-16-2019 07:50 AM
@Georg Pauwen wrote:...To be on the safe side, and to avoid making mistakes with access lists, I would always use an IP address range that is completely different from the local LAN (your NAT inside)...
I think that was the key. I didn't change the subnet I was using, but I changed the NAT ACL based on what you said about not overlapping:
ip access-list extended ACL_NAT deny ip 172.20.48.0 0.0.3.255 172.20.55.0 0.0.0.7 (added for AnyConnect) deny ip 172.20.48.0 0.0.7.255 172.20.0.0 0.0.63.255 (Sites 1-4 including this one) deny ip 172.20.48.0 0.0.7.255 192.168.0.0 0.0.7.255 (5th site) deny ip 172.20.48.0 0.0.7.255 10.1.0.0 0.0.7.255 (6th site) permit ip 172.20.48.0 0.0.0.255 any
(The remote subnet doesn't actually overlap the local LAN, local LAN is a /24 and remote is a /29 in two different subnets, but do the site to site tunnels using blocks /21 so one statement covers all the subnets at that site)
Results from remote AnyConnect client on 172.20.52.0/29:
Hitting other sites while remoted in using AnyConnect 172.20.52.2 going to:
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide