Community discussions

MikroTik App
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

IPSEC and NAT-T problem

Tue Jul 21, 2009 6:13 pm

I have a VPN from Windows 7 laptop to MikroTik using L2TP/IPSEC with NAT-T. It works without NAT-T but it has a strange error using NAT-T:
14:59:28 ipsec respond new phase 1 negotiation: 68.183.xxx.xxx[500]<=>67.169.xxx.xxx[500] 
14:59:28 ipsec begin Identity Protection mode. 
14:59:28 ipsec received broken Microsoft ID: MS NT5 ISAKMPOAKLEY 
14:59:28 ipsec received Vendor ID: RFC 3947 
14:59:28 ipsec received Vendor ID: draft-ietf-ipsec-nat-t-ike-02 
14:59:28 ipsec 
14:59:28 ipsec received Vendor ID: FRAGMENTATION 
14:59:28 ipsec Selected NAT-T version: RFC 3947 
14:59:28 ipsec invalid DH group 20. 
14:59:28 ipsec invalid DH group 19. 
14:59:28 ipsec Hashing 68.183.xxx.xxx[500] with algo #2  
14:59:28 ipsec NAT-D payload #0 verified 
14:59:28 ipsec Hashing 67.169.xxx.xxx[500] with algo #2  
14:59:28 ipsec NAT-D payload #1 doesn't match 
14:59:28 ipsec NAT detected: PEER 
14:59:28 ipsec Hashing 67.169.xxx.xxx[500] with algo #2  
14:59:28 ipsec Hashing 68.183.xxx.xxx[500] with algo #2  
14:59:28 ipsec Adding remote and local NAT-D payloads. 
14:59:28 ipsec NAT-T: ports changed to: 67.169.xxx.xxx[4500]<->68.183.xxx.xxx[4500] 
14:59:28 ipsec KA list add: 68.183.xxx.xxx[4500]->67.169.xxx.xxx[4500] 
14:59:28 ipsec ISAKMP-SA established 68.183.xxx.xxx[4500]-67.169.xxx.xxx[4500] spi:4ad7f89178310abd:5ca6f63efdbf1
b79 
14:59:28 ipsec respond new phase 2 negotiation: 68.183.xxx.xxx[4500]<=>67.169.xxx.xxx[4500] 
14:59:28 ipsec Update the generated policy : 192.168.1.101/32[1701] 68.183.xxx.xxx/32[1701] proto=udp dir=in 
14:59:28 ipsec Adjusting my encmode UDP-Transport->Transport 
14:59:28 ipsec Adjusting peer's encmode UDP-Transport(4)->Transport(2) 
14:59:28 ipsec IPsec-SA established: ESP/Transport 67.169.xxx.xxx[4500]->68.183.xxx.xxx[4500] spi=76079680(0x488e
240) 
14:59:28 ipsec IPsec-SA established: ESP/Transport 68.183.xxx.xxx[4500]->67.169.xxx.xxx[4500] spi=4062236856(0xf2
20d0b8) 
14:59:28 ipsec the length in the isakmp header is too big. 
14:59:29 ipsec the length in the isakmp header is too big. 
14:59:31 ipsec the length in the isakmp header is too big. 
14:59:35 ipsec the length in the isakmp header is too big.
Any ideas about "the length in the isakmp header is too big." ???
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

Re: IPSEC and NAT-T problem

Tue Jul 21, 2009 7:01 pm

It seems the tunnel is established correctly, but the kernel is not capturing the tunneled packets and is instead letting them go through to racoon. They're not a valid isakmp packet so racoon says the length is wrong.
 
User avatar
andrewluck
Forum Veteran
Forum Veteran
Posts: 700
Joined: Fri May 28, 2004 9:05 pm
Location: Norfolk, UK

Re: IPSEC and NAT-T problem

Sun Jul 26, 2009 11:50 pm

I've got a support ticket open for this issue. Nothing back yet apart from 'we're looking at it'.

In my case I worked around the problem by turning off NAT-T and just passing ESP across the intermediate NAT device. Your milage may vary as this depends upon the NAT device being able to keep track of the ESP connections.

Kind regards

Andrew
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

Re: IPSEC and NAT-T problem

Mon Jul 27, 2009 10:26 pm

Thanks Andrew. Unfortunately for me the client is a roadwarrior so there is no access to the client NAT.

I'm not sure if this is a kernel issue or a racoon issue but some other distros have this problem as well.
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Fri Oct 02, 2009 3:29 pm

Thank you very much for the report.
Perhaps we will need you help.
It seems we were able to track that issue once again. We are looking for the way how to fix the problem.
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

Re: IPSEC and NAT-T problem

Fri Oct 02, 2009 7:25 pm

That's fantastic you are looking into the issue. I don't know how to fix the problem but I will see if I can come up with anything.
 
williamm
just joined
Posts: 13
Joined: Sun Apr 03, 2005 2:51 am
Location: Brazil

Re: IPSEC and NAT-T problem

Tue Oct 20, 2009 4:58 am

Hi,

I'm Experiencing exactly the same problem. RouterOS version is 3.20.

The L2TP/IPSEC client is a Vista SP2 computer and is behind a NAT device (Dlink DI-624). The L2TP/IPSEC server is the Mikrotik with Public IP and NAT-T enabled.

The log shows the same error: ipsec the length in the isakmp header is too big
 
rga
just joined
Posts: 4
Joined: Thu Oct 16, 2008 7:06 pm

Re: IPSEC and NAT-T problem

Thu Oct 22, 2009 4:24 pm

No connection to this "feature"?

The default behavior of IPsec NAT traversal (NAT-T) is changed in Windows XP Service Pack 2
http://support.microsoft.com/kb/885407/en-us

How to configure an L2TP/IPsec server behind a NAT-T device in Windows Vista and in Windows Server 2008
http://support.microsoft.com/kb/926179/en-us
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

Re: IPSEC and NAT-T problem

Thu Oct 22, 2009 7:26 pm

No connection to this "feature"?

The default behavior of IPsec NAT traversal (NAT-T) is changed in Windows XP Service Pack 2
http://support.microsoft.com/kb/885407/en-us

How to configure an L2TP/IPsec server behind a NAT-T device in Windows Vista and in Windows Server 2008
http://support.microsoft.com/kb/926179/en-us
I believe the change Microsoft implemented only applies when the server is behind NAT. My server is not behind NAT, just the client is.
 
williamm
just joined
Posts: 13
Joined: Sun Apr 03, 2005 2:51 am
Location: Brazil

Re: IPSEC and NAT-T problem

Thu Oct 29, 2009 3:29 am

Exactly, this Microsoft changing only should affect NAT servers but in my case also the server has a public IP so only the client is behind a NAT.

Besides that, I've tried to change the client to a XP SP1 machine and the problem persists.

Is there anyone who tried with the new v4.x software? Mine has been upgraded to v3.30 with no success.

Best Regards,

William.
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Fri Dec 04, 2009 10:29 am

Fix for the problem will be included in version 4.4. Thank you very much for your reports.
If anyone will have the problem with ISAKMP header, please let us know.
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

Re: IPSEC and NAT-T problem

Fri Dec 04, 2009 5:28 pm

Fix for the problem will be included in version 4.4. Thank you very much for your reports.
If anyone will have the problem with ISAKMP header, please let us know.
Woohoo! Thank you! Now for L2TP/IPSEC the L2TP is still somewhat broken, it responds on the wrong IP...

http://forum.mikrotik.com/viewtopic.php?f=2&t=31702
 
rpress
Member Candidate
Member Candidate
Topic Author
Posts: 113
Joined: Thu May 07, 2009 5:13 am

Re: IPSEC and NAT-T problem

Thu Dec 24, 2009 11:29 pm

I just tested the IPSEC NAT-T and it is indeed working in v4.4.
 
williamm
just joined
Posts: 13
Joined: Sun Apr 03, 2005 2:51 am
Location: Brazil

Re: IPSEC and NAT-T problem

Sun Jan 03, 2010 3:15 am

Well, I've just tried with v4.4 but with no success.

Please "rpress" did you need to configure anything in /ip ipsec policy? I did not put anything there because I've let the /ip ipsec peer with Gererate Policy enabled.

When connecting, the RouterOs creates two Installed SAs with the Public IP's either from server and client normally. But it creates only one Policy using the Natted client IP as source and Public server IP as destination.

The log shows: packet shorter than isakmp headre size

Best Regards,

William.
 
roadracer96
Forum Veteran
Forum Veteran
Posts: 730
Joined: Tue Aug 25, 2009 12:01 am

Re: IPSEC and NAT-T problem

Mon Jan 04, 2010 8:22 pm

IPSEC NAT-T works properly, but L2TP responds outside of the tunnel, so it jus tbangs the firewall of the client.
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Thu Jan 07, 2010 11:38 am

williamm, original error was different. Please, give more information about your setup, what device you have on the other end?
What is the configuration for /ip ipsec peer on MikroTik RouterOS?
 
williamm
just joined
Posts: 13
Joined: Sun Apr 03, 2005 2:51 am
Location: Brazil

Re: IPSEC and NAT-T problem

Sat Jan 09, 2010 7:45 pm

sergejs,

The RouterOS device is a Soekris x86 SBC model NET4501. It's running the L2TP/IPSec server with the following IPSec config:

/ip ipsec proposal
set default auth-algorithms=sha1 disabled=no enc-algorithms=3des lifetime=30m \
name=default pfs-group=modp1024

/ip ipsec peer
add address=0.0.0.0/0:500 auth-method=pre-shared-key dh-group=modp1024 \
disabled=no dpd-interval=disable-dpd dpd-maximum-failures=1 \
enc-algorithm=3des exchange-mode=main generate-policy=yes hash-algorithm=\
sha1 lifebytes=0 lifetime=1d nat-traversal=yes proposal-check=obey secret=\
"12345" send-initial-contact=no


The L2TP/IPSec client is a Windows Vista SP2 laptop connected to the Internet with dynamic IP and using a Wireless Router Dlink DI-624 with NAT enabled. I've tried also to connect the laptop directly to the public IP (not via the natted wireless router) and removing the NAT-T from RouterOS and this way it works perfectly.

Best Regards,

Wiliam.
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Mon Jan 11, 2010 3:05 pm

Post exact error that you have in /log print.
 
williamm
just joined
Posts: 13
Joined: Sun Apr 03, 2005 2:51 am
Location: Brazil

Re: IPSEC and NAT-T problem

Sat Jan 16, 2010 10:22 pm

sergejs,

Here is my /log print:

18:12:06 ipsec respond new phase 1 negotiation: 189.19.xxx.xxx[500]<=>201.1.xxx.xxx[500]
18:12:06 ipsec begin Identity Protection mode.
18:12:06 ipsec received broken Microsoft ID: MS NT5 ISAKMPOAKLEY
18:12:06 ipsec received Vendor ID: RFC 3947
18:12:06 ipsec received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
18:12:06 ipsec
18:12:06 ipsec received Vendor ID: FRAGMENTATION
18:12:06 ipsec Selected NAT-T version: RFC 3947
18:12:06 ipsec invalid DH group 20.
18:12:06 ipsec invalid DH group 19.
18:12:06 ipsec Hashing 189.19.86.219[500] with algo #2
18:12:06 ipsec NAT-D payload #0 verified
18:12:06 ipsec Hashing 201.1.105.73[500] with algo #2
18:12:06 ipsec NAT-D payload #1 doesn't match
18:12:06 ipsec NAT detected: PEER
18:12:07 ipsec Hashing 201.1.xxx.xxx[500] with algo #2
18:12:07 ipsec Hashing 189.19.xxx.xxx[500] with algo #2
18:12:07 ipsec Adding remote and local NAT-D payloads.
18:12:07 ipsec NAT-T: ports changed to: 201.1.xxx.xxx[60052]<->189.19.xxx.xxx[4500
]
18:12:07 ipsec KA list add: 189.19.xxx.xxx[4500]->201.1.xxx.xxx[60052]
18:12:07 ipsec ISAKMP-SA established 189.19.xxx.xxx[4500]-201.1.xxx.xxx[60052] spi
:a98aeec3c010dc6d:6d9f0d8a225f8f17
18:12:08 ipsec respond new phase 2 negotiation: 189.19.xxx.xxx[4500]<=>201.1.xxx.xxx[60052]
18:12:08 ipsec no policy found, try to generate the policy : 10.0.2.3/32[1701] 1
89.19.86.219/32[1701] proto=udp dir=in
18:12:08 ipsec Adjusting my encmode UDP-Transport->Transport
18:12:08 ipsec Adjusting peer's encmode UDP-Transport(4)->Transport(2)
18:12:08 ipsec trns_id mismatched: my:3DES peer:AES
18:12:08 ipsec not matched
18:12:08 ipsec Adjusting my encmode UDP-Transport->Transport
18:12:08 ipsec trns_id mismatched: my:3DES peer:AES
18:12:08 ipsec not matched
18:12:08 ipsec Adjusting peer's encmode UDP-Transport(4)->Transport(2)
18:12:08 ipsec the length in the isakmp header is too big.
18:12:08 ipsec IPsec-SA established: ESP/Transport 201.1.xxx.xxx[60052]->189.19.xxx.xxx[4500] spi=207874013(0xc63e7dd)
18:12:08 ipsec IPsec-SA established: ESP/Transport 189.19.xxx.xxx[4500]->201.1.xxx.xxx[60052] spi=2053995087(0x7a6d7a4f)
18:12:09 ipsec the length in the isakmp header is too big.
18:12:11 ipsec the length in the isakmp header is too big.
18:12:15 ipsec the length in the isakmp header is too big.
18:12:23 ipsec the length in the isakmp header is too big.
18:12:28 ipsec packet shorter than isakmp header size (5, 3063842135, 28)
18:12:33 ipsec the length in the isakmp header is too big.
18:12:43 ipsec generated policy, deleting it.
18:12:43 ipsec get a src address from ID payload 10.0.2.3[1701] prefixlen=32 ul_
proto=17
18:12:43 ipsec get dst address from ID payload 189.19.xxx.xxx[1701] prefixlen=32
ul_proto=17
18:12:43 ipsec pfkey spddelete(inbound) sent.
18:12:43 ipsec purged IPsec-SA proto_id=ESP spi=2053995087.
18:12:43 ipsec pfkey X_SPDDELETE failed: No such file or directory
18:12:43 ipsec pfkey X_SPDDELETE failed: No such file or directory
18:12:43 ipsec ISAKMP-SA expired 189.19.xxx.xxx[4500]-201.1.xxx.xxx[60052] spi:a98
aeec3c010dc6d:6d9f0d8a225f8f17
18:12:44 ipsec ISAKMP-SA deleted 189.19.xxx.xxx[4500]-201.1.xxx.xxx[60052] spi:a98
aeec3c010dc6d:6d9f0d8a225f8f17
18:12:44 ipsec KA remove: 189.19.xxx.xxx[4500]->201.1.xxx.xxx[60052]

Best Regards,

William.
 
michalciza2
just joined
Posts: 2
Joined: Sun Jan 17, 2010 11:34 pm

Re: IPSEC and NAT-T problem

Mon Jan 18, 2010 12:29 am

Hi there,


Is there anyone has got working Windows L2TP / IPSec when client is behind NAT? (using NAT-T)

I have installed the latest version v4.5 so I was hoping that it would be possible to get connected L2TP/IPSec from Windows or iPhone behind NAT since it was not possible due this error "ipsec the length in the isakmp header is too big.".

The error is now fixed. Anyway there is still problem that it is not possible to establish L2TP/IPSec connection when the client computer is behind NAT even if NAT-Traversal option is enabled.

L2TP is still redialling because L2TP server is not able to communicate with the client IP because IPSec doesn't work well.

Here is auto generated IPSec Policy:
src-address=10.0.2.15/32:any dst-address=90.180.35.153/32:any protocol=udp 
     action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=10.0.2.15 
     sa-dst-address=93.190.55.253 proposal=default priority=2
Could be problem in private IP address "10.0.2.15/32" ??
The L2TP server can receive the client's control message but the client is not able to receive server's replies.

It would be GREAT if Mikrotik Team could show to all of us, how to get this working. Because I spent really lot of time looking for any working solution, but it seems that the nobody got this working yet. THANKS!
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Mon Jan 18, 2010 11:54 am

williamm, set the same settings for ip ipsec peer and ip ipsec proposal configuration. As currently you have different settings for them, as it is written in the log.
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Mon Jan 18, 2010 11:59 am

michalciza2, are you able to establish the connect, when host is not behind the NAT?
 
williamm
just joined
Posts: 13
Joined: Sun Apr 03, 2005 2:51 am
Location: Brazil

Re: IPSEC and NAT-T problem

Mon Jan 18, 2010 8:30 pm

sergejs,

I really don't know why the log informs that about encryption-algorithm mismatch. Both the ipsec proposal and peer and configured with 3des. Maybe the "peer" in line logs refers to the ipsec client. And If you check the next line in logs, it's informed that the encryption peer is adjusted:

18:12:08 ipsec Adjusting my encmode UDP-Transport->Transport
18:12:08 ipsec trns_id mismatched: my:3DES peer:AES
18:12:08 ipsec not matched
18:12:08 ipsec Adjusting peer's encmode UDP-Transport(4)->Transport(2)

From Microsoft's Article ID: 942957 it´s stated:

By default, if the Allow only secure connections option is selected, Windows Vista negotiates by using the AES-128 encryption method and the 3DES encryption method.

Anyway if I only disable the NAT-T and connect the Windows Vista client directly to the public IP, the L2TP connects perfectly.

William.
 
cdiggity
newbie
Posts: 31
Joined: Fri Oct 31, 2008 12:40 pm

Re: IPSEC and NAT-T problem

Mon Jan 25, 2010 7:46 pm

Fix for the problem will be included in version 4.4. Thank you very much for your reports.
If anyone will have the problem with ISAKMP header, please let us know.
Will this problem be fixed for version 3.30 as well?
 
User avatar
sergejs
MikroTik Support
MikroTik Support
Posts: 6695
Joined: Thu Mar 31, 2005 3:33 pm
Location: Riga, Latvia
Contact:

Re: IPSEC and NAT-T problem

Tue Jan 26, 2010 3:02 pm

It will not be fixed for 3.30, only if there will be new v3.x version.
But current stable version is v4.x, you should use it.
 
ayufan
Member
Member
Posts: 334
Joined: Sun Jun 03, 2007 9:35 pm
Contact:

Re: IPSEC and NAT-T problem

Fri Feb 19, 2010 8:08 pm

michalciza2, are you able to establish the connect, when host is not behind the NAT?
I do have that same problem when client has public IP it works like charm but when client is not it's stuck in trying to connect to L2TP server.

Kamil
 
lcx
newbie
Posts: 26
Joined: Wed Nov 11, 2009 2:58 pm

Re: IPSEC and NAT-T problem

Mon Mar 22, 2010 10:52 am

I also seem to have the same issue. Unfortunately I didn't notice it was the same issue and created a new topic: http://forum.mikrotik.com/viewtopic.php ... 07#p199607
Can someone merge the topics ?
 
siel
just joined
Posts: 6
Joined: Tue Jun 22, 2010 1:46 am

Re: IPSEC and NAT-T problem

Tue Jun 22, 2010 1:55 am

This issue still hasn't been resolved, even on 5.0b3.

It looks like the problem is in ipsec policy.

installed sa:
0 E spi=0x1C55FBB src-address=78.38.29.135 dst-address=78.153.66.123

generated policy:
0 D src-address=10.254.254.130/32:any dst-address=78.153.66.123/32:any (10.254.254.130 is the internal ip of the client behind NAT)

so the client properly encrypts the packets and when the RouterOS wants to reply to them, they fall out of ipsec policy and go out via default - public route.

This issue makes L2TP server with NAT-T impossible to use.

Hope it will get fixed soon.
 
ayufan
Member
Member
Posts: 334
Joined: Sun Jun 03, 2007 9:35 pm
Contact:

Re: IPSEC and NAT-T problem

Tue Jun 22, 2010 2:17 pm

Hope it will get fixed soon.
I've written to support about that bug long time ago. Most likely it will not be fixed in any near future. In fact it makes L2TP useless - I had to switch L2TP+IPsec to Windows Server and works without any problem.

Kamil.
 
roadracer96
Forum Veteran
Forum Veteran
Posts: 730
Joined: Tue Aug 25, 2009 12:01 am

Re: IPSEC and NAT-T problem

Tue Jun 22, 2010 3:50 pm

I agree. OpenVPN is somewhat usable with tweaks, but no native cross-platform support. PPTP is not usable for site to site VPNs (secure at least). SSTP seems to work so far, but again, no native cross-platform support.

My preference would be IPSEC/L2TP and that was my plan all along, but it never worked properly in ROS.
 
ayufan
Member
Member
Posts: 334
Joined: Sun Jun 03, 2007 9:35 pm
Contact:

Re: IPSEC and NAT-T problem

Tue Jun 22, 2010 4:12 pm

My preference would be IPSEC/L2TP and that was my plan all along, but it never worked properly in ROS.
Exactly and it is very dissapointing, because there is none properly implemented and fast remote access solution on RouterOS.
 
fewi
Forum Guru
Forum Guru
Posts: 7717
Joined: Tue Aug 11, 2009 3:19 am

Re: IPSEC and NAT-T problem

Tue Jun 22, 2010 4:57 pm

I wouldn't expect too much, sadly. Hell, they took the hardware acceleration for encryption out of the RB1100.
 
ayufan
Member
Member
Posts: 334
Joined: Sun Jun 03, 2007 9:35 pm
Contact:

Re: IPSEC and NAT-T problem

Thu Jun 24, 2010 2:05 am

The main MikroTik problem is that, they make something good, and astonishing but in the end that new thing doesn't have a "final touch", I mean that we can say is "finished" and ready to be used in production environment.
 
rferroni
just joined
Posts: 14
Joined: Wed Sep 13, 2006 11:37 pm

Re: IPSEC and NAT-T problem

Fri Jun 25, 2010 5:00 pm

I'm almost totally agree with siel.
I'm trying to do the opposite, the client IPSec/L2TP RouterOS (v5.0beta3 and v4.10) and the server Linux with racoon and l2tpns. The client is behind the nat, the server has an IP Public (tipically roadwarrior scenario).
The same happens, I have the SA's installed, the interface l2tp running, and I can reach (ping) from the client to the server the private interface but without answer. On linux server a virtual interface tun is up by l2tpns) I can see the request/replay icmp packet correctly, but never goes back to the client.
I tried to generate my own policy without good results.
I start to think like siel, the problem is l2tp, but before I said almost, because it's affect several implementation of l2tp.
I hope someone has a solution!

/rodrigo
 
rferroni
just joined
Posts: 14
Joined: Wed Sep 13, 2006 11:37 pm

Re: IPSEC and NAT-T problem

Fri Jun 25, 2010 5:44 pm

Me again, the last comment let me think and I just tried l2tp without ipsec and work great!
I mean I can reach well from client to server IP tunnel and even more I can ping an IP address behind the server, after adding the necessary routes.
So its let me know that l2tp isn't the problem, something is wrong in ipsec policies or missing configuration on that.
If someone have an idea let as know!
thanks.-

/rodrigo
 
Sob
Forum Guru
Forum Guru
Posts: 9119
Joined: Mon Apr 20, 2009 9:11 pm

Re: IPSEC and NAT-T problem

Fri Jun 25, 2010 7:11 pm

I do have an idea. ROS and NAT-T just don't work together.

Simple test:
[Client|192.168.84.2]---<private lan>---[192.168.84.1|NAT Router|nn.nn.nn.nn]---<public internet>---[ss.ss.ss.ss|Server]
Client runs Windows 7.
NAT Router is doing nothing special, just masquerading the traffic.
Server is RouterOS with IPSec peer 0.0.0.0/0 and auto generate policy.

On client there's IPSec policy to encrypt ICMP to ss.ss.ss.ss.
ping -t ss.ss.ss.ss is running on client.

This is tcpdump output from nn.nn.nn.nn interface on NAT Router:
// this is how it looks before IPSec policy is enabled:
17:53:35.742256 nn.nn.nn.nn > ss.ss.ss.ss: icmp: echo request
17:53:35.762503 ss.ss.ss.ss > nn.nn.nn.nn: icmp: echo reply
17:53:36.740564 nn.nn.nn.nn > ss.ss.ss.ss: icmp: echo request
17:53:36.763472 ss.ss.ss.ss > nn.nn.nn.nn: icmp: echo reply
// now it was enabled:
17:53:37.742869 nn.nn.nn.nn.500 > ss.ss.ss.ss.500: isakmp: phase 1 I ident: [|sa]
17:53:37.774797 ss.ss.ss.ss.500 > nn.nn.nn.nn.500: isakmp: phase 1 R ident: [|sa] (DF)
17:53:37.786527 nn.nn.nn.nn.500 > ss.ss.ss.ss.500: isakmp: phase 1 I ident: [|ke]
17:53:38.060922 ss.ss.ss.ss.500 > nn.nn.nn.nn.500: isakmp: phase 1 R ident: [|ke] (DF)
// and you can see that NAT was detected and IPSec is correctly encapsulated in udp (NAT-T):
17:53:38.066047 nn.nn.nn.nn.4500 > ss.ss.ss.ss.4500: udp 72
17:53:38.299549 ss.ss.ss.ss.4500 > nn.nn.nn.nn.4500: udp 72 (DF)
17:53:38.302290 nn.nn.nn.nn.4500 > ss.ss.ss.ss.4500: udp 200
17:53:38.341726 ss.ss.ss.ss.4500 > nn.nn.nn.nn.4500: udp 152 (DF)
17:53:38.343059 nn.nn.nn.nn.4500 > ss.ss.ss.ss.4500: udp 76
17:53:38.343336 nn.nn.nn.nn.4500 > ss.ss.ss.ss.4500: udp 64
17:53:42.496674 nn.nn.nn.nn.4500 > ss.ss.ss.ss.4500: udp 76
// and here's the problem, ROS sends the reply to public IP of NAT Router:
17:53:42.519239 ss.ss.ss.ss > nn.nn.nn.nn: icmp: echo reply
17:53:47.488391 nn.nn.nn.nn.4500 > ss.ss.ss.ss.4500: udp 76
17:53:47.510976 ss.ss.ss.ss > nn.nn.nn.nn: icmp: echo reply
This is how it looks on Server:
17:53:37 ipsec respond new phase 1 negotiation: ss.ss.ss.ss[500]<=>nn.nn.nn.nn[500] 
17:53:37 ipsec begin Identity Protection mode. 
17:53:37 ipsec received broken Microsoft ID: MS NT5 ISAKMPOAKLEY 
17:53:37 ipsec received Vendor ID: RFC 3947 
17:53:37 ipsec received Vendor ID: draft-ietf-ipsec-nat-t-ike-02 
17:53:37 ipsec 
17:53:37 ipsec received Vendor ID: FRAGMENTATION 
17:53:37 ipsec Selected NAT-T version: RFC 3947 
17:53:37 ipsec Hashing ss.ss.ss.ss[500] with algo #2  
17:53:37 ipsec NAT-D payload #0 verified 
17:53:37 ipsec Hashing nn.nn.nn.nn[500] with algo #2  
17:53:37 ipsec NAT-D payload #1 doesn't match 
17:53:37 ipsec NAT detected: PEER 
17:53:38 ipsec Hashing nn.nn.nn.nn[500] with algo #2  
17:53:38 ipsec Hashing ss.ss.ss.ss[500] with algo #2  
17:53:38 ipsec Adding remote and local NAT-D payloads. 
17:53:38 ipsec NAT-T: ports changed to: nn.nn.nn.nn[4500]<->ss.ss.ss.ss[4500] 
17:53:38 ipsec KA list add: ss.ss.ss.ss[4500]->nn.nn.nn.nn[4500] 
17:53:38 ipsec ISAKMP-SA established ss.ss.ss.ss[4500]-nn.nn.nn.nn[4500] spi:ade1d76b90eb17a8:6f90143abe23e16f 
17:53:38 ipsec respond new phase 2 negotiation: ss.ss.ss.ss[4500]<=>nn.nn.nn.nn[4500] 
17:53:38 ipsec no policy found, try to generate the policy : 192.168.84.2/32[0] ss.ss.ss.ss/32[0] proto=icmp dir=in 
17:53:38 ipsec Adjusting my encmode UDP-Transport->Transport 
17:53:38 ipsec Adjusting peer's encmode UDP-Transport(4)->Transport(2) 
17:53:38 ipsec IPsec-SA established: ESP/Transport nn.nn.nn.nn[4500]->ss.ss.ss.ss[4500] spi=5091372(0x4db02c) 
17:53:38 ipsec IPsec-SA established: ESP/Transport ss.ss.ss.ss[4500]->nn.nn.nn.nn[4500] spi=2918330273(0xadf22fa1)
And logging of output icmp packets from router looks like this:
17:53:42 firewall,info output: in:(none) out:public, proto ICMP (type 0, code 0), ss.ss.ss.ss->nn.nn.nn.nn, len 40 
17:53:47 firewall,info output: in:(none) out:public, proto ICMP (type 0, code 0), ss.ss.ss.ss->nn.nn.nn.nn, len 40
They go straight to nn.nn.nn.nn instead of to correct 192.168.84.2.
 
mdctmk
just joined
Posts: 3
Joined: Sun May 16, 2010 9:58 am

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 10:53 am

may be you can try this way.

nat-t :

win2003 (Ipsec vpn server) ------Ros3.20 Gateway ==== Internet ==== client or client behind NAT

All you need to do Just map udp port 4500 1701 500 to win2003.

[admin@MikroTik] /ip firewall nat> export
# jun/23/2010 13:28:51 by RouterOS 3.20
# software id = NNFT-86N
#
/ip firewall nat
add action=dst-nat chain=dstnat comment="" disabled=no dst-address=60.10.20.30 dst-port=1701 protocol=udp to-addresses=192.168.100.125 to-ports=1701
add action=dst-nat chain=dstnat comment="" disabled=no dst-address=60.10.20.30 dst-port=500 protocol=udp to-addresses=192.168.100.125 to-ports=500
add action=dst-nat chain=dstnat comment="" disabled=no dst-address=60.10.20.30 dst-port=4500 protocol=udp to-addresses=192.168.100.125 to-ports=4500

regedit:xp client

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec
AssumeUDPEncapsulationContextOnSendRule =2

regedit:win7 vista

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PolicyAgent]
"AssumeUDPEncapsulationContextOnSendRule"=dword:00000002

Also I have tested Openvpn, version 2.6.24 works fine with nat-t,but 2.6.21 didn't work.
 
bafh
Frequent Visitor
Frequent Visitor
Posts: 83
Joined: Sun Jun 27, 2010 3:59 pm
Location: Libau, Lettland

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 11:15 am

Vista has many DHCP problems that are admitted by the MS knowledge-base.

Brand new Toshiba laptop with brand new Win7 simply doesn't get IP from 4.5/3.20/3.30 DHCP via ethernet. It simply doesn't! Iphones/Xperias/Nokias/MacOS/Windows XP and Linuxes do fine. What to blame? Think!
 
User avatar
normis
MikroTik Support
MikroTik Support
Posts: 26322
Joined: Fri May 28, 2004 11:04 am
Location: Riga, Latvia

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 11:21 am

I know this issue, it exists in Vista but not in 7 (to my knowledge). Microsoft knows about it. It manifests itself when you disconnect your network cable and then plug it back, Vista doesn't seem to notice that the DHCP server was gone, and doesn't ask for new IP.
 
bafh
Frequent Visitor
Frequent Visitor
Posts: 83
Joined: Sun Jun 27, 2010 3:59 pm
Location: Libau, Lettland

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 11:23 am

Nope. Not even connecting the cable the first time and not after restart with cable in socket.
And stop editing my posts! :evil:
 
User avatar
normis
MikroTik Support
MikroTik Support
Posts: 26322
Joined: Fri May 28, 2004 11:04 am
Location: Riga, Latvia

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 11:28 am

Nope. Not even connecting the cable the first time and not after restart with cable in socket.
And stop editing my posts! :evil:
Please try to be more polite, If not me, somebody else will edit your posts. We have strict moderation here, as we like to keep the forum clean.
 
ditonet
Forum Veteran
Forum Veteran
Posts: 835
Joined: Mon Oct 19, 2009 12:52 am
Location: Europe/Poland/Konstancin-Jeziorna
Contact:

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 11:34 am

@bafh
Brand new Toshiba laptop with brand new Win7 simply doesn't get IP from 4.5/3.20/3.30 DHCP via ethernet
I'm also Toshiba with Win7 user and NEVER noticed any problem with RouterOS DHCP server.

Regards, Grzegorz.
 
User avatar
normis
MikroTik Support
MikroTik Support
Posts: 26322
Joined: Fri May 28, 2004 11:04 am
Location: Riga, Latvia

Re: IPSEC and NAT-T problem

Tue Jun 29, 2010 11:37 am

Like I said, it's a problem with Vista, not 7
 
grg
newbie
Posts: 44
Joined: Fri Aug 20, 2010 9:51 am
Location: Latvia

Re: IPSEC and NAT-T problem

Fri Aug 20, 2010 10:50 am

Yesterday I was trying to set up L2TP/IPSec VPN using ROS v4.11 with public IP and Windows XP SP3 client behind NAT with the same result: it does not work when client is behind NAT. Instead of encapsulating replies it sends data to NAT router IP address directly. I just went through all related posts in this forum and found no answer. I also didn't see any replies from MikroTik people confirming or denying the problem.
 
jandafields
Forum Guru
Forum Guru
Posts: 1515
Joined: Mon Sep 19, 2005 6:12 pm

Re: IPSEC and NAT-T problem

Sat Aug 21, 2010 4:50 am

Any update on this NAT-T IPSEC problem? I think fixing it would make a lot of people happy.
 
ish
just joined
Posts: 3
Joined: Mon Sep 06, 2010 7:27 pm

Re: IPSEC and NAT-T problem

Mon Sep 06, 2010 7:36 pm

Hi,

I have send the MikroTik support team this mail, because I have a similar problem - L2TP/IPsec over NAT is not working:

[...]
I have trouble with the setup of an L2TP / IPSec connection between a Windows XP SP3 Client an the RB450G Routerboard with Router OS v4.11, if the Client-PC is behind a NAT-Router (AVM Fritz!Box) which has a so called "VPN Passthrough" mode. The IKE connection from the Client-PC is coming from UDP Port 500, the NAT-Router keep the port, so the connection comes via WAN IP of the NAT-Router with UDP Port 500 to the WAN-Interface of the RB450G.

The connection is accepted by the RB450G, an IPSec policy is automatically created and the IPsec SA is also created. So fare so good.
But inside the SA the source IP is the Private IP (e.g. 192.168.10.5) of the Windows XP SP3 client, not the WAN IP from which the connection was coming.
In this situation the RB450G is not switching to the IPSec NAT-T mode, even if the connection was not arriving via UDP Port 4500.
The RB450G knows "only" that traffic to (here in my example) 192.168.10.5 must be encrypted.

The problem is now, that the L2TP daemon of the RB450G is using as L2TP Client-IP the WAN IP from the Windows XP SP3 Client and is sending all answering L2TP packets directly to this WAN IP. The L2TP traffic is NOT secured by the established IPsec tunnel.
Of course, the RB450 has no IPSec policy set for doing this....


Note: If the Client-PC is connected directly to the Internet (has a Public IP) everything works fine. The firewall of the RB450G accept UDP Port 500 and 4500 on the WAN interface. Every IPSec ESP packet is marked with a "VPN IN" packet mark while traveling through the prerouting chain of the Firewall Mangle table.
So incoming L2TP traffic on the WAN interface is only accepted, if it was marked with the "VPN IN" packet mark.

Any ideas?

I try to use NAT, to change the destination IP of L2TP packets.
The problem here is: How to create and delete a "dynamic" NAT rule for the L2TP connection, if the connection was entering the RB450G via IPSec over the routers WAN interface? And how to extract the "wrong" Private IP from the IPSec SA?

*some config snippets:
/ip ipsec peer> print
0 address=0.0.0.0/0:500 auth-method=pre-shared-key secret="******************" generate-policy=yes exchange-mode=main send-initial-contact=no
nat-traversal=yes proposal-check=obey hash-algorithm=md5 enc-algorithm=3des dh-group=modp1024 lifetime=8h lifebytes=0 dpd-interval=disable-dpd
dpd-maximum-failures=5

/ip ipsec proposal> print
0 name="default" auth-algorithms=md5 enc-algorithms=3des lifetime=1h pfs-group=none
 
ish
just joined
Posts: 3
Joined: Mon Sep 06, 2010 7:27 pm

Re: IPSEC and NAT-T problem

Thu Sep 09, 2010 4:42 pm

Hi,
after some nice email conversation I wrote this mail to the MikroTik Support Team:
Hi Support Team,
NAT-T is enabled on the MikroTik router.
Yesterday I tested 3 times the L2TP/IPSec connection form the Windows XP SP3 Client-PC to the MikroTik Router (VPN Server), while changing the NAT-T-Registry-Parameter "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec" in Windows XP, set the "AssumeUDPEncapsulationContextOnSendRule" to 0, 1 or 2 and restarted the IPSec service on the Windows XP PC (see http://support.microsoft.com/kb/926179/en-us).
It doesn't matter if the Parameter "AssumeUDPEncapsulationContextOnSendRule" is set or which value it has.
The L2TP/IPSec connection is not working.

Reason:
IKE connection comes in via UDP/500 (because my SOHO-NAT-Router leaves the port as it is) into the MikroTik Router.
The MikroTik Router is not recognizing that the connecting IPSec peer (Windows XP PC) is behind a NAT-Router and is not forcing the Windows XP PC to connect via UDP/4500 (NAT-T). So the IKE connection is not changing to the NAT-T mode. The IPSec connection (ESP) is established while the IPSec peer addresses are the Public IP's of the MikroTik Router and the Windows XP Client (here the Public IP of the NAT-Router of course). The IPSec Policy inside the MikroTik Router is created automatically and uses as SA Source IP the PRIVATE IP (e.g. 192.168.10.5) of the Windows XP Client.

So what happens now is that the IPSec Tunnel is "ready" but the L2TP connection to the L2TP server on the MikroTik Router is comming from the PUBLIC IP of the Windows XP Client, while the IPSec SA is using the PRIVATE IP. The MikroTik Router is not securing the L2TP answering packets. You can see this on the NAT-Router (Windows XP client behind) while doing a paket captureing. The L2TP answer packets are coming directly to the PUBLIC IP (so reaching directly the NAT Router).
[...]
And I got the following answer:
[...]

Thank you very much for the description. Right now I understand where is the problem.
Currently there is issue with NAT-T and generate-policy. The policy is being generated for private IP address of the router, you should add manually additional policy with src-address=your_MikroTik_router dst-address=your_NAT_router
Either use static /ip ipsec policy.

We are working on the solution for this problem.

[...]
 
buyfish
just joined
Posts: 7
Joined: Mon Sep 13, 2010 8:53 pm

Re: IPSEC and NAT-T problem

Mon Sep 13, 2010 11:31 pm

Prompt, for somebody work correctly RB750 IPSec when one of the device is located behind a NAT?

IPsec-SA request for X.X.X.X queued due to no phase 1 found.

This error in any order repeats on both devices.
 
buyfish
just joined
Posts: 7
Joined: Mon Sep 13, 2010 8:53 pm

Re: IPSEC and NAT-T problem

Mon Sep 13, 2010 11:45 pm

Prompt, for somebody work correctly RB750 when one of the device is located for NAT?

NAT UDP 500,4500
Private LAN1------RB750_1 (Public IP1) ==== Internet ==== (Public IP2) DSL Modem (Private IP1)------(Private IP2) RB750_2 behind NAT------Private LAN2

The error stands out:
IPsec-SA request for X.X.X.X queued due to no phase 1 found.

This error in any order repeats on both devices.

It turns out that RB750 can't correctly work in such configuration??

I should add manually additional policy with src-address=your_MikroTik_router dst-address=your_NAT_router - on both router ?
On both router generate-policy=no and nat-traversal=no ?
 
fewi
Forum Guru
Forum Guru
Posts: 7717
Joined: Tue Aug 11, 2009 3:19 am

Re: IPSEC and NAT-T problem

Tue Sep 14, 2010 7:30 pm

If you're going to specifically turn off NAT-T, how is it going to work across NAT?
 
buyfish
just joined
Posts: 7
Joined: Mon Sep 13, 2010 8:53 pm

Re: IPSEC and NAT-T problem

Thu Sep 16, 2010 3:05 am

I am turn on NAT-T on both device, but connection not work.

Has found a way out
I have decided to use tunnel IPIP with enciphering IPSec.
 
buyfish
just joined
Posts: 7
Joined: Mon Sep 13, 2010 8:53 pm

Re: IPSEC and NAT-T problem

Fri Sep 17, 2010 10:20 am

If you're going to specifically turn off NAT-T, how is it going to work across NAT?

I am turn-on on both peers. This old config.

Tell me, why RouterOS no work correctly with two ipsec policy have equal adress in Src and Dst Address

ip ipsec peer add address=10.0.101.5/32:500 auth-method=pre-shared-key secret="1qaz2wsx" generate-policy=yes exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=md5 enc-algorithm=3des dh-group=modp1024 lifetime=1d lifebytes=0 dpd-interval=10s dpd-maximum-failures=2
ip ipsec peer add address=10.0.102.5/32:500 auth-method=pre-shared-key secret="1qaz2wsx" generate-policy=yes exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=md5 enc-algorithm=3des dh-group=modp1024 lifetime=1d lifebytes=0 dpd-interval=10s dpd-maximum-failures=2

One policy always in state invalid.
 
jandafields
Forum Guru
Forum Guru
Posts: 1515
Joined: Mon Sep 19, 2005 6:12 pm

Re: IPSEC and NAT-T problem

Fri Oct 08, 2010 7:36 am

Any update on this? Will it be fixed for v5.0?
 
matmor
just joined
Posts: 20
Joined: Wed Jan 07, 2009 5:09 pm
Location: Quebec, Canada

Re: IPSEC and NAT-T problem

Wed Nov 10, 2010 5:34 pm

Any update on Nat-T L2TP/IPSEC policie problem ?
 
jandafields
Forum Guru
Forum Guru
Posts: 1515
Joined: Mon Sep 19, 2005 6:12 pm

Re: IPSEC and NAT-T problem

Wed Nov 10, 2010 9:40 pm

Changelog for v5.0 RC3 says it is fixed now, although I haven't tried it myself yet...
 
maikl
just joined
Posts: 1
Joined: Thu Dec 29, 2011 1:04 am

Re: IPSEC and NAT-T problem

Thu Dec 29, 2011 1:18 am

Hi All,

I have the latest stable version 5.11 with the same problem. Do you have any advice how to solved it?
Thanks
 
jandafields
Forum Guru
Forum Guru
Posts: 1515
Joined: Mon Sep 19, 2005 6:12 pm

Re: IPSEC and NAT-T problem

Thu Dec 29, 2011 2:19 am

Hi All,

I have the latest stable version 5.11 with the same problem. Do you have any advice how to solved it?
Thanks
If you are sure it is still the exact same problem, then create a supout file and email support@mikrotik.com

Hopefully they would be able to use your information to keep fixing it.
 
_saik0
Member Candidate
Member Candidate
Posts: 129
Joined: Sun Aug 26, 2007 11:18 pm

Re: IPSEC and NAT-T problem

Sun Mar 04, 2012 6:25 pm

Did anyone actually managed to connect mikrotik with public IP and client behind NAT using L2TP/IPSec/NAT-T on 5.x?
When the client isn't behind NAT it works without problems on 5.14, but when it's behind NAT I simply cannot get it to work...

A confirmation that it really is working and a complete config would be highly appreciated!
 
togofwd
just joined
Posts: 1
Joined: Thu Nov 15, 2012 10:06 am

Re: IPSEC and NAT-T problem

Thu Nov 15, 2012 11:23 am

All "points" are RB2011-IL with RO 5.21

This is a laboratory build.

after hours ... IPSec(NAT-T)/L2TP work through NAT.
we have Main point(A) with public address and client(B) behind NAT.

Main Point(A):
http://s9.postimage.org/6hqt6d8zz/Untitled2.png

Client behind NAT(B):
http://s14.postimage.org/udfdokii9/Untitled.png

This is only way that work, including On the "Server" generating policy and on client policy is manual entry.
Mirroring port on point(A) show:
http://s8.postimage.org/dup78lon9/Untitled3.png
 
badea
just joined
Posts: 11
Joined: Mon Oct 26, 2009 12:44 pm

Re: IPSEC and NAT-T problem

Sun Mar 03, 2013 9:45 pm

All "points" are RB2011-IL with RO 5.21

This is a laboratory build.

after hours ... IPSec(NAT-T)/L2TP work through NAT.
we have Main point(A) with public address and client(B) behind NAT.

Main Point(A):
http://s9.postimage.org/6hqt6d8zz/Untitled2.png

Client behind NAT(B):
http://s14.postimage.org/udfdokii9/Untitled.png

This is only way that work, including On the "Server" generating policy and on client policy is manual entry.
Mirroring port on point(A) show:
http://s8.postimage.org/dup78lon9/Untitled3.png
I upgraded to RO 5.24 and followed the steps from the last post, but still no luck connecting...
Can you please post your full configuration of IPSec, as well as the ports you forwarded on the NAT router? Thank you!
 
kinglyr
just joined
Posts: 3
Joined: Thu Dec 04, 2008 11:12 am

Re: IPSEC and NAT-T problem

Tue Apr 23, 2013 4:01 am

I try to do a L2TP/IPSec VPN between MS Win7 PC (NATed ip- L2TP Client) and Mikrotik v5.24 RB600 with pppoE-out (PublicIP- L2TP Server) with no success... :(

Who is online

Users browsing this forum: anav, Google [Bot], hatred and 61 guests