您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 标准IPSEC常见问题及原因
标准IPSEC常见问题及原因关于标准IPSEC的一些说明1、标准IPSEC的版本:IKEV1(1998)IKEV2(2005)RFC2407RFC2408RFC2409RFC4306,同时废止RFC2407、2408、24092、标准IPSEC(V1)的连接过程:A、数据协商B、数据传输第一阶段第二阶段主模式野蛮模式快速模式ESP/AH,IP层传输NATT+ESP/AH,UDP传输目录•为什么感觉我们的VPN容易断而标准IPSEC比较稳定?•标准IPSEC连接之后设备上是否会产生路由?•第三方对接连上,为什么必须我们先发起连接之后才能正常互访?•为什么设备上连接还在,但是访问不到对端,重启服务之后就可以?•为什么要启用DPD?什么是DPD?•身份类型(ID)中的FQDN、USER_FQDN、IPV4_ADDR都是什么?•什么是GRE封装的标准IPSEC?有什么用?•启用PFS与不启用PFS的区别?•什么是SPI?SPI不对有什么后果?•第三方对接能用多线路么?•如何抓标准IPSEC的包?标准IPSEC为什么感觉我们的VPN容易断而标准IPSEC比较稳定?1、工作层面不一样SANGFORVPN为什么感觉我们的VPN容易断而标准IPSEC比较稳定?2、工作方式不一样标准IPSEC在协商完之后,没有启用DPD的情况下,是不会产生任何其他数据包,只有某方的超时时间到了且有数据需要传输时,才会重新发起协商,中间过程会默认一直保持这条IPSEC隧道。你准备好了没?准备好了!DATADATA为什么感觉我们的VPN容易断而标准IPSEC比较稳定?SANGFORVPN在VPN连接上之后,还会通过TCP/UDP目标端口4009发送echo包,来检测隧道是否正常,一旦多次收不到echo包,则认为隧道故障,会断开重连。你准备好了没?准备好了!ECHOECHOECHOVPN故障,断开!IPSEC连接之后设备上是否会产生路由?SANGFORVPN连接之后,在系统路由表里可以看到VPN产生的路由交给了VPNTUN,因此我们在VPNTUN上可以抓到VPN的数据包。这里没有SANGFORVPN连接,所以这里看到的是2条VPN接口的直连路由。SANGFORVPN:IPSEC连接之后设备上是否会产生路由?标准IPSECVPN:标准IPSEC产生的路由条目IPSEC连接之后设备上是否会产生路由?结论:标准IPSECVPN连接之后,一样会在我们设备内产生去往对端的路由条目交给VPNTUN,但是这些路由条目不会体现在系统路由表里,因此直接route–n无法查看这些路由表。需要后台查看策略路由表。排错:如果出现第三方对接,正常连接上,但是无法访问对端的情况,首先检查一下是否在我们设备的策略路由表里产生了对应的路由条目。之后可以在VPNTUN里抓包,看数据包是否正常发出。但VPNTUN抓不到回来的数据包,因为回来的包解密后直接丢出去了,不经过VPNTUN。IPSEC连接之后设备上是否会产生路由?特殊案例:VPNTUN里抓到了发出的数据包,第三方对接也正常连上,但是就是访问不到第三方对端。原因:客户启用了隧道间路由的通过总部上网功能!SANGFORIPSEC分支1网段总部2网段3网段隧道间路由功能是在VPNTUN接口上由驱动来抓包的,因此当所有的VPN数据通过路由被送到VPNTUN接口时,首先匹配隧道间路由规则,之后才会匹配各个不同的SA交给不同的VPN隧道。因此一旦启用了通过总部上网,或者隧道间路由里设置的目的IP网段跟标准IPSEC对端网段冲突,都会导致数据直接被抓走并发送到隧道间路由对端设备。为什么必须我们先发起连接之后双方才能正常互访?此情况常出现在AC2.0R1之前的版本。结论:AC合入VPN的时候,在AC的防火墙里忘记打开标准IPSEC需要使用的UDP500、UDP4500以及ESP、AH协议,导致数据从对端过来被本端防火墙直接丢弃,只有本端先发过去了,防火墙才会放行。为什么必须我们先发起连接之后双方才能正常互访?排错:在设备的ETH2口,用tcpdump命令抓包tcpdump–ieth2udp500andhostx.x.x.x或者tcpdump-ieth2espandhostx.x.x.x如果发现收到对端发过来的数据包,但没有回应,则优先检查FW的iptables规则在FW中手动添加如下规则:iptables-IINPUT-ieth2-pudp--dport500-jACCEPT//放通udp500端口iptables-IINPUT-ieth2-pudp--dport4500-jACCEPT//放通udp4500端口iptables-IINPUT-p50-jACCEPT//放通ESP协议iptables-IINPUT-p51-jACCEPT//放通AH协议之后把这几条规则加到FW的fwreserved.sh、fwreserved_enable.sh以及fwreserved_disable.sh脚本里去。为什么必须我们先发起连接之后双方才能正常互访?另外一种情况:我方为拨号,对端为固定IP,此时因为对端是不知道我方当前的IP地址,所以只能被动的接受我方发起的主动连接。为什么必须我们先发起连接之后双方才能正常互访?特殊案例:我们设备做双机,连标准IPSEC,双机切换之后,VPN就连不上了,重启也没用。原因:我方切换之后,对端并没有把原有建立好的SA清除,而且也不再接受我方再次发起的协商请求,所以一直无法正常连接。解决方案:1、对端设备上手动删除SA;2、双方启用DPD。设备上显示连接还在,但是访问不到对端,重启服务之后就可以?可能情况:对端的VPN连接已经断开而我方还处在SA的有效生存期时间内,从而形成了VPN隧道的黑洞。我方不停的发送加密后的VPN数据过去,但对方拒绝接受。设备上显示连接还在,但是访问不到对端,重启服务之后就可以?排错:1、双方把各自第一阶段的SA生存期和第二阶段的SA生存期改成跟对端完全一致;2、在第一阶段启用DPD。对端断开连接而我方没有断开的可能原因:1、对端手动清除了SA;2、对端同时启用了按秒计时和按流量统计,而我方只支持按秒计时,如果流量太大,可能导致在按秒计时的生存期内流量已经超出,导致对端断开连接;3、双方存在多个出入站策略,对端删除的时候只发送了其中一个策略的删除载荷,我方也只删除了一个策略,导致其他策略我方认为还在,但对端已经全部删除。为什么要启用DPD?什么是DPD?DPD:死亡对等体检测(DeadPeerDetection),其实跟SANGFORVPN的隧道保活包干的是类似的活。当VPN隧道异常的时候,能检测到并重新发起协商,来维持VPN隧道。DPD主要是为了防止标准IPSEC出现“隧道黑洞”。我们设备默认就已经启用了DPD,界面不可配置。只能通过后台手动修改sysset.sfr文件来启用/禁止DPD。PhaseIPhaseIIDPD只对第一阶段生效,如果第一阶段本身已经超时断开,则不会再发DPD包。为什么要启用DPD?什么是DPD?DPD包并不是连续发送,而是采用空闲计时器机制。每接收到一个IPSec加密的包后就重置这个包对应IKESA的空闲定时器,如果空闲定时器计时开始到计时结束过程都没有接收到该SA对应的加密包,那么下一次有IP包要被这个SA加密发送或接收到加密包之前就需要使用DPD来检测对方是否存活。DATAESPDATADPDrequestDPDreplayDATAESPDPD检测主要靠超时计时器,超时计时器用于判断是否再次发起请求,一般来说连续发出3次请求(请求-超时-请求-超时-请求-超时)都没有收到任何DPD应答就会删除SA。身份类型(ID)中的FQDN、USER_FQDN、IPV4_ADDR都是什么?IPV4_ADDR、FQDN、USER_FQDN只是三种不同类型的身份认证方式,可以理解为SANGFORVPN的用户名,主要用来确认对端身份。标准IPSEC还包括X.509证书认证,一般很少人用,我们也不支持。主模式野蛮模式IPV4_ADDRIPV4_ADDRFQDNUSER_FQDN身份类型(ID)中的FQDN、USER_FQDN、IPV4_ADDR都是什么?IPV4_ADDR格式:IP地址格式,例如:123.123.123.123FQDN格式:一般要求一个完整的域名,例如:一串字符串也可以。USER_FQDN格式:电子邮件格式,例如:xietian@sangfor.com注意:某些厂商是通过@符号前是否有字符串来区分是FQDN还是USER_FQDN。因为我们设备配置时要注意在对端身份ID和我方身份ID里加上@符号,否则会报ID不匹配。例如:@@sangfor.com认为是USER_FQDN格式对端配置页面直接输入会自动在前方加入@符号。什么是GRE封装的标准IPSEC?有什么用?标准IPSEC只支持单播数据流,也就意味着广播和组播无法在IPSEC隧道里传输。GRE:通用路由封装(GenericRoutingEncapsulation),定义了在任意一种网络层协议上封装任意一个其它网络层协议的协议。因此可以支持广播、组播甚至IPX等协议,但是是明文传输。因此IPSEC+GRE就成了既要安全,又要广播、组播等数据传输的首选。IPSECGREGREIPSEC启用PFS与不启用PFS的区别?PFS:PrefectForwardSecrecy,SANGFOR设备上称为“密钥完美向前保密”在IPSEC协商的第一阶段,通过DH算法进行了密钥的交互,并生成了加密密钥。如果不使用PFS,则第二阶段的加密密钥会根据第一阶段的密钥自动生成。使用了PFS,则第二阶段要重新通过DH算法协商一个新的加密密钥,从而提高了数据的安全性。PhaseIPhaseIIDH1DH2DH5DH1DH2DH5启用PFS与不启用PFS的区别?结论:PFS主要是用来加强数据传输的安全性;要启用PFS,则连接双方都要启用PFS,否则无法进行第二阶段的DH交换,从而协商不出新的加密密钥;启用PFS会比较消耗设备性能。排错:1、检查连接的双方是否都启用了PFS,确保两边都启用或者都禁用;2、启用PFS后,SANGFOR设备默认只支持两个阶段DH组一致,如果对方是可以配置DH组的,需要把两个阶段的DH组设置成一致。什么是SPI?SPI不对有什么后果?SPI:安全参数索引(SecurityParameterIndex),由IKE自动分配。发送数据包时,发送方会把SPI插入到IPSec头中。接收方收到数据包后,根据SPI值查找SAD和SPD,从而获知解密数据包所需的加解密算法、hash算法、封装模式、目的IP地址等。结论:SPI不匹配会导致IPSEC无法正确处理加密的数据包,导致数据传输有问题。排错:当出现如下提示时,则只能重新建立这个IPSEC连接:DLAN总部调试12:17:25[Isakmp_Server]无效的SPI(可能是随机生成的SPI发生冲突,请重新发起一次连接).第三方对接能用多线路么?标准IPSEC协议没有定义多线路这种情况,也就是标准IPSEC不支持多线路环境下的使用,只能用一条线路。SANGFOR设备上有多条线路的时候怎么处理?4.3版本之前始终通过默认路由指向的那条线路跟对端建立标准IPSEC连接。4.3版本之后可以通过线路出口来指定标准IPSEC从哪条线路走。数据从线路1进来,但是指定标准IPSEC走线路2,这样能连么?能用么?这种情况下不管是主模式还是野蛮模式,因为协商的时候回给对端的源IP跟对端发起访问的目标IP不一致,标准IPSEC连接无法正常建立。第三方对接能用多线路么?多线路情况下如何使用标准IPSEC建立VPN连接?保证VPN对端连的是缺省路由所在的那条线就行了,或者是标准IPSEC指定的那条线就行。如果有条线是拨号,有时断开重拨,导致缺省路由发生了切换,怎么办?升级到DLAN4.
本文标题:标准IPSEC常见问题及原因
链接地址:https://www.777doc.com/doc-3500128 .html