我该如何解决“错误 13843:收到无效的有效负载。”?

我该如何解决“错误 13843:收到无效的有效负载。”?

当 Windows 8 尝试连接到我的 Strongswan VPN 时,我收到以下错误,

错误 13843:收到无效的有效负载。

我不知道如何解决它或是什么原因造成的。我的 charon 日志中有这个,

15[IKE] IKE_SA roadwarrior[2] established between 10.0.10.81[DNREDACTED1]...75.108.226.117[DNREDACTED2]
15[IKE] scheduling reauthentication in 9771s
15[IKE] maximum IKE_SA lifetime 10311s
15[IKE] sending end entity cert "REDACTED GW CERT"
15[IKE] peer requested virtual IP %any
15[IKE] no virtual IP found, sending INTERNAL_ADDRESS_FAILURE
15[IKE] configuration payload negotiation failed, no CHILD_SA built
15[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH N(AUTH_LFT) N(MOBIKE_SUP) N(NO_ADD_ADDR) N(INT_ADDR_FAIL) ]
15[NET] sending packet: from 10.0.10.81[4500] to 75.108.226.117[4500]
16[NET] received packet: from 75.108.226.117[4500] to 10.0.10.81[4500]
16[ENC] parsed INFORMATIONAL request 2 [ D ]
16[IKE] received DELETE for IKE_SA roadwarrior[2]
16[IKE] deleting IKE_SA roadwarrior[2] between 10.0.10.81[DNREDACTED1]...75.108.226.117[DNREDACTED2]
16[IKE] IKE_SA deleted
16[ENC] generating INFORMATIONAL response 2 [ ]
16[NET] sending packet: from 10.0.10.81[4500] to 75.108.226.117[4500]

ipsec配置文件

conn %default                                                                                                                                                                                                                                
  dpdaction=clear                                                                                                                                                                                                                            
  dpddelay=300s                                                                                                                                                                                                                              
  keyexchange=ikev2                                                                                                                                                                                                                          
  auto=add                                                                                                                                                                                                                                   

conn roadwarrior                                                                                                                                                                                                                             
  keyexchange=ikev2                                                                                                                                                                                                                          
  auto=add                                                                                                                                                                                                                                   
  left=%defaultroute                                                                                                                                                                                                                         
  leftcert=gw-cert.pem                                                                                                                                                                                                                       
  leftsubnet=10.0.10.0/24                                                                                                                                                                                                                    
  right=%any                                                                                                                                                                                                                                 
  rightsubnet=192.168.1.1/24

strongswan.conf

charon {                                                                                                                                                                                                                                     
  threads = 16;                                                                                                                                                                                                                              

    # Two defined file loggers. Each subsection is either a file                                                                                                                                                                             
    # in the filesystem or one of: stdout, stderr.                                                                                                                                                                                           
    filelog {                                                                                                                                                                                                                                
        /var/log/charon.log {                                                                                                                                                                                                                
            # add a timestamp prefix                                                                                                                                                                                                         
            time_format = %b %e %T                                                                                                                                                                                                           
            # loggers to files also accept the append option to open files in                                                                                                                                                                
            # append mode at startup (default is yes)                                                                                                                                                                                        
            append = no                                                                                                                                                                                                                      
            # the default loglevel for all daemon subsystems (defaults to 1).                                                                                                                                                                
            default = 1                                                                                                                                                                                                                      
            # flush each line to disk                                                                                                                                                                                                        
            flush_line = yes                                                                                                                                                                                                                 
        }                                                                                                                                                                                                                                    
        stderr {                                                                                                                                                                                                                             
            # more detailed loglevel for a specific subsystem, overriding the                                                                                                                                                                
            # default loglevel.                                                                                                                                                                                                              
            ike = 2                                                                                                                                                                                                                          
            knl = 3                                                                                                                                                                                                                          
            # prepend connection name, simplifies grepping                                                                                                                                                                                   
            ike_name = yes                                                                                                                                                                                                                   
        }                                                                                                                                                                                                                                    
    }                                                                                                                                                                                                                                        
    # And two loggers using syslog. The subsections define the facility to log                                                                                                                                                               
    # to, currently one of: daemon, auth.                                                                                                                                                                                                    
    syslog {                                                                                                                                                                                                                                 
        # optional identifier used with openlog(3), prepended to each log message                                                                                                                                                            
        # by syslog. if not configured, openlog(3) is not called, so the value will                                                                                                                                                          
        # depend on system defaults (usually the program name)                                                                                                                                                                               
        identifier = charon-custom                                                                                                                                                                                                           
        # default level to the LOG_DAEMON facility                                                                                                                                                                                           
        daemon {                                                                                                                                                                                                                             
        }                                                                                                                                                                                                                                    
        # very minimalistic IKE auditing logs to LOG_AUTHPRIV                                                                                                                                                                                
        auth {                                                                                                                                                                                                                               
            default = -1                                                                                                                                                                                                                     
            ike = 0                                                                                                                                                                                                                          
        }                                                                                                                                                                                                                                    
    }                                                                                                                                                                                                                                        


  dns1=4.2.2.1                                                                                                                                                                                                                               
  dns2=4.2.2.2                                                                                                                                                                                                                               

}              

答案1

在你的ipsec.conf日志中你有

右子网=192.168.1.1/24

那应该是

rightosourceip=192.168.1.1/24

left/rightsubnet 记录为,

左|右子网 = [[]][,...]

左侧参与者后面的私有子网,以网络/网络掩码表示;如果省略,则基本上假定为左/32|128,表示连接的左|右端仅通向左|右参与者。对等方配置的子网可能不同,协议将其缩小到最大的公共子网。自 5.0.0 起,IKEv1 也这样做了,但由于这可能会导致其他实现出现问题,请确保在此类配置中配置相同的子网。IKEv2 支持以逗号分隔的多个子网,IKEv1 仅解释此类定义的第一个子网,除非启用了 Cisco Unity 扩展插件(自 5.0.1 起可用)。

自 5.1.0 起,每个子网后面用方括号括起来的可选部分指定一个协议/端口,以限制该子网的选择器。示例:leftsubnet=10.0.0.1[tcp/http],10.0.0.2[6/80] 或 leftsubnet=fec1::1[udp],10.0.0.0/16[/53]。除了省略任一值外,还可以使用 %any 来达到相同的效果,例如 leftsubnet=fec1::1[udp/%any],10.0.0.0/16[%any/53]

端口值也可以采用 RFC 4301 OPAQUE 选择器的值 %opaque,或采用 1024-65535 形式的数值范围。目前没有任何内核后端支持不透明或端口范围,而是使用 %any 进行策略安装。

可以使用 %dynamic 代替指定子网,将其替换为 IKE 地址,效果与完全省略 left|rightsubnet 相同。使用 %dynamic 可以定义多个动态选择器,每个选择器可能具有不同的协议/端口定义。

鉴于rightsourceip记录为,

rightsourceip = %config | / | %池名称

远程对等体隧道中使用的内部源 IP。如果响应方配置了该值,发起方必须提出一个地址,然后回显该地址。还支持以 / 表示的地址池或使用 %poolname 的外部 IP 地址池,其中 poolname 是用于查找的 IP 地址池的名称(有关详细信息,请参阅虚拟 IP)。自 5.0.1 起,接受以逗号分隔的 IP 地址/池列表,例如,定义不同地址系列的池。

相关内容