This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

VPN Tunnel between ASG and Cisco

Hi,

I recently replace our Cisco PIX that had 2 IPSEC tunnels connect to 2 Cisco 17xx routers with an ASG 220.  I thought everything was OK until I actually tried to do work through one of the tunnels.  It seems that one tunnel works fine, but the other tunnel will only accept a small packet.  I have not changed either Cisco 17xx router configs, but after talking to Astaro Support tech I was told that it is probably an MTU setting issue.  I did change the MTU but it didn't seem to make any difference.  The largest packet that I can ping without fragmentation is 1392.

Does anyone have enough experience to know how to match the ASG and Cisco MTU settings?  Astaro support tech had no Cisco experience.

Thanks,


This thread was automatically locked due to age.
Parents
  • I don't know but, I'm planning to connect a few ASG120's to a Cisco 2800 so if you have any luck please let me know what happend.

    Thanks
    Bob
  • I have a handlful of Cisco 800 series and one Cisco 1721 router that work fine with Astaro without MTU modifications over Cable/DSL/ and DS-1 links.  What type of link is the problematic one?

    -Scott
  • What?
    What you refer to is not so much a mismatch of MTUs between Astaro and Cisco, although it is related to MTU or, more specifically, Path MTU Discovery (PMTUD).  Because you're dealing with security devices, most would try to close down as much ICMP as possible, if not all, which breaks PMTUD.  Essentially, every host should attempt PMTUD as part of session establishment.  So, if host A sends out a PMTUD query and gets blocked by some upstream ACL or device, then it must assume the MTU of its outgoing interface.  So, in part of the TCP SYN, the Maximum Segment Size (TCP MSS) is sent from originator to recipient.  This tells the recipient to reply with TCP payloads no larger than that value.  Unless otherwise set lower by the originator or some device in the middle, this will default to the MTU of the original interface, probably near 1500 bytes.  So, since all "interesting" traffic traversing a tunnel is encapsulated, this means that if a TCP packet started at or near the MSS or MTU (near 1500 bytes), it will have to be fragmented to fit within two IPSec packets.  This fragmentation takes both time and CPU/memory resources, as do the re-assembly at the other end.  TCP is not so forgiving about extra time being added in the process.

    Workaround?
    There are several ways to alleviate this issue.  First, don't use TCP. [:D] (jk)
    Actually, first would be to create the necessary rules to permit just enough ICMP to make PMTUD work through the tunnels.  Next, set the MTU/MSS on every host in the network, which is not trivial or reasonable in most environments.  Lastly, if your Cisco device is running 12.3T or 12.4 IOS, you may be able to apply a command to essentially translate the MSS field of any TCP SYNs traversing that router.  The command is "ip tcp adjust-mss " and it should be applied to the interface on the inside of your tunnels.  The MSS Size should be the largest packet that you could otherwise send across without fragmentation, which you can determine by playing with ping and payload sizes, of course setting the DF (don't fragment) bit.  You will find that it will be between 1420 and 1460 bytes.  Why this is, is because the IPSec header/trailer takes up part of the IP payload that would have otherwise been TCP header/trailer.  So, now you have:

    IP Header+IP Payload+IP CRC
    --IP Payload = IPSec Header+IPSec Payload+IPSec CRC
    ----IPSec Payload = TCP Header+TCP Payload+TCP CRC

    So, new TCP Payload = old TCP Payload - IPSec Header - IPSec CRC

    All in all , you lose about 20 bytes due to IPSec overhead.  However, without otherwise downsizing your TCP packets, any that reach the tunnel at or above the new MSS will cause fragmentation.

    Just be glad you're not also tackling GRE through IPSec in order to run EIGRP or OSPF, or to otherwise use multicast over the tunnel.  Then, you have TCP encapsulated in GRE encapsulated in IPSec encapsulated in IP, where you lose about another 20 bytes.

    Hope this helps!

    Rob
  • Hello,

    Currently we are trying to create a connection between an astaro vpn environment and a cisco 2800. 

    Cisco IOS Software, 2800 Software (C2800NM-ADVSECURITYK9-M), Version 12.4(1a), RELEASE SOFTWARE (fc2)

    We created the following config:

    crypto isakmp key ******* address IP_1 

    crypto ipsec transform-set lan2lan esp-3des esp-sha-hmac

    crypto map MyMap 3 ipsec-isakmp
     set peer IP_1 
     set transform-set lan2lan
     match address 103

    interface Tunnel2
     ip unnumbered FA0/1
     ip nat outside
     ip virtual-reassembly
     keepalive 10 4
     tunnel source FastEthernet0/0
     tunnel destination IP_1 

    ip access-list extended OutToIn
     permit gre host IP_1 host IP_LOCAL_INTERFACE
     permit esp host IP_1 host IP_LOCAL_INTERFACE
     permit udp host IP_1 host IP_LOCAL_INTERFACE eq isakmp
     deny   ip any any log

    access-list 103 permit ip any any

    The isv we try to connect to provided us with the following information:



    Is the config we made correct, or shouldent we use a GRE tunnel and just enrypt the data to the endpoint of the isv?
Reply
  • Hello,

    Currently we are trying to create a connection between an astaro vpn environment and a cisco 2800. 

    Cisco IOS Software, 2800 Software (C2800NM-ADVSECURITYK9-M), Version 12.4(1a), RELEASE SOFTWARE (fc2)

    We created the following config:

    crypto isakmp key ******* address IP_1 

    crypto ipsec transform-set lan2lan esp-3des esp-sha-hmac

    crypto map MyMap 3 ipsec-isakmp
     set peer IP_1 
     set transform-set lan2lan
     match address 103

    interface Tunnel2
     ip unnumbered FA0/1
     ip nat outside
     ip virtual-reassembly
     keepalive 10 4
     tunnel source FastEthernet0/0
     tunnel destination IP_1 

    ip access-list extended OutToIn
     permit gre host IP_1 host IP_LOCAL_INTERFACE
     permit esp host IP_1 host IP_LOCAL_INTERFACE
     permit udp host IP_1 host IP_LOCAL_INTERFACE eq isakmp
     deny   ip any any log

    access-list 103 permit ip any any

    The isv we try to connect to provided us with the following information:



    Is the config we made correct, or shouldent we use a GRE tunnel and just enrypt the data to the endpoint of the isv?
Children
No Data