Golang编程语言知识介绍


  • 首页

  • todo

  • 思考

  • life

  • food

  • OS

  • lua

  • redis

  • Golang

  • C

  • TCP/IP

  • ebpf

  • p4

  • OpenVPN

  • IPSec

  • L2TP

  • DNS

  • distributed

  • web

  • OpenWRT

  • 运维

  • Git

  • 鸟哥的私房菜

  • IT杂谈

  • 投资

  • About Me

  • 友情链接

  • FTP

  • 搜索
close

为什么ESP能够穿越NAT,而AH则不能

时间: 2023-05-11   |   分类: ipsec     |   阅读: 549 字 ~2分钟

严格地说,只能是隧道模式下的ESP才能穿越NAT。

首先需要了解的是IPSEC的作用,即数据的机密性、完整性、认证性。

  • 机密性就是保证数据包的原始内容不被看到;

  • 完整性即保证数据包的内容不会被修改;

  • 认证性保证数据来自被信任的客户端。

IPSEC中的封装格式有2种(AH和ESP),

  • AH在IP数据包中插入了一个包头,其中包含对整个数据包内容的校验值;
  • ESP用户加密整个数据包内容,同时也可以对数据包进行认证。

IPSec有2 种不同的模式:传输模式和隧道模式。

  • 传输模式,主要用于主机到主机之间的直接通信。
  • 隧道模式主要用于主机到网关或网关到网关之间。

传输模式和隧道模式主要在数据包封装时有所不同。无论传输模式还是隧道模式,AH都会认证整个数据包。并且AH还会认证位于AH头之前的IP 头。当NAT 设备修改了IP 头之后,IPSec 就会认为这是对数据包完整性的破坏,从而丢弃数据包。因此AH是不可能和NAT 在一起工作的。 而ESP在传输模式时会保护TCP/UDP头,但是并不保护IP 头,因此修改IP 地址并不会破坏整个数据包的完整性。但是如果数据包是TCP/UDP数据包,NAT设备就需要修改数据包的校验值,而这个校验值是被ESP 所保护的,这样却会导致完整性校验失败。 所以最终可能和NAT一起工作的只能是隧道模式下的ESP。

#ipsec#
IPSEC的感兴趣流引流实现方式
IP 协议号列表 List of IP protocol numbers
shankusu2017@gmail.com

shankusu2017@gmail.com

日志
分类
标签
GitHub
© 2009 - 2025
粤ICP备2021068940号-1 粤公网安备44011302003059
0%