zoukankan      html  css  js  c++  java
  • IPSec NATT

    IPSec NAT-T

    一 IPSec NAT-T技术
    在建立IPsec通道时,如果通道路径上有NAT设备也不会影响第一阶段的IKE SA的协商和第二阶段IPSec SA的协商,因为通常将IKE的数据包封装在UDP数据包中,
    但是,在完成第二阶段协商后, IPsec数据包上的NAT会导致通道失败,(也就是说IPsec的通道可以建立,但是真正的User的数据无法传输)
    原因可能有多个,但是最关键的原因就是:
    1.
    对于IPsec-ESP来说,NAT设备不能找到要做端口转换的port和src IP address的位置(因为它已经被加密了)
    2.
    对外IPsec-AH协议,NAT设备虽然可以看到port和Src IP and Dst IP address,但不可以修改,如果一修改整个IPsec数据包的完整性验证就会失败。IPsec 数据包就会被丢弃。

    二 IPsec和NAT和平共处的解决方法:NAT-T
    在 IPsec第一阶段IKE SA协商过程中,两端支持NAT-T的VPN 设备会在IPSec 协商路径上检测是否有NAT设备,
    1.
    如果没有NAT设备,IPSec数据包正常发送,接着进入IKE第二阶段
    2.
    如果监测到NAT设备,就给要发送出去的IPSec数据包再添加一层UDP封装。可以解决认证检查失败的问题。NAT设备将其作为 UDP 封包处理,更改 UDP 包头中的源端口,不修改 AH 或 ESP 中的 SPI 包头。对端的VPN设备将剥开UDP 层并处理 IPSec 封包,这样处理就会通过认证检查,因为对认证过的内容并没有做任何更改。
    1.
    启用NAT-T之后,也只要两端的VPN Gateway之间存在NAT设备时才会激活。
    2.
    要使用NAT-T功能,两端的VPN Peer都必须支持。

    三 配置方法
    1.ipsec over tcp
    该方法导致双方使用TCP端口通信,缺省端口是10000,只支持client方式。缺省被禁用,打开方法:
    crypto isakmp ipsec-over-tcp
    当实际环境中不常规VPN通信或NAT-T,IPSEC OVER UDP的时候使用。
    2.NAT-T
    该方法导致双方最终使用udp 4500端口通信,支持client,L2L 两种方式。缺省是被禁用的。打开方法:
    crypto isakmp nat-traversal 20 ,缺省keepalives时间20秒
    3.ipsec over udp
    导致双方使用UDP通信,缺省端口10000,只支持client方式。缺省被禁用。打开方法
    在组策略中配置
    hostname(config-group-policy)# ipsec-udp {enable | disable}
    hostname(config-group-policy)#ipsec-udp-port 10000
    上述三种方法都启用时候的优先级别: over tcp >NAT-T>over udp
  • 相关阅读:
    JS事件
    BOM
    DOM
    常见的SQL字符串函数
    常用的认证方式
    后台代码扫描规则-sonarQube官方
    spring cloud中feign的使用
    常见基于 REST API 认证方式
    Java中连接池
    这是一张心情贴
  • 原文地址:https://www.cnblogs.com/jjkv3/p/1798040.html
Copyright © 2011-2022 走看看